《软件工程》项目教学思考与探索
2013-04-02余久久张佑生傅廷亮蔡政策梁月放
余久久,张佑生,傅廷亮,蔡政策,梁月放
(1.安徽三联学院 计算机科学与技术系;2.安徽三联学院 信息与通信技术系,安徽 合肥 230601)
《软件工程》项目教学思考与探索
余久久1,2,张佑生1,傅廷亮2,蔡政策1,梁月放1
(1.安徽三联学院 计算机科学与技术系;2.安徽三联学院 信息与通信技术系,安徽 合肥 230601)
根据软件工程课程特点,详细分析了当前该课程项目教学过程中所存在的一系列问题.分别从课程项目教学内容的选取、教学实施方案与考核方式三个方面进行教学思考,并探索教学改革思路和方法以提高教学效果.
软件工程;项目;教学;思考
1 引言
软件工程课程旨在培养学生软件开发的实践能力,通过运用现代化信息系统项目管理学的基本原理、技术与方法等从事计算机软件开发、管理及维护工作.该课程的教学中除包含计算机本身外,还涉及到从多其他领域知识,如现代管理学、经济学、心理学、人机工程学等[1].课程的学习目标不仅要求学生具备扎实的程序设计能力,尤其强调了现代软件项目运作过程中的团队合作精神及项目管理思想.
鉴于课程强调学生动手能力及培养其分析、解决实际问题能力,大多数教师往往依据学生现有的知识结构,课堂教学联系项目实践,较多采取实际案例教学或项目实践的教学方式.通过选择难度适中的案例作为学生学习、实验、实训的载体,完成项目教学过程.但是从实际教学效果来看,教学效果一般.学生没有体现出浓厚的学习兴趣,实际动手能力亦没有得到显著提高.作者基于近几年该课程实际教学经验,深入思考并分析教学过程中所存在的主要问题,积极探索该课程项目教学改革的新思路与新方法,在提高教学效果的同时也对于培养出合格的软件技术人才具有重要意义.
2 当前软件工程课程项目教学所存在的主要问题
2.1 教学内容严重脱离实际
随着软件开发新技术、新工具、新方法的不断涌现,课程主体教学内容已经从十年前的软件结构化分析与设计方法逐步发展到当今面向对象的软件工程复合体系.基于构件的软件开发思想、安卓平台下开发软件的过程、软件逆向工程以及软件二次架构等内容已成为当前学科领域的主流.可是目前许多院校针对软件工程课程的项目教学与实践内容仍然以传统的结构化开发方法为主,严重脱离实际.例如在教学中教师仍然指导学生选择传统的瀑布开发模型对单机版的软件进行开发讲解来作为教学案例或实践项目,然而这些项目已随着web时代的到来逐步推出舞台[2].学生所学习或实践的是逐步被淘汰的内容,与当前信息产业技术发展严重脱节.项目实践时效性差,学非所用.
2.2 多数教师缺乏实际项目经验
软件工程课程内容中所涉及到项目领域覆盖知识面广泛,要求任课教师不仅精通本专业知识,更要熟悉现代化软件项目的运作及管理方式.在国外,该课程任课教师大多由具有丰富的项目经验软件企业工程师担当,但是国内很多高校的教师,大多是从学校到学校,长年固定教授一两门课程,少有实际项目实践经历,更谈不上项目经验了[3].基于此,这必然造成教师只能照本宣科来灌输“空洞的书本理论”,无法把书本上理论知识与实际项目相结合来指导学生完成实践教学过程.有些高校甚至取消了该课程项目实践教学环节,而让学生阅读教师事先准备好的现成企业项目相关资料或者仅仅要求学生网上搜索与填写出项目各阶段的开发文档取代课程项目教学的内容,教学过程中缺乏有效的过程监督与管理.学生接触到的永远是抽象的理论概念,理解困难,产生厌学情绪,更无法促进实践能力的提高.
3 项目教学方法的思考与探索
面对当前软件工程课程项目教学效果不甚理想的状况,作者从课程实践内容的选取、实践教学方法与考核手段的制定三个方面尝试对课程项目教学进行思考并积极尝试探索.
3.1 项目实践内容的选取
项目教学过程中,项目的制定、实施、完成、以及对完成项目情况的评估成为教学中心环节,学生不把学习当任务,而是根据项目需求来学习,由被动的接受知识变为主动的寻求知识[4].就软件工程学科而言,项目内容的选举一定要融入当前软件开发中的新技术与新方法,培养学生学以致用的能力.教师对实践项目的选取要摒弃对不适用或已过时技术方法的讲解(比如取消面向过程的开发技术,取而代之的是选择基于web环境下面向对象以及基于构件开发技术为主线的项目案例等).项目的来源可以取自教师自行编写的项目案例手册(教材),或者上网搜索,也可以选择近三年教材上所附的能够反映出软件工程最新发展动态的案例,但是要根据实际作相应改动.
此外,选择项目案例要以教学内容为依托,题材来源于生活实际并且规模适中.所涉及到的行业背景及实施难度不宜复杂,应当在学生充分了解范围之内.教师可以采用一个完整并成熟的项目案例通过分解子模块分阶段实践的方式贯穿项目实践教学全过程,也可以选择若干不同的规模并非很大的项目案例作为每次项目教学的内容.教师对所选项目应非常熟悉,最好是亲自开发过的,有利于项目实践中全面指导学生[2].
最后,在选取的软件项目中设置弹性化的模块完成要求用来满足不同能力层次学生的实践需要,以激发学生的创造性和主动性,从而增加学习兴趣.
3.2 项目教学实施方案
毋庸置疑,教师作为实践教学环节过程中的重要因素将直接影响教学效果的好坏.在开展项目教学同时,学校尝试聘请当地企业一线从事相关专业生产、研发人员到学校担任项目兼职教师,弥补教师在项目教学法中经验的不足,并以此带动教师的项目实践能力[5].项目教学过程中,作者不建议学生以个人为单位进行项目实践活动,学生自由组合进行三至四人的分组,但是每组学生要涵盖“好、中、差”三个层次,共同参与并完成项目中所包含的各项任务.项目实施中,教师原则上不干预组内成员的具体任务分工,但允许学生在课堂时间之外完成实践.教师可以提供必要的技术书籍或相关资料,但是不参与学生具体实施过程.
项目完成后,教师首先检查每个项目组是否按照预定要求实现了项目中的功能.客观的对每个项目组的项目完成情况进行评估,充分肯定项目组中每位同学的成绩和付出,并给与相应评价[6].在时间允许的前提下,可以组织小组内部答辩、小组与小组间答辩等相互评估活动来调节学习气氛.最后每个项目组通过提交详细的实践报告与公开演示项目作品,总结学习心得体会.
3.3 考核方式的改革
基于软件工程课程的特点,作者不提倡该课程采用传统的卷面笔试或上机命题的考核方式.由于实践项目所要求的功能性结果在完成后所涉及到的非功能因素还有很多(比如软件界面美观因素、人机交互友好因素等),制定同一的考核结果判断准则不现实.这里作者尝试以每次项目实践的综合评估结果结合相关技术文档或相关实践报告的质量,辅以学生平时参与项目实践活动的出勤记录作为课程考核的依据.项目完成后的小组汇报,项目组(组内成员)的现场答辩活动等都可以成为课程考核方式.每位学生的分数包括权值各不同的自评、他评(其他项目组同学评分)和教师评分三部分组成,最后汇总采用“优/良/中/不及格”四个级别作为最终得分的判定层次.
成绩评定过程中需要注意的是教师对学生每部分评分分值的权重比例要划分合理,例如:自评20%,他评40%,教师评分40%.评估标准的判断要具有开放性与客观性.如项目实践中资料的选取是否全面、可靠、实用,项目计划是否严密、完整,解决方法是否合理、有创新等.实践证明,开放客观的评估准则,教师对项目实践过程中重鼓励、重引导的评估思想深受学生亲睐.
4 结束语
对于综合性与实践性较强的软件工程课程,基于项目实践教学的改革探索势在必行.新形势下要求教师具备一定的项目开发及运作经验,使得该课程教学效果显著.通过在教师指导下,学生分组参与项目实践,让学生的分析及解决问题能力、知识的综合运用能力、以及团队协作能力都得到相应程度的提升.激发学生学习兴趣的同时,极大锻炼学生动手实践能力,也为培养学生今后实习与就业中的实际工作能力打下良好的基础.
〔1〕马燕,张根耀,王文发.软件工程实验教学模式改革与实践研究 [J].教育与职业,2006,12(36): 149-150.
〔2〕胡洋,苏琳.Web软件时代的《软件工程》课程改革与建设[J].中国成人教育,2010(5):111-112.
〔3〕谭玲.项目教学法与计算机教学[J].科技创新导报,2008(26):251.
〔4〕张哲,张涛.高校IT实训改革与探索[J].电脑知识与技术,2009,5(27):7701-7702.
〔5〕余久久,张林,张健.项目教学法在高职院校开展的几点探讨[J].皖西学院学报,2010(2):42-44.
〔6〕余久久,张佑生,张继山,等.计算机应用基础课程项目教学研究与实践[J].赤峰学院学报,2010(11):197-198.
G642
A
1673-260 X(2013)10-0238-0 2
2011年安徽省高等学校省级质量工程项目(2011074);2013年安徽三联学院科研基金项目(2013Z002)资助