陈立岩
[摘要]从软件工程教育的教学实际出发,探索人才培养创新教学方法,以提高教学质量。结合黑龙江大学计算机学院的实际情况,提出教学创新实践改革的新思路。通过一系列措施的实行,提高了学生面向工程的分析设计、实际动手和沟通等方面的能力,帮助学生更快地适应社会需求。
[关键词]软件工程创新教学项目驱动
[中图分类号]G642[文献标识码]A[文章编号]2095-3437(2014)11-0158-02软件工程是研究如何将工程方法应用于软件开发、运行和维护过程中的,通过讲述软件的工程化开发方法和相关的软件开发工具、开发过程、开发规范,使学生了解软件工程的本质,掌握常用的软件开发方法,并且能够有意识地将软件工程原理运用于实际的软件开发和维护过程中,提高学生的专业素质。但在实际的学习中,学生常常感到本课程理论性太强,不能将理论很好地运用到实际的项目中,造成理论与应用脱节;[2]而软件工程专业的落脚点是“工程”,也就是要学习工程化的思想和方法,掌握工程应用能力,然后解决实际问题,因此要想真正实现软件工程专业的培养目标,必须加强课程建设中的实践环节。
目前的软件工程课程,如程序设计语言、数据结构与算法、操作系统、数据库等计算机专业课程,这些能力的培养很容易在实践教学过程中被剥裂开来,让学生感觉不到实际的应用价值。因此在实践教学过程中,如何把专业知识融入工程项目中十分关键。[1]
大多数软件工程教材都是轻实践重理论,这些教材往往都是开发经验非常丰富的专家总结出的开发软件的解决方案,教材里是提炼出的理论精华,而学生没有经历实践过程,对这些难懂的理论知识不解。学生没有那么多实践的机会,体会软件工程理论有困难,这是正常的,而他不理解也就无法提高学习兴趣。如果我们想办法把这些知识融入实践性较强的计算机语言课的学习中,让学生看到从代码编写中出现的难解的问题是如何通过设计原则和设计模式处理方法得以解决,就会让学生感到好理解,有实际的应用效果。这样,将软件工程课程的一部分学习安排到语言课程中,能让那些抽象的理论变成指导开发的有力手段,当学生再学习软件工程导论等课程时,就变得容易理解,而且也并不会反感。另外,为了突出软件工程的设计、开发思想,讲语言课时,也可以在实验操作环节上增加相应的实验考核内容,使学生在学习计算机专业课程的初期就具备了软件工程理论知识,这样既学习了相应的软件工程知识,而且也让这种学习变得容易理解和具有实效性,使学生们在一开始学习时就已建立起稳固的软件工程理念,让他们体验软件工程方法与技术在系统开发中的关键作用,帮助他们以工程化方法构建小规模系统的知识能力。
以工程项目的整个生命周期作为一个载体,让学生从实践出发,主动将它与课程中的工程理论之间建立联系,使学生从全局角度深入把握项目的完整流程,培养学生运用多方面的知识和技能解决问题的能力。
一、以培养工程能力为核心的实践教学课程设计
采用循序渐进的教学手段,在构建实践中,从小规模系统向中规模系统逐步演进,在实践中学习并将知识运用融会贯通,完成三部曲。首先,将软件工程思想渗透到Java语言的学习中,让学生先在编程中体会软件工程知识给学生带来的好处,这些内容可以在上Java语言课中安排。并且重视动手能力的培养,除了平时的实验课程外,学生在将近学期末要分组做综合实验,实验题目由老师指导选题,从一些在软件公司聘请富有经验的开发人员,让他们参与整个综合实验的指导工作,让学生在大二时就已经开始把所学到的知识与实际的软件项目接轨。通过这样的培养,学生收获很大。
在语言课之后,学生开始软件工程开发基础课程学习,以经典的软件工程方法与技术为主线,教师选择一些实际的案例,选择的项目以中小规模为主,将学生分成若干小组,围绕事例按照瀑布模型展开,使学生在做项目中学会沟通和自主学习。还可以在课程中安排读书工程,要求读3本以上的书,记入读书工程学分,同时进行工程实践类课程的学习,可以按如下步骤展开:首先,通过教师选择一些实际的案例,将学生分成若干小组,每组不同成员担任不同的角色。待小组成员确定案例后,模拟实际开发环境,运用所学的理论知识展开分析和讨论。讨论结束后,各小组派出一个代表在全班同学面前汇报研究成果,老师再给予补充,这样可以激发学生的学习兴趣,培养他们分析问题能力和沟通、协作能力。
之后,安排团队与软件开发实践课,拓展学生项目管理实践、团队管理与交流实践。在项目实施过程中,由一位老师担任项目总监,在分配一定的成本、进度的前提下,学生要开发出具有一定质量属性的软件产品。另外,学院安排一个由老师组成的实践团队,分工并指导软件开发的各阶段,让每个老师所擅长的方面充分体现,并在项目开发最后,由老师和部分同学给每个小组打分,计入软件工程实践课的总分中。这些工作我们将在下学期实施。
二、考核制度改革
为激发和培养学生创新意识,发挥考试的激励作用,积极推进考试形式、考试内容、考核方式等方面的改革。[3]为推进素质教育,改革考试形式可采取闭卷考试、开卷考试、提交论文、提交软件作品等多种考试形式;为了加强实践能力的考核,促进学生创造力和个性特长的发展,考试命题可采取灵活多样的方式,可参考每年的软件分析师、设计师水平考试的相关题目,也可以加入适当的英文考试题,这样给学生更大的思维空间,促进能力的发挥;考核方式将日常评价、阶段评价和期末评价有机结合起来,如日常实验考核、提交文档及期末卷面考试结合在一起。
三、创新方式归纳
(一)挖掘课堂效率,加强课外实训
创新教学过程不再仅局限于课堂,要求学生在掌握教师授课的知识之余,通过积极参与课外实践活动,将所学的知识运用到实际的开发项目中。可以组织多种形式的创新实践小组,通过自愿报名加考核的方式筛选出有兴趣和有一定基础的学生参与进来,为他们安排固定的实验室,所要完成的项目是由学生自己申报并争取通过审批。在实践活动中,由专门的老师指导,但很多知识是靠学生课后阅读相关的书籍、资料去了解。为激励学生的实践活动,对每支学生团队进行中期和最后两次评价,并选出好的队伍参加学校及省里组织的各种竞赛活动,使学生更有动力,明确自己的发展目标和方向。自从创新实验室创建以来,学生参加各类大赛陆续传来佳绩,在全国ACM大赛、全国挑战杯大赛上均取得好成绩,其中全国ACM大赛获得一次亚洲区铜奖和多次全国一、二等奖。
(二)强化校企合作IT实训,构建多维的实践教学体系
为了加强应用型、复合型人才的培养,提高学生的就业和创新实践能力,软件学院不断探索,逐渐形成和完善出一套“多维分流”的人才培养模式,加强校企合作,把企业的资源引入高校。由一些有实力的软件公司派出一线工程师和核心研发人员到学校做培训,他们带来真实的项目,并组织大三学生,有计划地免费进行一个假期或更长时间的培训,然后公司选择有培养潜力的学生,在毕业前的最后一个学期到公司实习,当然是采取自愿的方式和公司签订合同。这样,既解决了学生就业难的问题,也能解决学生没有实践机会,不能适应外面的工作需要的问题。经过一段时间的培训,学生普遍反映进步很大,并且还找到了理想的工作。
(三)提升项目式创作
组织效益比较好的公司,带来自己公司的项目,并从公司派来有开发经验的人员到现场指导,学院低年级的学生可以自愿报名,以小组的形式组织开发项目的实施,每周开1-2次会,针对具体的问题,展开讨论并加以指导。经过了一年的项目开发,已经小有成绩,这些小组的成员都能一直坚持下来,说明这种形式的项目开发给学生带来了真正的实惠。
四、创新实践教学成果
从2008年起,我学院每年就业率逐年提高,到2012年止,就业率高达92%,已是全校各学院中就业率最高的学院,而且,从用人单位反馈的消息来看,对我们学生的评价也很高,普遍反映学生知识面宽、动手能力强。
五、总结
面对就业的压力与社会对人才的不同需求,我们除了要抓好课堂上的学习,培养学生的扎实基本功和学习兴趣外,更重要的是让他们走出课堂,加强课外实践和自主学习的能力,以提升自己面向工程的实际动手能力,进一步提高分析、解决问题的能力和与人沟通能力。这些正是作为软件工程专业的学生所难能可贵的知识积累。
[参考文献]
[1]阳王东,吴宏斌,祝青.以工程项目为主线的软件工程专业课程设计的实践教学[J].计算机教育,2012(12).
[2]刘强,陈越,骆斌等.“软件工程”课程教学实施方案[J].中国大学教学,2011(2).
[3]金英,王楠,杨丰.优化课程体系改革教学内容和方法培养创新型人才[J].黑龙江教育,2008(1,2).
[4]裴小兵.基于软件开发团队的软件工程教学实践研究[J].计算机教育,2008(2).
[5]东霞.计算机创新教学模式的探讨[J].信息与电脑(理论版),2011(1).
[责任编辑:钟岚]