APP下载

基于CDIO理念的软件工程课程教学改革

2010-12-31张振虹李兴娟

计算机教育 2010年11期

  摘要:本文以CDIO的教育理念为指导,将案例教学、基于项目的学习、启发式教学等多种手段用于软件工程课程教学的改革中,重点体现在基础知识的传授,工程价值观与能力的培养,协作与沟通的培养以及应用实践能力的培养等几个方面的改革,实践证明改革取得了良好的教学效果。
  关键词:CDIO;软件工程;教学改革
  
  1 背景与理念
  
  我国从2002年起开始在35所高校开办示范性软件学院,目的是培养具有创新意识和国际竞争力、符合市场需求的实用型软件人才,强调学生的软件开发能力和应用能力。一个优秀的软件工程师除了要牢牢掌握既有的软件理论和基本知识外,还必须具备对软件行业和软件项目的深刻理解与掌控能力,必须具备根据市场发展及用户不断变化的需求进行创新设计的能力,必须具备扎实的开发能力与良好的交流能力、团队精神,还必须具备终生学习的能力,从而不断的更新自己。
  对学院部分本科生的前期调研发现,有超过四分之一的被调查对象认为在大学本科阶段所学的专业知识在实际工作中很少用到,而认为“非常有用”的只占不到5%。调查还发现,超过98%的被调查者认为专业课教学应当在基本理论教师讲授的基础上,更加注重结合项目案例、工程实践、学科前沿发展,同时迫切希望提高软件构思与设计能力、自学创新能力、团队协作能力、人际沟通能力的被调查者比例分别超过95%、85%、75%和60%。然而,上述能力的培养并没有包含在传统的专业培养理念中的。目前软件工程类课程教学和其他工程教育类课程一样存在重理论轻实践,重个人学术能力轻团队协作精神,重既有科技轻创新进取的问题。课堂教学往往采用填鸭式教学方法,以教师讲授为主,忽视了学生的主动性和参与性,即使在实验课教学中,学生也只是根据教师布置的作业内容按部就班进行操练,以实现对课堂内容的记忆和理解,忽略了培养学生的分析解决问题能力、学习创新能力等多方面的综合技能。
  
  CDIO工程教育模式是近年来国际工程教育改革的最新成果,2000年起由麻省理工学院和瑞典皇家工学院等四所大学组成的跨国研究机构在Knut andAlice Wallenberg基金会近2000万美元的巨额资助下展开研究。经过四年的探索研究,创立了CDIO工程教育理念,并于2004年成立了以CDIO命名的国际合作组织。CDIO代表构思(conceive)、设计(Design)、实现(Implement)和运作(Operate),以现代工业产品从构思研发到运行改良乃至终结废弃的生命全过程指导工程教学过程。CDIO工程教育理念正是以此过程为载体培养学生的工程能力,提出了系统的能力培养教学大纲,包括4类一级能力、17组二级能力(如表1所示)、以及73种具体能力,范围涵盖了学生的理论知识,个人素质和发展能力、协作能力以及大系统适应和调控能力。CDIO工程教育理念自诞生至今,获得了世界范围的认可与采用,迄今已有几十所世界著名大学全面采用了该教育理念,完善教学大纲,取得了良好的教学效果和社会效益。国内一些大学也开展了对CDIO的研究、实验和探索。
  本文将CDIO的教育理念在软件工程课程教学的改革中,通过对本课程的学习者进行多方面深入调查,并对CDIO工程教育理念进行消化吸收和本土化,同时参考国际高等院校的应用经验,在此基础上对软件学院本科生软件工程课程进行了改革,主要体现在基础知识的传授,工程价值观与能力的培养,协作与沟通的培养以及应用实践能力的培养等几个方面,取得了良好的教学效果。
  
  2 教学改革与实践
  
  2.1 基础知识的教学策略
  基础知识的教学策略主要体现在两个方面:首先,根据学习者的学习准备情况,选择教学的重点内容,增加案例教学的内容:第二,面授教学中,在信息技术的支持下,运用启发式教学方法,调动学习者的主动性和参与性,为应用能力的提高提供保证。
  2.1.1 教学重点内容的选择
  (1)教材 的选择。根据软件学院培养应用性人才的目标,我们选择了Roger s.Pressman的在国际软件工程界享有无可质疑的权威地位的《软件工程:实践者的研究方法》(第六版)一书作为主教材,重点介绍软件工程的有关概念、原则、方法和工具,并根据软件学院软件工程本科生的特点和实际学习水平对教学内容进行了适当的删减和补充,保留了其中的基本部分,压缩和删除了教材中部分对于软件工程专业本科生不容易理解的高级内容。
  (2)案例的补充。针对软件工程本科生缺乏实际项目经验,教师就在教学内容中加入了大量的案例,包括一些公司的成功的软件开发案例,也包括一些失败的案例。同时,选择了一个难度适中的完整的项目案例贯穿整个课程教学讲解中。
  (3)与前沿接轨。在每一章的教学内容中都补充了相关的软件业界有关的技术、方法的最新的研究、发展动态,让学生实时了解行业的最前沿。
  2.1.2面授教学方法的选择
  (1)全方位的信息传授。在多媒体课件教学的基础上,充分利用网络资源,形成全方位的立体信息空间,有效培养学生获取信息、掌握信息、运用信息和处理信息的能力。并且,网络资源的超链接特性符合人类学习的认知思维习惯,也促进了学习者在学习过程中的自我探究和知识建构。
  (2)启发式教学。教学中还采用了启发式教学方法,引导学生就软件开发中的问题进行多方位、不同角度、不同层次的思考,让学生积极参与到课堂教学中,调动学生的主动性,从而为应用能力的提高提供了前提和保证。
  (3)学生上讲台。每次主讲课都安排学生轮流上讲台,对上一次课的重点内容进行总结分析复习;同时还安排学生对一些案例进行准备,在课堂上由学生组织案例分析的讨论,老师对其中的关键点和出现的问题给予指点。这种方法很好的锻炼了学生总结、分析所学知识的能力,同时也锻炼的学生的表达沟通能力。
  
  2.2 工程价值观与工程能力的培养
  工程类的学生在对工程的认识和学习上存在较大问题:首先对于本科生来说,绝大多数学生,都片面的认为学习工程仅为取得一纸文凭而非以工程为终身事业,这种学习态度降低了学生学习的主动性和创造性。其次是学生缺乏学习动力,即缺乏主动学习的兴趣也缺乏应有的时间安排能力,在安排时间的决策上,受同学和老师的影响较大,哪一门课要求严格,所花的时间就多。
  针对以上问题,我们在课程教学中着重对学生的工程价值观进行培养,期望帮助学生树立工程是一种不断追求卓越的过程,必须经过多次回顾、反复修正、不断创造及深入探索的理念。我们进行以下尝试。
  首先,端正学习态度,鼓励创新,重点培养学生持续自学自己感兴趣的内容的能力。在课程的最终评价中,将学习态度和创新加入课程评价体系中,以引起学生足够的重视。同时通过安排学生上讲台进行课程重点复习和案例分析,可以帮助大家从不同视角来进行思考,以扭转被动学习的风气。
  其次,提倡自主的构思、设计、实践和操作。鼓励学生把软件工程的思想时时刻刻的用于自己平时的各项软件相关的活动中,把各种课程设计和校内实践活动都当作实质的工程项目,自行安排进度和控制。这种方式能更好的提升学生的工程能力。
  
  2.3 团队协作与沟通能力的培养
  软件开发是一个集体智慧的结晶,团队协作和沟通起了非常重要的作用。目前的多数学生都是独生子女,在个性上比较独立和张扬,喜欢展示个人的能力,但沟通能力和协作能力相对较差。我们在课程中通过多个环节来注重对此方面能力的培养。
  首先,课程中强调小组的概念,无论是学生在课堂讲解,还是课程实践项目,均以组为单位,锻炼学生的协作能力。每个组的组长每个月调换一次,让学生理解项目组中的不同角色,从不同角度增加协作和沟通能力。课程评价中也以组为单位,这样增加了学生的小组意识。从实践效果看,学生的主动沟通性明显增强,谁都不希望出现一个人拖了整组的表现。
  其次,在小组开发过程中,将内部沟通记录也作为评价小组表现的一个因素,要求小组对内部的会议,聊天、邮件等沟通方式进行记录。
  
  2.4 应用实践能力上的培养
  应用能力的培养策略主要体现在两个方面,首先,增加实验教学的比例,提供更多的软件开发练习机会;其次,将PBL(Project Based Learnhag)引入实验教学,为软件学院的本科生积累工程实践经验。
  2.4.1 增加实验教学比例
  根据国家示范性软件学院软件工程专业本科生的培养目标,传统以教师为中心、理论和概念为主导的教学结构,容易造成教学与实践的脱节,不利于培养学生应用所学知识解决实际问题的能力。因此,实验教学是软件工程专业本科教学的ljEcTEEpOgrCBSgFElbi4pqlRkWWLRG8jcHG0G7xE/k=一个重要环节。合理安排实验教学的比例,有助于锻炼学生的动手实践能力,提高人才的社会竞争力。我们在软件工程的教学中采用了主讲结合实验上机的方式,并增加实验上机的课时,与主讲的课时比例达到1:1,期望通过加大上机实验课的课时比例来加强提高学生的实践开发能力,加强对软件工程的思想、方法的理解,更好的树立学生以工程化的思想开发软件的价值观。
  2.4.2 PBL引入实验教学
  基于项目的学习(Project Based Learning,PBL)是在建构主义的学习理论和布鲁纳的发现学习理论的基础上提出一种新型教学模式,目前在欧美等国得到了广泛应用。具体地讲,即以学科的概念和原理为中心,以制作作品为目的,在一定时间内解决一系列相互关联着的问题的一种新型的探究性学习模式。PBL能够有效促进学生高级认知技能和问题解决策略的形成,有助于培养学生的专业技能和解决问题的能力。将PBL引入实验教学,对提高软件工程专业本科生的工程实践能力具有重要作用。
  在教学改革实践中,我们提供给学生若干个软件开发的题目,要求学生以软件工程的思想作指导按照软件开发过程的步骤系统的进行一个项目开发。
  我们将实验教学的内容分为两个阶段。前一阶段主要对开发过程中可能会用到的软件工具进行介绍,如项目管理、版本控制、设计等方面的工具的使用和介绍,为完成课程设计打下良好基础。实验教学的后一阶段让学生综合运用前面学到的软件工程的思想、方法和工具,以小组的形式完成布置的开发题目。教师还鼓励引导学生查阅相关的资料,对课题完成中遇到的问题予以指导,从而极大的调动了学生自主学习的积极性,促进了对课上所学知识的融会贯通和灵活应用。
  
  3 总结与展望
  
  我们将以上四种教学策略应用到软件工程专业本科生软件工程课程的实际教学中,取得了良好的教学效果。对学生进行访谈发现,学生普遍反映这种融合CDIO理念的教学方法非常适合他们的学习基础,案例教学很好的促进了他们对基础知识的学习,并且对以工程化的思想开发软件有了深刻的认识,基于项目和基于小组学习的实践教学的安排促进了学生的团队协作和沟通能力的提高,实际的软件开发能力和项目组织与管理的能力也得到了极大的锻炼和提高。
  本文在分析课程特点和学习者特点的基础上,提出了四种教学策略,作为软件学院本科软件工程课程教学改革的基本思路。实践证明,这些教学策略的运用达到了预期的教学效果。针对软件工程专业本科生独特的社会需求,今后将从培养团队合作的工程实践能力上进一步探索教学改革的策略和方