曾显峰++廖晓芳
摘 要 CDIO教学理念以培养合格的工程师为目标,本文针对我院目前程序设计课程存在的现状,提出引入CDIO理念对程序设计课程进行教学改革,从课程设置、目标定位到教学方法和手段的更新,主要体现“做中学”的思想,旨在提高学生的工程实践能力。
【关键词】CDIO 程序设计 项目教学法
1 引言
CDIO 代表构思(Conceive)、设计(Design)、实施(Implement)和运行(Operate),是现代工业产品从构思研发到运行改良的生命周期全过程。其本质代表一种工程教育模式,是“做中学”和“基于项目教学”的集中概括和抽象表达。CDIO有一套设计周密、完整的大纲,包括1个远景、12条标准和三级大纲本身。CDIO工程教育的培养理念旨在将学生基础知识、个人能力、团队沟通和工程系统四个层面的能力,经过近似于真实工程环境的项目训练,从而培养出能真正符合社会需求的工程师。
程序设计类课程作为培养软件工程师的有机组成部分,在计算机相关专业中占有重要地位,是计算机相关专业的基础或重点课程,不少学校都不惜在此花大量课时和师资来培养学生的编程能力,参看我国部分高校2015年“软件工程”的人才培养方案,较多学校在专业基础课或专业必修课模块设置了《程序设计基础I、II》或《面向对象程序设计I、II》,上课学时达140学时以上,学校的人才培养方案显示他们开设了以C++/C#语言或Java语言为主线的程序设计类课程,甚至同时开设了两大主流平台的语言工具课程。可见,学校在培养人才方面不可谓不用心。尽管计算机类毕业生的工程能力相比几年前有所提高,然而软件人才的需求仍出现供求矛盾的现象,根本原因在于对学生CDIO能力的忽视,一味地注重学生的学知识、编程能力,却忽视了一个本质的问题,那就是培养工程师的根本方法是回归工程。
2 教学现状与问题
我院程序设计类课程设置以第一学期的《程序设计基础(C++/C#)》、第二学期《面向对象程序实训(C#/Java)》为主,近年在教学实施过程中,对学生工程能力的培养意识有所增强,主要表现在加强对学生软考培训及软考通过率的重视,重点培养优质学生参加比较有名的软件设计比赛等,但学生工程素质总体仍然偏低,主要表现在大部分学生虽然系统地掌握了程序设计语言基础知识,但不能独立地完成后续实践课程的小项目开发,不能与团队合作完成各软件级项目的原型开发。程序设计类课程教学仍偏重语法教学,案例设计仅为知识理解,虽简单易懂,但对学生工程能力的培养影响不足,实训项目没有从软件工程的各环节出发来进行基于问题的知识构建,项目过程管理不到位。在教学过程中,课程考核仍沿用传统理论考试和上机考试相结合的模式,没有建立一个科学的评价标准来判断学生的工程能力,往往通过毕业后用人单位的反馈和学生就业情况来评价整体教学的成败,这本就是个无法挽回错误的标准。
要改善这种教学状态,提高学生工程能力,应在教学中引入CDIO 工程教育理念,对程序设计课程体系进行改革,从课程群设置、教学形式、教学内容、教学方法和考核手段等方面着手,采用以案例教学、工程项目为主线,充实教学形式,灵活教学方法来提高学生的学习兴趣、学习主动性,让学生在“做中学”、“做中考”,从而提高学生的工程基础知识、个人能力、团队能力和工程系统能力。
3 基于CDIO理念的教学改革
3.1 更新课程体系
3.1.1 课程设置
程序设计语言工具很多,目前主要开设有基于.net平台的C++/C#和Java语言,虽然这两种工具对实际应用环境有所偏重,但都是基于面向对象环境的,共通性还是较多,不应在《程序设计基础》课程中学习一门语言,在《面向对象程序实训》又学习另外一门语言,虽然设置初衷是希望学生能熟悉两大主流工具,但是贪多嚼不烂,先把一个工具学好学扎实,最关键是学了就可以把它当做实际工具来使用,在求职时因为精通而成为成功求职的利剑。
3.1.2 课程群设置
对计算机相关专业,应在第一学期的《软件工程导论》专业引导课开始就高屋建瓴,以项目实施各环节为框架,建立起基于知识点的课程组织形式,建立起以《软件工程导论》为纲,《程序设计基础》为编程基础,《面向对象程序设计实训》为实践框架,《数据结构》为核心、《数据库系统》为重点的程序类课程群,有计划有层次地打包学习,发挥出课程群的1+1>2的效果。
3.1.3 教学目标更新
教学大纲是根据人才培养目标而制定的、指导学习实践最基本的依据,应当是慎重的、科学的,不应由某学期负责上课的教师制定和随意更改,无论哪位教师来任课都应当依据教学大纲达成相应的教学目标。程序设计类课程应分别重新制定理论教学大纲和实践教学大纲,大纲要体现CDIO工程思想,明确教学要求和结果。
3.2 完善教学方法和手段
3.2.1 教学要体现“做中学”
课程体系的改革是整体的,教学方法和手段的改革更多地体现在教师个人。 “做中学”是CDIO的核心思想,在程序设计基础部分教学中,要引入多层次的案例教学,将知识点模块化,通过案例将课程的主要内容贯穿起来形成统一的整体。案例要体现真实性、多样性和实用性,在案例讲解中应强调算法的分析、设计而不是过分强调语法细节,注重学生计算思维培养。案例的算法要体现多样化的训练,可通过限时编程的方式提高学生逻辑思维能力。
在程序设计实训部分,则以项目教学法为主,项目可分为小项目和课程设计部分的项目,在小项目教学中,将一个具体的项目拆分小模块,学生围绕项目进行讨论和设计,在老师的指导下独立完成这些模块。对课程设计项目,应有学生小组完成,明确分工,使用软件工程的“需求分析、设计、实现、测试”的阶段来完成项目功能,由老师根据综合情况给出成绩。通过有层次的项目训练,让学生在“做中学”,真正培养学生主动学习和动手能力。
3.2.2 充实教学手段
程序设计教学无论采用案例教学还是项目教学法,最关键是要培养学生的主动学习意识和能力,而传统的教学在课堂,以教师为中心,学习起来不免枯燥,学生的被动接受知识使其主动思索的空间减少,应充实教学手段提升学生的学习兴趣和主动性。比如项目讨论可采用圆桌会议的形式、限时编程的形式等多种教学手段。同时充分利用网络资源将课堂教学与课外教学结合,对程序设计类课程,开放的慕课平台已有比较成熟的资源,可鼓励学生自由补充学习。
3.3 改革考核机制
分数不代表高工程水平,程序设计沿用理论考试来评价学生的学习情况越发地被诟病,所以考核方式也应该改革。考核应该强调学习过程而不仅是结果,不仅要考核工作过程,还应采取多元的考核手段来对学生进行全方位的评价,体现“做中考”的理念,这要求在授课前要制定一套完善而细化的考核标准。比如程序设计基础部分以理论考试结合案例考试来评价学生学习情况,并降低理论考试分数的比例。程序设计实训考核则以项目是否成功运行来评价小组,再通过学生在小组中的任务来分别评价学生的实践能力等。
3.4 优化教师资源
一般院校教师理论讲授比企业工程师更系统,但项目经验较少。程序设计课可与校企合作单位合作,让企业工程师担任项目实训,强调项目过程,把握大方向,忽略知识细节,而理论教学的教师根据项目的需求知识,有侧重点地讲解知识。理论教学老师和工程师应互相了解对方的教学内容,突出主线以项目为主,理论为辅的模式,使课程间无缝衔接。
4 结束语
CDIO教学模式让学生以主动的、实践的、课程之间有机联系的方式学习,针对目前我校程序设计课程教学存在的不足,引用CDIO教学模式对课程体系进行改革,不断完善教学方法和教学手段,采用案例教学、工程项目为主线,充实教学形式,灵活教学方法来提高学生的学习兴趣、学习主动性,让学生在“做中学”、“做中考”,从而锻炼学生在软件开发方面的工程基础知识、个人能力、团队能力和工程系统能力。
参考文献
[1]Crawley,Edward(2001).The CDIO Syllabus:a Statement of Goals for Undergraduate Engineering Education,MIT CDIO Reporthttp://www.cdio.org.
[2]顾佩华.从CDIO到EIP-CDIO—汕头大学工程教育与人才培养模式探索[J].高等工程教育研究,2008(10):12-20.
[3]CDIO12条标准[EB/OL].[2010-02-25].http://www.chinacdio.cn.
[4]12CDIOStandards[EB/OL].[2010-02-20]. http://www.cdio.org/.
[5]查建中.中国工程教育改革三大战略[M].北京:北京理工大学出版社,2008:70-152.
作者简介
曾显峰(1978-),女,四川省广安市人。硕士学位。现为广东外语外贸大学南国商学院信息科学技术学院高级工程师,主要研究方向为计算机应用技术,图像处理。
作者单位
广东外语外贸大学南国商学院信息科学技术学院 510545