前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇软件开发专业论文范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
1计算机软件开发类毕业设计存在的问题
自21世纪高等教育改革以来,全国各高校招生规模不断扩大,导致毕业生数量也相应大规模增加,给高校学生的求职择业带来了严峻的考验。为了可以跟上时代的步伐,为求职带来一些实际项目经验,计算机专业越来越多学生选取了软件开发作为毕业设计课题。然而,在各高校实际当中,本科毕业设计质量已经下降,软件开发类论文与实际完全脱节,归根结底是没有一个可以从头到尾指导学生进行软件开发的学习模式,主要存在下面几个不足之处。
1.1学生问题
学生设计能力低,编程水平差,无项目实际经验,既不知道软件开发的基本理论与方法,也不知道程序语言代码编写和开发工具界面操作,甚至不知道从何处开始下手准备毕业论文,成为目前软件开发类毕业论文质量差的根本原因;学生思想上存在误区,不重视毕业设计的重要性与必要性,认为毕业设计与普通课程一样,对毕业设计敷衍了事,不愿意花时间和精力认真努力开发软件,总是被动、消极地接受学习,成为软件开发类毕业论文质量差的直接原因。
1.2学校问题
学生在大一至大三期间,一般只是简单地开设各科课程,并没有将所有软件开发类课程结合起来,直接导致出现学生软件设计能力低与开发水平差的现象;从论文开题、中期检查到论文答辩等过程中,并没有严格按照各种材料上交的日期进行,普遍是最后答辩时上交补交所有材料,甚至包括论文开题报告,直接导致学生消极怠慢的态度;最后的毕业论文考核是最关键的问题,也是目前毕业论文相关制度中管理最混乱的一部分。既没有一套规范毕业论文考核标准,也没有对毕业论文的中间过程进行监控,就连最后的论文答辩也只是流于形式。
1.3教师问题
大部分教师没有项目开发实际经验,只知道软件设计理论基础,不能全方位地指导学生,更加无法让学生能够主动积极地学习,成为毕业论文水平不高的原因之一。
2CDIO教育模式
CDIO教育模式继承和发展欧美20多年以来的工程教育改革理念,将“做中学”和“基于项目教育和学习”的集中概括和抽象表达,是2004年由麻省理工学院和瑞典皇家工学院等四所大学研究创立,CDIO分别代表了构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate)等四个学习过程,它以产品研发到产品运行的生命周期为载体,让学生以主动的、实践的、课程之间有机联系的方式学习[3]。CDIO培养大纲将工程毕业生的能力分为工程基础知识、个人能力、人际团队能力和工程系统能力四个层面,大纲要求以综合的培养方式使学生在这四个层面达到预定目标[4]。本文将CDIO模式的构思、设计、实现和运作等四个学习过程引入到计算机软件开发类毕业设计中,要求严格按照构思、设计、实现和运作这四个阶段进行,并将每一个阶段的成果都作为毕业论文考核的依据,以此调动学生的积极性与主动性,既能让指导老师清楚整个设计流程,并根据阶段安排加以指导和督促,也能让学生愿意付出时间和精力努力投入到毕业设计当中。在弥补学生软件开发水平不足的同时,提高学生思考问题、综合设计的能力,最后达到提高毕业论文质量的目的。
3基于CDIO模式的计算机软件开发类毕业设计
3.1构思阶段
毕业论文是从学生的选题开始,一般是由老师提供一系列题目,再由学生根据自己的具体情况选择,这种方式遏制了学生的主动性。应该由学生根据自己的爱好、专长和对将来的职业规划等情况,利用各种参考资料主动搜索与查找适合自己的题材范围,再在老师的指导下确定毕业论文题目。不仅能够调动学生的设计积极性,为后面的毕业论文工作提供有利条件,而且还可以培养学生查阅资料和思考问题的能力。之后,指导老师提供软件开发类参考资料,并在中国知网等学术平台搜索课题相关文献,确定论文的基本要求,给学生下达论文任务书。学生根据接收到的任务书,利用软件工程专业书籍、中国知网等学术平台、论文相关的Web网站,查阅大量的资料,了解论文的背景、研究现状和开发意义,确定论文的研究内容和开发中的关键问题,撰写论文开题报告,完成软件开发的构思阶段。
3.2设计阶段
设计阶段主要包括需求分析和总体设计,正式开始毕业论文的设计工作。根据资料查阅、市场调查和企业要求等形式分析软件产品操作流程、功能列表,完成系统需求分析,并在需求分析的基础上重点进行功能设计、模块划分、模块接口规范、数据库概念设计及数据库逻辑设计,在老师的指导下反复修改不断完善,最终确定系统的总体设计。然而,在软件开发设计阶段,学生论文还没有开始写,软件程序也没有完成,指导老师无中期检查依据,不能有效地督促学生开发设计。因此,在设计阶段完成之后,应该形成需求分析、数据库设计、概要设计等相关说明书,作为毕业论文中期检查的材料,纳入论文考核的范围。
3.3实现阶段
实现阶段是学生毕业论文工作的重点,也是毕业论文设计工作量最大、所需时间最长的一个阶段,直接决定最终毕业论文的质量水平。学生需要掌握软件开发工具、程序设计语言等基本理论与方法,根据系统总体设计的功能模块、接口规范等进行数据库的实现、程序代码的编写,并反复运行与测试。此阶段生成详细设计说明书、编程规范、测试等文档,作为毕业论文第二次中期检查材料。在这个阶段有了指导老师的督促,能够完全确定系统功能,不至于在后期阶段又需要反复修改。
3.4运作阶段
根据前期产生的开题报告、需求分析、数据库设计、概要设计、详细设计、编程规范、测试等文档和开发好的软件系统撰写毕业论文,并参与论文答辩,是学生毕业论文的总结阶段,不仅着重体现学生的写作水平,更能了解学生对软件的学习情况,是分值比重最大的一部分。最后,将所有文档和论文、答辩情况一起评分,获得毕业论文成绩。
4结语
1研究目标和主要内容
1•1研究目标
研究的目标是,研究开发出科学、规范的项目管理领域工程硕士专业学位论文评审模型,并通过与另一应用软件开发课题配合,实现论文评审的电子化操作,努力使研究成果达到国内先进水平,并与国际接轨。
1•2主要研究内容与流程
(1)研究《标准》,建立评审指标体系。通过调查研究,结合《项目管理领域工程硕士专业学位标准》,建立学位论文评审指标体系。(2)借鉴国际先进评审模型,构建学位论文评审模型雏形。借鉴、引进、消化国际先进的项目管理评审模型,结合我国项目管理领域工程硕士专业学位论文考核特点,构建我国项目管理领域工程硕士专业学位论文评审模型雏形。(3)依据科学原理,构建模型。依据系统工程理论以及系统模型的构建原理,运用聚类分析、层次分析、对比分析等方法开发出满足我国项目管理领域工程硕士专业学位论文评阅和答辩考核要求的评审模型。(4)研究量化的评审方法。(5)对指标的权重进行设置,采用加权法等综合评审方法,系统设计定量评审方法。(6)设计科学公正的评审流程。(7)试运行,验证。(8)为实用软件的设计预留对接接口。本研究成果具有开放性和多适应性,也可以运用于解决类似的评估、评审问题。
2课题研究的开展
2•1主要技术路线
(1)明确目标、确定范围。(2)调查研究,收集信息、数据,进行统计分析。(3)找出主要因素,确定主要变量。(4)识别和分析各种关系(内含的科学定律,管理关系、规则等)。(5)形成系统模型雏形。(6)进行“验证、符合试验”,检查模型是否反映所研究的问题。(7)简化和规范模型的表达形式。
2•2研究工作重点
(1)重在调查研究。设计调查问卷,召开座谈会,深入调查研究,广泛和重点调查我国现有在岗的与项目管理领域工程硕士教育相关的专家、教授,已经通过论文答辩的项目管理领域工程硕士研究生,企业界的项目管理客座教授、研究生导师,在读项目管理领域工程硕士研究生;认真听取他们的意见、建议;以尽量掌握足量的、必要的、有代表性的信息。(2)精心构建模型。应注意以下几点:①应用现代项目评估的相关原理和方法;②借助社会上项目管理评估方面专家的智力;③借鉴国际、国内先进的相关评估模型,结合实际,改造创新,构建本模型。
3模型的构建
3•1模型构建的原则
在具体操作时充分考虑以下7个方面:(1)真实性。反映系统的本质。(2)简明性。反映系统的主要特征,简单明了,容易操作、求解。(3)完整性。系统模型全面、完整,应包括目标与约束两个方面。(4)规范化。尽量采用教指委现有的《项目管理领域工程硕士专业学位标准》和《论文评审参考标准》的相关内容,模型与现有标准互动和对应,在创新和与国际接轨的同时,尽量使之适用并有利于下一步的操作软件开发。(5)创新性。通过模型的建立和应用,克服原有标准的某些弊端,在模型体系结构、指标设置、综合评审等方面注意范围明确,尽量量化,以克服参与评审的教师、专家的随意性,专业关注的局限性;引导与规范教师、专家在发挥其专业水平的同时,注重全面、客观、公平、公正地按模型标准范围进行评审。(6)开放性。使模型系统化、模块化,参数可选择,可更改,有利于改进和拓展。(7)可操作性。为开发实用、可操作性的计算机管理软件奠定基础。本课题组和国内的软件开发公司做了沟通和交流,可以开发出简单可操作性的软件。
3•2评审模型结构设计特点
项目管理领域工程硕士专业学位论文评审模型系统结构采用模块式,包括四个子系统模块:(1)评审目标设置。(2)评审指标(标准)与权重体系设计。(3)子准则和评审量表设计。(4)评审程序与制度设计。同时,给出可以选用的空间,以备选择应用。
3•3项目管理领域工程硕士专业学位论文评审模型
本研究所建立的模型是一个完整的系统,分为类、指标、子准则3个层次,如图1所示。指标层用于综合评分的累计,子准则层用于量化计分,采用100分制。通过对子准则评分得到其分数,再乘以相应的权数,然后累计加和(采用加法规则),即可以得出被评审项目的评审分数。图1中的子准则只是通过一个例子进行了示意,评审流程如图2所示,详细的量化评分表如表1所示。
3•4模型特点及用到的方法
从上文可知,这一模型具有如图3所示的特点,并分别用到了以下方法:①充分运用了信息搜集的方法;②运用聚类分析法对评审标准(指标)进行了分类;③用层次分析法进行了指标分层;④充分应用对比分析法筛选量化评审指标;⑤在整体指标的确定上采用逻辑框架法考虑项目全生命周期的逻辑框架关系;⑥在各指标的关系处理时采用了指标综合的方法。
近年来,软件行业进入第二春,供需两旺。据调查,以北京为例,软件工程师每年需求50000人左右。据IT英才网数据显示:北京IT职场每月需求达3380个。 [1]但是,软件行业市场的供需出现了错位,一方面,IT企业对软件工程专业的人才需求旺盛,另一方面,软件工程专业的毕业生就业质量却不高。究其原因,是我们培养的人才不能满足企业对软件工程人才要求。
软件工程专业是国家教育部在2002年新增的专业。该专业以计算机技术为主的专业,实践性很强,专业的实践教学体系是培养学生实践能力、计算机工程能力、创新能力的重要途径。我们应该充分了解市场和企业的需求,制订和实施切实可行的实践教学体系。[2]
曲靖师范学院软件工程专业从2008年开办至今,已经培养5届学生,一直以来,我们不断丰富和完善该专业的实践教学体系,形成了相对完备、效果好的实践教学体系。
2 实验室建设是硬件基础
实验室是开展实践教学的硬件保障,实验室建设的好坏,直接关乎实践教学体系执行的成败。一直以来,我们非常重视软件工程专业的实验室建设。实验建设能充分满足软件工程专业实践教学体系的硬件要求。实验设备采购的指导思想是实验设备要先进、实用,充分满足学生的学习和教师的实践教学需要。
该专业已经建成硬件实验室有2个,分别是“计算机组成原理实验室”、“计算机组装与维护实验室”;通信与网络实验室有2个,分别是“计算机通信实验室”、“计算机网络实验室”;软件类的实验室有3个,分别是“软件开发与测试实验室”、“数据库实验室”、“信息技术创新实验室”。同时,为适应当今云计算的研究需要,我们投资200多万建立了云计算平台。
以上实验室的更新及新建,能充分满足师生完成实践教学的需要。
3 软件工程专业技能训练是实践教学体系的抓手
在学生大学期间,为了在不同学期适时提高学生的综合实践能力,我们结合“软件工程专业人才培养方案”的要求,开展了贯穿大学4年的专业技能训练。我们把专业技能训练当作实践教学体系的抓手,专业技能训练根据训练大纲,着力提升学生应具备的专业素养和能力。
我院的专业技能训练主要包括两个级别,一级是课程设计训练,本训练以课程为依托,制定课程级别的训练大纲;二级是综合设计训练,主要训练学生的软件论文项目的开发能力,要求学生能灵活应用所掌握的知识和技能,完成一个综合性、设计性的软件项目。下面分别对这两级训练作详细介绍。
3.1 课程设计训练
“课程设计”是一个多义词词条。它可以指“为掌握某一课程内容所进行的设计”[3]。课程设计是课程实验的高级环节,课程实验是提升学生立体实践能力的根本,课程实验分为验证性实验、综合性实验和课程设计实验,我们在传统验证性实验的基础上开展课程设计实验,提升学生的课程综合实践能力。
以《Java程序设计》课程设计为例,课程设计的目的:利用Java语言的语法特性,结合数据结构算法、网络知识、文件处理和数据库等知识完成综合题目的设计和代码实现,并培养锻炼分析程序、撰写报告等能力。
软件工程专业的已经开出课程设计的课程有4门,分别是:OFFICE办公软件、计算机组装与维护、C语言程序设计、JAVA程序设计。我们针对这些课程,在编写实验大纲时,要求包含课程设计,设计方案要经过专业系的审核和教授委员的审定。最后,以审定通过的课程设计为依托,为后续综合实践能力的提升打下坚实的基础。
3.2 综合设计训练
综合设计训练的目的是锻炼学生综合所学知识,设计和开发一个小项目的能力。这些项目有“JAVA程序设计”、“商业数据库开发”、“J2EE企业应用”、“JAVA Web开发”等,这些小项目的训练要基于几门课的知识和技能,如“JAVA Web开发”就需要学生综合数据库、软件工程、JAVA程序设计语言等知识与技能。
综合设计训练要与毕业设计区别开来,此训练的主要目的是让学生体验和掌握项目开发流程,同时锻炼综合应用所学课程来完成一个具体的小项目。
3.3 软件工程专业技能训练安排
]
为鼓励学生多渠道获得技能分,我们规定,学生参加通过全国软件资格(水平)考试(中级),可以获得2学分,参加通过软件资格(水平)考试(高级),可以获得3学分。
4 毕业设计是实践教学体系总结性的实践环节
毕业设计是教学过程的最后阶段采用的一种总结性的实践教学环节。通过毕业设计,学生可以综合应用所学的各种理论知识和技能,进行全面、系统、严格的计算机技术及软件工程能力的练习。[4]毕业论文(设计)是实践教学体系的技能整合,我院对毕业论文(设计)作重大改革,着力打造学生综合实践能力。
参加毕业论文(设计)的学生分两部分,一部分在公司实习,同时要在公司完成毕业论文(设计)工作,余下的学生在曲靖师院完成毕业论文工作,为提高毕业论文(设计)的质量,经向教务处请示,允许我院结合专业实践性强的实际,改革本专业毕业论文(设计)工作。改革思路包括三点,一是我院学生的毕业论文(设计)以毕业设计为主,弱化对学生文本的要求,强化对实践动作能力的提升和检查,二是做好规范管理工作,制定相关文件,如:“信息工程学院毕业论文(设计)工作规定”、 “信息工程学院毕业设计开发文档的撰写与打印规范” 、“信息工程学院毕业设计开发文档”等。
5 校企合作助力实践教学体系
为提升学生的实习效果和就业质量。我们自2012年开始,与四川华迪信息技术有限公司开展毕业实习的合作,该公司是一家集软件外包、信息服务、学生专业技能培训为一体的公司,在以上业务深耕12年,在全国小有名气。我们的学生参加校企合作实习有两种类型,一是为期三个月的专业实习,二是为期四个月的就业培训。三个月的专业实习分为Java开发方向和计算机网络方向,Java开发实训的重点是提升学生的软件开发实践能力和水平,计算机网络方向的实训重点是提升学生的网络规划、设计、实施、部署的能力。
从2013年开始,软件工程专业的学生几乎都参加校了企业合作的实习,取得了良好效果,学生的专业实践能力提升了,就业质量明显提高,很多学生就在四川成都就业、创业。
6 结语
本文结合长期的思考和实践,不同的实践环节有机整合,大大提高了学生的职业能力和素质。软件工程专业的实践教学体系的构建和实践是一个系统的、长期的过程,还需要我们不断地探索,进一步提高人才培养质量。
参考文献:
一引言
项目管理技术是软件工程专业的一门重要专业课。其教学任务是使学生了解和掌握项目管理的基本概念、基本原理和工程化方法。内容涉及项目管理知识体系(PMBOK)九大知识领域和五个标准化过程组,几乎涵盖了软件项目从立项到结束的方方面面,是一门具有相当广度的课程。然而,该课程的教学效果却不容乐观。
其一、项目管理技术的理论知识多脱胎于工程管理领域,由于国内软件工程专业建设刚刚起步,相关教材往往照搬工程管理理论,缺乏完全针对软件开发的必要整理和筛选。因此同软件开发实践结合并不十分紧密。
其二、而传统的教学方式往往重理论而轻实践,教师将理论知识“满堂灌”给学生,学生“死记硬背”理论条文,并不懂得如何将理论用于实际软件开发。这种仅以理论的多寡深浅作为对学生评价激励唯一标准的教学手段,必然导致培养的人才实用性不强,职业能力较差,工程化程度较低。达不到项目管理技术的教学要求。
因此,需要对软件项目管理技术的教学进行改革。二基于具体项目的软件项目管理教学软件工程项目相比一般工程项目具有更强的复杂性和更多的不可控因素,传统的项目管理教学所传授的知识常常不易使理论知识和实际开发吻合,给学生造成“学习无用之感”;课程本身也难以完全包括软件开发过程的全部情况。最好的方法是通过一个具体软件项目的开发过程,使学生接受项目管理的理念,而软件项目的开发设备相对单一,团队人数相对较少,相比一般工程项目更易进行实践演练。
可以看出,项目管理进行过程将根据实际情况不断进行计划变更、计划控制和计划执行的搏弈和循环。由于软件项目有以下特点:
(1)软件产品是无形的,不可捉摸的,无法感觉形状,设计也难以直观表示,很难确定产品质量或估计开发工作量。
(2)由于软件的拷贝生产轻而易举,因此,几乎全部的软件项目成本在开发过程中,而不是在制造过程。
(3)软件开发过程属于劳动密集型过程,尚未实现完全自动化,因此对软件项目开发进度的计划和控制比对一般工程项目更加复杂。
(4)软件是逻辑实体,本身很容易修改,但由于其复杂性,又很难正确地修改,在缺乏沟通的情况下,对个别模块的修改可能会带来新的错误。
(5)软件不像其他产品会因使用而磨损,和一般工程产品不同,软件产品的维护常常通过增加新模块功能完成升级。为保证新版本的稳定性,常常需要对新版本的重新设计因此,软件过程主要集中于软件项目的开发过程,而在这一过程中,相比一般工程项目,项目管理过程组的核心循环表现得更加突出。基于具体项目对软件开发过程进行阐述将更有利于学生理解软件开发过程中的项目管理。由于课程目标并不在于具体技术细节的学习,而在于体会软件开发过程中的项目管理。因此在项目选择中,不能使学生投入过多精力在技术细节上,而应更多的关注软件项目管理的沟通、计划和控制。我们选择计算机学院行政管理系统网站作为实践项目让学生组队开发,这一项目属于MIS(信息管理系统)项目类,难度不大,且能充分体现软件项目需求不明确、多变、沟通复杂等特点。作为计算机学院的学生,学生对项目的需求的理解也将更加实际。
2.1基于项目驱动的评价体系“为了解决软件问题,重要的第一步就是将整个软件开发任务看做一个可控的、可度量的以及可改进的过程。”将项目管理方法运用于具体软件项目开发的实践或在实践中改进现有方法,能够帮助学生更好的掌握项目管理技术。在实际教学中,我们将学生分成若干团队,每个团队8~13人,充分使学生体会到团队感,增加管理意识。项目经理是靠干出来的,不是靠背出来的。为使学生在具体项目实践中更加投入,必须改革原有的基于卷面成绩的评价体系。我们提出基于项目驱动的评价体系,使学生自觉将课堂所学的理论知识及时用于项目。学生的总评成绩将由团队项目评分、演练与总结评分、期末论文评分三部分组成:
(1)团队项目评分:60%其中20%由教师根据团队分阶段提交的项目资料给出;剩下40%由每个团队的“项目经理”根据团队的成员的表现给出。而项目经理的打分权限则取决于项目完成时专家对项目的评审得分。
(2)演练与总结评分:20%项目结束后各个团队成员对整个项目管理过程进行总结,评价和反思项目经理的管理过程,教师根据学生个人上课时有关项目的各种演练表现以及项目总结报告进行评分。
(3)期末论文评分:20%要求学生对项目管理九大知识领域进行一定深度的论述。为确保评价体系更加公平、公开、公正,我们规定:
(1)项目经理享有计划和分配项目团队资源,为项目组成员进行打分的权利,同时具有带领项目组完成所有课堂演练环节,完成项目开发的义务。作为奖励,项目经理可以直接获得满分的演练与总评成绩;作为制约,项目经理为自己所打分数只得在项目评审得分5%上下浮动,如果项目经理引起过团队半数以上成员不满,将被弹劾,一旦弹劾,相应权利和奖励同时消失。
(2)项目评审后,项目经理将得到“项目评审得分*团队开发人数”的可分配分数,项目经理根据项目组分数分配方法给团队成员打分,上限为40。
(3)项目评审时将邀请学院软件工程专家、需方代表不少于5人组成专家组对各团队项目进行公开评审,评审将从需方满意度、项目开发文档、项目开发过程三个角度进行打分。团队最终得分通过delphi法得到。可以看出,在以上的评价体系中,基于项目驱动的评分所占比重相当大,不仅注重项目的结果,同时注重项目开发过程。学生的分数在一定程度上模拟了现实生活的“奖金”,而项目团队则更加贴近现实生活中的软件开发公司。为了使项目成功,学生必须自觉地实践和探索科学的项目管理方法,不论成功与失败都将成为学生宝贵的经验和教训。评分中,由于个体学生所能获得的成绩与其所在团队成绩紧密相关,因此,为整个团队获得高分而努力的开发过程极大地培养了学生的团队协作精神。通过教学实践,这一评价体系调动了学生的学习主动性,起到了较好的作用。超级秘书网
2.2基于项目过程的知识传授和情景演练表1显示了项目管理九大知识领域在五个标准化过程组中的作用。可以看出在不同的过程组中,各知识领域所起的作用是不同的。配合实际项目开发的过程,为使所传授的知识能够及时用于实际项目,我们颠覆了原有教材顺序,按软件项目五个过程组所涉及的知识领域对教学顺序进行重新安排,基本做到项目进行阶段与所传授的相关知识同步。每次课程教学前后都及时安排对相关内容的情景演练。由表2所示教学实施安排表可以看出,项目管理的九大知识领域几乎都能做到安排于项目情景中进行传授,起到了理论对实践的指导或总结作用。可以看出,每次演练环节一般都是对上次所本传授知识的总结或当次所传授知识的及时操练,知识点覆盖较全面。通过设身处地去当一名项目经理或软件工程师,增加了学生对软件开发项目的感性认识和兴趣,提高了他们的管理才能。通过知识传授和情景演练的密切配合,使学生对软件项目的管理过程理解得更加深刻。
二结论
基于具体项目的项目管理教学使学生能够体会项目管理各知识领域的作用,领会各种方法、规范所适用的环境。通过实际开发后自己总结提炼的经验和教训,学生将更加接受项目管理的理念和知识,培养了团队合作精神。在学期末进行的教学效果调查中,83%的学生认为这种教学方法效果良好。学生普遍反映“项目管理枯燥的理论知识变活了,知道怎么用了,印象更加深刻了。”
项目管理是软件工程重要的专业课,在今后的教学实践中,我们将继续改进教学方法,做到量体裁衣,因地制宜,加强教学效果。
参考文献:
[1]韩万江,姜立新.软件项目管理案例教程[M].北京:机械工业出版社.2005.
[2]张海藩.软件工程[M].北京:人写作论文民邮电出版社,2002.
大学教育不是培训班
重视基础教学是中国科大一贯的办学特色,如何在工程型人才培养过程中找到理论与实践、科学与工程之间的“平衡支点”?
中国科大软件学院执行院长周学海认为,高校应当从企业的需求出发,结合高校自身的培养模式,提炼出人才应具备的能力、素质。“软件工程人才,不仅要上手快,还要有后劲,后者更重要”。
学院软件工程硕士目前学制是两年半,要求完成不少于40个学分,分为3个阶段:第一年是理论学习,第二年开始到企业实习、做毕业论文,最后半年是论文整理、答辩和学位申请。
据中国科大软件学院副院长李曦介绍,学院强调专业基础课教学,很重视学生的计算机、软件、数学等基础能力培养,比如,《算法设计与分析》这门基础理论课,其他高校一般开40学时,该校是60学时。学生也有很大的学习自主权。全院共开设了108门课程,除本专业的几门核心课程外,5个专业方向的学生可以自由选修各模块的课程,也可以跨专业选课。
自主不代表要求降低。学生入学头一年要完成30多个学分的理论课学习,要求核心课程平均分不得低于75分,否则就失去学位申请的资格。即使是拥有计算机和信息专业背景的学生,每天也要学到夜里11点多。
“我们培养的不是简单的打工仔,而是技术骨干和懂技术的管理者,要为大家今后的职业成长和发展打好基础。”最让李曦欣慰的是,毕业生返校做讲座的时候,总会在结尾提到:感谢那段艰苦学习的岁月。
教学与实践相结合
“做软件的首先要有IDEA(创意),然后开发设计出样品,最终按照工程的要求做出产品。”在软件学院总支书记、副院长吴敏看来,软件公司其实就是一个“软件工厂”,如果学生不下车间锻炼实践,就无法树立起一个工程师应具备的“工程意识”。
在实践教学方面,学院在第一年就设置了“工程实验”的必修环节,首创了如同“三明治”一样的“多阶段分层次实践教学”模式,将实践教学细化为“专业基础、专业强化、专业综合”3个阶段,共3个学分,把不同阶段的理论学习与实践紧紧地镶嵌在一起。
其中,专业基础部分主要针对各专业方向的基础课程,要求学生能熟练掌握和运用本专业项目开发所需的基本理论、编程语言和开发环境。专业强化部分是完成某专业方向的综合性实践能力的训练,要求学生能综合运用本专业相关理论知识和方法,以及软件工程项目管理工具。在专业综合部分,学生自主选题,或者是企业提出需求,3~5名学生组成一个小团队,利用一年的课余时间,按软件工程规范完成一个工程开发项目,以培养学生的创新能力和团队协作能力。学院还建立了软件工程中心,承接项目开发,为学生提供工程实践环境。
据李曦介绍,设置工程实验环节后,学生的实际开发项目能力得到显著提高,能够熟练使用本专业的各种软件开发工具。从学生实习单位反馈情况看,学生的动手能力和团队合作能力得到工业界的认可,对提高学生的一次就业质量帮助很大。
从机制上确保学生实习质量
第一学年结束后,软件学院的学生像候鸟一样飞往70家稳定的校外实习基地。这些基地多为国内外著名研究所和IT企业,如中科院计算技术研究所、微软、惠普、IBM、华为等。2011年,平均每个学生有5个实习岗位可供选择。
接下来的一年里,他们将扎根企业进行严格的实习,同时开始准备毕业论文。
到企业之后,学生每人都配有企业导师,进行全程指导。实习3个月左右,学院派校内导师到学生所在实习城市检查实习情况,指导论文开题。
论文题目要求来自企业生产实际,不仅强调先进性和可行性,还对论文所涵盖的内容有明确要求。