独立学院软件工程课程教学探究
【摘要】《软件工程导论》课程是独立学院计算机专业培养中非常重要的一门课程。本文介绍了独立学院《软件工程导论》课程目前的教学现状,描述了一种针对该课程的,以CDIO理念为指引,以提高学生工程化开发能力为目的进行的教学改革思路。
【关键词】软件工程导论;CDIO;教学改革;工程化
1、引言
在就业环境日益严峻的现今,软件人才仍然需求火热。企业需要合格的软件人才,而应届毕业生希望找寻到合适的企业接收。在供和求都有需求的情况下,仍然存在企业需求不被满足的情况,这体现了目前的现状:在计算机行业内,既缺少行业特色型人才,也缺少应用型人才。在这种情况下,以创建应用型本科为目标的独立学院所面临的改革压力非常大,各个专业也开始寻求全新的发展方向[1];与实践相关的专业纷纷开始展开各项教学改革研究,特别是针对实践类的课程教学改革[2]。作为独立学院的计算机专业,在教学上必须结合行业的需求,紧跟行业内的技术发展趋势;同时立足自身定位,对专业的培养目标进行适当调整。而在计算机相关专业的培养计划中,《软件工程导论》作为一门承上启下的重要专业课程,对于学生的影响十分重大,在教学中需给予正确的定位[3]。
2、课程现状
福建师范大学协和学院建立了基于CDIO的教学培养模式。CDIO是工程领域一种较新的教学理念,于2000年由美国麻省理工学院、瑞典皇家理工学院等四所大学的工程教育改革团队联合提出。“CDIO这个缩写包含了Conceive、Design、Im-plement和Operate,其代表的含义是构思、设计、实现和应用”[4]。这种教育理念所倡导的创新能力和与社会大环境的协调发展对于目前的独立学院教育是非常吻合的。在目前的教学体系中,计算机专业的《软件工程导论》课程安排在三年级的上学期进行教学,主要安排为理论课程。由于课时的限制,也因为课程本身的导论性质,教师在教学中理论讲授的时间偏多,存在以讲授为主的教学行为,导致学生的学习积极性不够;而学生所获取的知识点相对零散,无法建立起统一完整的知识体系。这种情况若任其发展,将使学生丧失对课程的兴趣,因此,课℉程改革势在必行。
3、教学改革措施
本课程教学改革的核心在于基于CDIO的指引,将工程化理念引入《软件工程导论》的教学当中,对现有的教学理念进行修正。CDIO倡导“基于项目的教育和学习”,将学生作为教学的主体,而不是以教师为主;CDIO提倡以工程项目从研发到运行的生命周期为载体,让学生以主动的、实践的、课程之间有机联系的方式学习,以此来培养学生的工程能力、运用知识分析和解决问题的能力、终生学习的能力以及团队协作的能力。这些能力的培养对于信息技术相关专业的学生来说尤其重要;这种以工程项目为驱动的教学方法非常适合于《软件工程导论》课程的教学开展。课程教学的改革将围绕独立学院所设定的应用型本科人才培养为目标[5]。首先,工程化理念的引入并不是在《软件工程导论》课程中才首次提出。在大一新生入学后,在编程的入门课程中,教师可以为学生引入简化后的工程化思想。在需要通过编程去解决问题时,首先要思考出完整的解题思路(在软件工程中我们称之为解决方案),而不是立刻开始代码的编写。通过长时间的训练让学生习惯“谋定而后动”,并且将这种习惯延续下来。在目前的教学培养中,我们在大一学年安排了《高级语言程序设计(C语言)》和《面向对象程序设计(C++)》课程作为专业的基础入门课程,主要完成C语言和C++语言的学习。在教学过程中,我们注重了验证性实验和设计、综合性实验的合理搭配,避免让学生陷入一味验证的套路中,通过实验的设计去启发学生对同一问题的不同解决方案。在课程的正常教学结束之后,我们安排了一个综合性实验,要求学生分组完成一个基于DOS平台的简易的MIS信息管理系统。这个系统允许学生分组(每组2-3人)完成,遵从需求分析———数据结构设计———功能模块划分———模块代码实现———调试完成总体功能的大体顺序开发完成。通过这样的实验安排,既能渗透简化的软件工程思想,也能强化学生的编程能力,锻炼学生的团队合作能力;在项目的工程化实现过程中提升学生的总体能力。其次,在《软件工程导论》之前的前导课程中,都可以不断的渗透工程化的开发思想,为后续的课程打好基础。工程化开发思想在后续的学习和之后的工作中都是不可缺少的。在在《软件工程导论》之前,培养计划中安排了《数据库原理与技术》、《数据结构》、《网络编程》等专业课程,均设置了以项目形式主导的课程设计或综合实验。在各门前导课程的综合训练中,我们一次次的强化了项目管理的相关知识,不断的向学生传输工程化的软件开发思想。这种潜移默化的引导为后续《软件工程导论》课程的开展奠定了良好的基础。再次,在不增加现有课时的前提下,对学生进行分组,提供相关的课程选题,由各组选择完成并以课程大作业的形式完成提交;课程大作业将作业课程最终成绩的重要组成部分。选题的设置要注意贴近实际,要能让学生能够展开实际的调研;同时要注意难度的合理设置,既能关注到尖子生的提升性要求,也能照顾到落后学生,避免部分学生对课程的学习失去信心。结合课程中的分析讲解、分组讨论和课后的文档完成,我们希望学生在这个过程中能够体验到完整的软件开发的流程,将课堂讲授的知识应用到所选课题中,能够更深入的体验分工合作的团队精神,从而对课程教学内容有更加深入的理解。第四,在课程结束后的课程设计中,每个小组对所选的项目进行优化完善,提供一个可以运行的版本,并完成项目答辩。通过现场答辩的形式让小组成员更明确的了解自己的项目作品在哪些环节仍存在缺漏。当然,在这个课程中,我们主要关注的每个小组对于所选课题的需求分析和设计的过程,对于实现环节,我们鼓励学生尽可能的完成,在困难环节可♀以与教师进行沟通,认识到自身知识体系的薄弱环节并进行提升,为后续的毕业设计打完基础。总而言之,我们希望以这种分组团队项目开发的形式,为学生提供软件工程课程的实践体验,加深对课程知识的印象,锻炼文档撰写的能力;同时,在项目开发的过程中,让每一个成员都能够参与起来,能够完整的体验整ส个项目开发的流程,并且熟悉流程中涉及到岗位角色,建立起一定的团队合作精神。另外,在对不同专业开设《软件工程导论》课程时,要综合考虑不同专业的培养目标,对课程内容进行相应调整。
4、小结
通过上述相关措施的执行,学生对于《软件工程导论》课程的学习积极性和主动性有所提升,对于软件开发的完整流程有了更加深刻的认识;同时也深刻认识到软件开发并不是一个“单打独斗”的过程,需要有团队成员的良好合作才能有很好的软件作品产生。以上这些都将为本专业的学生进入专业工作领域奠定良好的基础。目前的行业发展趋势表明,企业仍然是需要人才的,既缺少高级软件工程人才,又缺少高技能的应用型人才。根据独立学院的特殊定位,我们在教学中应该定位于培养高技能的应用型人才,注重实践动手能力的培养,注重提高团队沟通和协作能力的培养,提高毕业生质量,为软件企业输送人才。在后续的教学开展中,我们将在坚持现有良好措施的前提下,将相关课程更❤好的组合成为一个课程体系,打通课程之间的壁垒,降低学生的学习难度,增强学生的成就感,从而更好的提高总体的教学效果。
参考文献:
[1]林昌意,张杰,林鸿.独立学院电子信息工程专业建设的探索与实践[J].中国石油大学胜利学院学报,2012,26
:80-82.
[2]林昌意,兰其斌,陈海霞,等.技术实践与创新并举的实验教学体系研究[J].福建电脑,2017
:87-88.
[3]韩智,☤张振虹,李兴娟.基于CDIO理念的软件工程课程教学改革[J].计算机教育,2010
:56-59.
[4]陈翠荣,赵飒.高校多媒体教学中存在的问题与对策———基于调查访谈法的分析[J].黑龙江高教研究,2013
:19-22.
[5]廖礼萍,刘宏哲,马小军,等.面向应用型人才培养的软件工程课程教学改革[J].计算机教育,2014
:19-21.