胡炜,罗来俊
(江西理工大学软件学院,江西南昌 330013)
基于项目驱动的软件工程实践教学研究
胡炜,罗来俊
(江西理工大学软件学院,江西南昌 330013)
项目驱动教学是一种将项目贯穿到实践教学当中的教学方法,该方法能充分锻炼学生的综合能力,让学生将来更好地适应企业的需求.本文提出了基于项目驱动的软件工程实践教学方法,并对其中的项目选择、项目执行规划、项目实施与项目教学评价等关键环节进行了详细的阐述.实践证明该项目教学方法取得了良好的效果.
项目驱动;软件工程;实践教学
软件工程专业是实践性极强的专业,实践教学在整个教学过程中具有十分重要的作用.当前国内高校基本都开设了软件工程实践教学课程,但不少高校的实践教学效果并不理想,其主要原因是实践教学的系统性和深度不够,实践教学的内容主要以软件工程专业课程知识点验证为主,且各学期间的实践教学内容连贯性不够,不能持续深入地培养学生某方面的软件开发能力.经过实践教学后学生仅能对单个的知识点有所理解,对于综合性的软件工程项目依旧十分茫然、难以上手.而软件企业对于毕业生的工程实践能力要求较高,通常企业希望招到实践动手能力强、具有一定项目经验的毕业生.从人才培养与企业需求的角度出发,有必要将特定的软件工程开发项目与实践教学相互结合,让学生在实践教学过程当中逐步培养自己的项目实践能力.据此,本文提出了基于项目驱动的软件工程专业实践教学方法.
项目教学法由美国教育家凯兹教授与加拿大教育家查德教授共同创建,20世纪末期以来在高等教育中得到了广泛的应用,并在实践教学中取得了良好的效果.实践教学中的项目来源于工程实践,有一定应用价值,难度适宜.项目驱动教学将项目实现的全过程贯穿到实践教学中,能较好地挖掘学生的学习潜能,调动学生的学习热情,改观传统教学中学生基本处于被动的学习局面;能把学生在课堂上遇到的抽象、难以理解的知识点与工程项目有机联系在一起,从而能让学生更加形象、直观地理解并加以掌握;能真正达到学以致用,学有所用的效果,让学生在完成项目的过程中巩固所学的知识点并做到融会贯通;能有效地将社会需求与学校教育融为一体,使学生提前获得就业中所需的工程实践能力、独立分析能力、沟通交流能力、团队合作等能力,为学生以后快速融入工作岗位打下坚实的基础.
科学地选择软件工程实践项目是保证实践教学取得成功的关键.因此在选择实践项目时要综合考虑各方面的因素,其中的关键是所选择的项目要与学生本学期所学的理论知识相匹配.如果项目选择不恰当,教学效果肯定不好.有些学校实践教学外请企业的人员来上课,如果企业人员安排的实践项目与学生所掌握的理论脱节,则学生在学习基本理论的同时还要及时完成项目,而实践教学的时间通常不会很长,学生在较短的时间内往往很难完成项目任务,导致实践教学的效果很不理想,甚至会影响学生今后学习的信心.
通常应该将实践教学的项目分为基础项目与综合项目:基础项目主要面向低年级学生,其难度和深度需要控制;综合项目主要面向高年级学生,其难度和深度应该贴近真实项目需求.基础项目与综合项目有难度和深度的差别,但在选题类型上应该注意连贯性与渐进性,要能按年级持续地培养学生某方面的核心能力.比如针对大一的学生通常会进行C语言的实践教学,其实践教学项目可以选择利用C语言来实现一个简单的人事信息管理系统或学生成绩管理系统等.学生进入高年级后还将学习JAVA、JSP、C#、ASP.NET等更高级的程序设计技术,利用新技术可以去开发更高级的人事信息管理系统、学生成绩管理系统等.学生在有了前期的实践基础后,后面高年级的实践项目就更容易完成,也更能激发他们的学习兴趣.综合项目的完成可以参照企业流程来完成,通过综合项目的实践训练,能让学生提前熟悉软件企业的研发流程与工作环境.
在实践项目实施前,科学地制定项目执行计划是保证实践教学取得成功的重要前提.一个好的项目执行计划能让项目的实施更加合理、流畅与高效.项目执行计划中通常包括项目需求、任务分解、技术路线以及组织分工等.项目计划制定前先要将班级学生进行合理分组,再由每个分组单独制定项目执行计划.在项目执行计划的制定过程中要以学生为主,教师只做相应的引导工作,并适当提供一些参考资料和方向性的建议.制定项目计划能很好地锻炼学生对于软件项目的总体把握能力和分析解决问题的能力.为了确保各个项目小组的计划可行与高效,在各小组完成本组项目执行计划的制定后,教师可以组织所有学生对各项目小组的执行计划进行比较,通过比较可以让各小组看到别人的优点和本组项目计划的不足,教师作适当点评并帮助学生对执行计划进行优化.项目执行计划的对比与优化过程十分必要,可以有效避免某些小组在计划执行后期才发现本组执行计划的问题,后期发现问题再重新修改计划将是十分被动的,将导致该组最终难以按时完成任务.项目执行计划的制定过程如下图所示.
图1 项目执行计划的制定过程
在项目执行计划的指引下,本阶段的任务是对软件项目进行具体实现,将前期的规划设计变成真实软件.在该过程中学生将遇到许多挑战与困扰,尤其是综合性的项目完成难度更大,也将给学生带来不小的压力.因此在该过程中教师一定要做好技术与心理方面的引导工作,让学生逐步掌握软件开发的规律,使学生的技术与心理都走向成熟.
项目的实施不仅仅是要实现软件项目的相应功能,还要注重软件研发的规范性与科学性,具体包括软件研发步骤、程序代码规范以及项目管理等是否符合软件行业标准.当然,这对于指导教师也提出了更高的要求,需要教师有一定的软件企业研发经验.在项目的实施过程中,教师应该对各项目小组的研发进展及时追踪,出现问题应及时与学生进行沟通,引导各小组顺利完成项目.
在项目任务完成之后,对各小组进行科学、合理、客观的评价是十分必要的,这样可以让学生发现自己的不足,从中吸取教训,从而进一步提升实践能力.在项目完成后,首先由各项目小组提交项目工作技术报告、软件开发文档以及工作小结,并由组长对开发系统进行演示说明,然后以项目组答辩的形式回答教师或者其他项目组成员的提问,最后针对每个学生的开发能力、学习态度、组织协调及团队协作等方面表现进行单项成绩评定.在项目评价中应注意不要以某个小组的总体成绩作为某个组成员的成绩,这样很容易导致“吃大锅饭”的局面,项目任务仅仅由组长或几个能力较强的学生完成,好生越好,差生越差,不利于学生的共同进步.对于每个学生的最终成绩评定可以结合项目的总体成绩以及学生的个人单项成绩来评定,这样既有利于团队合作意识的培养,又能促进每位学生都认真完成自己所承担的任务.
项目驱动教学引入软件工程实践教学,实现了理论知识与实践技能有机结合的目的,让学生较早地体验到相对规范的软件开发流程,增强了学生的实践动手能力,提升了学生的团队协作精神.以学生为主体的教学过程能让学生的综合能力得到充分锻炼,充分体现了实践教学以能力为本、以职业素质培养为导向的教学理念,使软件工程的实践教学质量得到了稳步提升.
〔1〕王志兵,李长云,邓晓军,等.计算机类专业创业人才培养探索与实践[J].现代企业教育,2012(19):158-159.
〔2〕王立娟,刘瑞杰,何丹丹.软件工程专业实践教学体系改革的研究与探索[J].价值工程,2013(32):211-212.
〔3〕马燕,张根耀,王文发.软件工程实验教学模式改革与实践研究[J].教育与职业,2006(36):149-150.
〔4〕刘建生,孙彦武.基于多目标优化的大型项目任务分配模型[J].江西理工大学学报,2013(1):90-95.
〔5〕余久久,张佑生,傅廷亮等.《软件工程》项目教学思考与探索[J].赤峰学院学报(自然科学版),2013(29):238-239.
G642.0
A
1673-260X(2015)04-0226-02
江西省高等学校教学改革研究课题(JXJG-14-7-21)