迭代式CDIO工程教育模式的研究与实践

2015-05-04 11:17王晓敏宋燕林
实验技术与管理 2015年5期
关键词:教学模式工程课程

王晓敏, 崔 巍, 宋燕林

(北京信息科技大学 信息管理学院, 北京 100192)

迭代式CDIO工程教育模式的研究与实践

王晓敏, 崔 巍, 宋燕林

(北京信息科技大学 信息管理学院, 北京 100192)

在应用软件开发类课程的教学过程中,如果简单采用CDIO的构思、设计、实现和运作的工程项目开发生命周期来设计教学过程,则周期长、见效慢,学生动力和兴趣不足,而采用迭代式过程与CDIO工程教育模式相结合的教学模式可以有效克服以上缺陷。具体做法是课程内容及项目任务被分解到多个相对短的CDIO迭代周期之内,项目通过滚动迭代逐步成型,教学过程由此变得更为灵活敏捷,学生的专业技能和知识能够快速地学以致用,尽早地并持续地获得可见的项目成果,从而有效提高学生的学习兴趣和学习效果。通过调查问卷进行的教学后评价显示,该方法的应用明显改善了教学效果。

CDIO; 迭代过程; 课程设计

1 研究背景概述

我国经济快速发展对技术人才的需求和高等教育人才培养之间存在严重失衡,为了解决这一问题,我国高等教育近年来一直致力于调整人才培养结构,降低学术型人才的培养热度,思路是以培养知识、能力和素质全面协调发展,面向生产、建设、管理、服务一线的应用型人才为目标定位,并构建各个层次的技术技能型人才培养体系。这一转变从近年来推广卓越工程师计划和600所本科院校向职业技术教育转型等重大高等教育改革中可见一斑。

CDIO工程教育理念是20世纪90年代末麻省理工学院、瑞典皇家工学院等多所国际知名大学联合成立跨国研究合作组织并创立的现代工程教育模式。CDIO代表构思(conceive )、设计(design)、实现( implement )和运作(operate),它以产品研发到运行的生命周期为载体,让学生以主动的、实践的、课程之间存在有机联系的方式学习工程理论和技能。具体来说,就是选择接近工程实际的涉及技术、经济、企业和社会的团队综合类项目为教学案例,结合专业核心课程的教学,使学生在CDIO的全过程中不断地在工程基础知识、个人能力、人际团队能力和工程系统能力4个方面得到全面的训练和提高[1]。CDIO理念不仅继承和发展了欧美20世纪90年代工程教育大改革的理念,更重要的是提出了系统的能力培养教学大纲,对工程教育应达到的能力目标给出全面、系统、具体的表述。全球多所院校采用CDIO工程教育理念和教学大纲,取得了良好效果。

2 问题的提出

我们在应用软件开发课程教学过程中曾尝试了2种项目驱动的教学方法,并观察了教学效果。第一种是以良好系统性的章节结构为讲授主线,其中穿插教学示范项目部分功能的技术实现,通过多个小案例强化关键的知识点。这种方法可归纳为“以知识带动项目”。第二种是以软件工程的开发生命周期为主线,严格遵照瀑布开发过程介绍教学项目的需求分析、数据库设计、界面设计、编程实现、测试和部署等知识,即单一CDIO周期的过程,强调“以项目带动知识”。

这2种方法在实际教学中都有不足之处。前者多数学生反映知识结构虽合理,但作为教学案例的项目被碎片化分散到多个章节,没有充分体现项目驱动的整体优势,也未达到教学设计的以点带面的效果,学生“只见树木不见森林”,在实践环节面对自主完成项目普遍缺乏分析设计能力,建立不了较为宏观的解决方案。后者虽然采用典型项目驱动的CDIO教学模式,但如果学生之前从未接触或尝试过一个完整软件的开发,其抽象思维能力有限,前期构思和设计阶段多数学生难以领悟,被动学习,而中期实现阶段,集中大量地讲解具体平台开发技术,容易走入满堂灌的歧路,致使部分学生陷入疲态。此外这种方式对于新知识由浅入深、循序渐进地建构存在一定劣势。

针对以上问题,需要为软件开发技术课程设计一种新的符合课程特点的CDIO教学模式,不仅能够通过合理的教学项目拉动知识,让知识服务于项目,同时又能兼顾知识的结构性,循序渐进地传授技术以推动项目顺利进行。本文介绍的迭代式CDIO工程教学模式将实际软件工程领域的迭代式开发过程与CDIO思想结合起来,有效地解决了这一难题。

3 设计思想

应用软件开发类课程以实践和理论技术并重,学校在设置课程时可能根据培养方案选择不同的开发平台或环境(如.NET、Eclipse、Android等)、开发语言(如C#、Java、VB等)和开发技术(如Windows开发技术、Web开发技术、移动开发技术等),而无论哪种选择,都可以实施迭代式CDIO教学模式。课程设计主要包括项目设计、迭代周期设计、实践环节设计。

3.1 项目设计

CDIO教学模式通过项目设计将整个课程知识体系有机地、系统地结合起来,以工作任务为载体,将课程知识整合到教学项目和实践项目中。其特点是所有需要学习和掌握的内容都围绕项目设计这个核心,并与这个核心融合在一起。一个完整的应用软件开发项目,尤其是Web应用程序,涉及的知识广泛、技术细节繁多,对项目设计有很大挑战。在应用软件开发课程中的课堂教学项目应满足以下特点:

(1) 项目目标和功能易于理解。因为课程主要目标是让学生熟练掌握一种开发平台和工具,提高开发能力,因此充当载体的项目不要完全脱离学生日常学习生活环境,尽量不要选择特定专业领域的项目,从而保证学生能较快进入角色。

(2) 项目有一定代表性和通用性。很多教师倾向于直接选择学生非常熟悉的校园类项目,比如图书馆借阅管理系统、成绩管理系统等,这类项目理解性强,但应用面较窄,适合于低年级课程采纳。高年级课程要考虑与毕业设计、实习等环节接轨,信息社会常见的电子商务、商品进销存管理软件、人力资源管理系统等类项目则更具代表性,有利于学生将教学项目积累的经验拓展或推广应用到实际工程中[2]。

(3) 难度分布合理,可由浅入深逐步推进。软件项目规模适中,数据库表4~8个为宜,软件功能和界面经过分解形成任务后,形成难度递进关系,同时保证教学内容能随着难度实现循序渐进。

鉴于以上考虑,我们在为大三信息管理与信息系统专业学生讲授ASP.NET应用程序设计时,选择“网上图书商城”作为课堂教学项目。此外为了帮助学生明晰所学内容在课程知识体系中的位置,找到完善自身知识框架的方向和途径,在项目驱动的同时,可以构造一张知识体系与项目任务之间的对照表,当学生在头脑中构建并逐步丰富这个知识框架时,能通过知识快速索引到相关案例,学生学习的方向性和主动性大大提高,课内外都能实现“做中学”、“边学边做”[3]。如果将制作知识与案例对照表作为课程大作业留给学生自行完成,则更符合知识建构的基本过程。

3.2 迭代过程设计

在迭代式软件开发过程中,整个项目开发工作被组织为一系列短小的、固定长度的小项目或工作任务,被称为一系列的迭代[4]。每一轮迭代都包括了定义、需求分析、设计、实现与测试,显而易见,企业界提出的迭代方法与CDIO思想如出一辙。采用这种方法,开发工作可以在需求被完整地确定之前启动,并在一次迭代中完成或完善系统的一部分功能。每次迭代的工作任务,既可以是新功能开发,也可以是对上一轮迭代任务的改进和完善[5]。将该方法应用到教学中,就是本文提出的迭代式CDIO教学模式。

上面提到项目分解的工作任务有难度梯队,与之配套的知识也是有序的,因此只要项目设计合理,将CDIO的项目实现部分划分为多个小的迭代周期并安排课程,教学进程也就迎刃而解。迭代次数最好与课堂授课次数一一对应[6]。为了保证项目整体性和全局观,还要设计一个项目的总体CDIO周期,使之贯穿于全课程。项目的具体实现根据功能模块划分为多次CDIO迭代,复杂模块甚至可以在1~3次CDIO迭代中完成,简化表示为:CDI{CDIO}nO,示意图见图1。

图1 迭代式CDIO示意图

以32课时为例,2节课为一次授课单元,分配方案如下:项目构思1次,项目设计3次,项目实现11次,项目部署运行1次。其中项目实现划分为11个CDIO迭代周期,每次迭代实现或完善一个功能模块,可实现的模块有6~10个。根据课时长度和学生基础不同,项目规模(功能)可以相应调整分配。

由于数据库应用开发技术的灵活性,软件功能的实现技术有很多种,即使采用相同开发平台和环境,不同开发团队也可能使用不同技术。为了提高学生的适应性,教学中可能需要介绍2种或以上的主要技术,比如.NET平台上数据库记录的访问技术多达数种。在教学中发现,如果在一次授课中为解决某个问题介绍2种或以上技术,会造成学生消化不良,而如果将不同技术放入不同的迭代周期,甚至放入另一个问题中讲解,则学生印象更为深刻。

3.3 实践环节设计

CDIO教学模式突出实践的重要性,要保证学生在“做中学”,软件开发类课程应设计课后实践环节和独立实践环节[7]。

(1) 课后实践环节。课堂虽然可以跟着做,学着做,但短期记忆在大脑中难以建构稳定的知识体系,因此需要课后实践环节来巩固和进一步消化课堂学习的知识。例如可以将每次CDIO迭代的任务原封不动或稍加修改作为上机作业布置给学生。此外,为保证所有学生都能正确流畅地推进项目,可以将上一轮迭代完成后的工程源文件打包下发,本轮课堂讲授的源代码和文件则不予提供。通过这种方式,绝大多数学生能紧跟教师节奏,并能在项目由易到难逐步走向成功的过程中深刻体会到学习的乐趣和成就感。

(2) 独立实践环节。独立实践环节的主要目的是希望学生能全面综合地运用课程知识,开发一个相对完整的中小型应用系统,锻炼项目设计能力和主动学习能力,进一步增强项目实现能力。独立实践环节的项目由学生自主完成开发,以下称为学生自主项目[8]。自主项目可以由教师布置或学生自拟。教师布置的好处是需求明确,弊端是学生兴趣不足,学生自拟则相反。折衷的办法是教师给出一个可选项目清单,学生从中挑选。与课堂教学项目一样,独立实践环节的项目同样应挑选易于理解、难度和规模适中的项目。为符合CDIO大纲对“人际交往能力:团队工作与交流”方面的要求,独立实践环节应由学生组队完成自主项目的开发,小组规模以3~5人为宜。

4 实践案例

以上迭代式CDIO教学模式已应用于我院信息管理与信息系统三年级本科生的“数据库系统高级开发”的教学中,实践和调查证明其效果明显好于前文所提到的另2种项目驱动式教学模式。“数据库系统高级开发”基于ASP.NET技术讲述了“网上图书商城”项目的构思、设计、实现和部署运行,授课学时32个,全部在实验室上课,教师边讲边做,学生听完即做。独立实践学时20个,课后实践学生自行安排时间完成并提交。独立实践环节安排在实验室,由教师进行指导完成。学生自主项目鼓励由学生自拟,但须经过教师审核和讨论,明确范围,具体有“订餐系统”、“长途客车售票系统”、“旅游网”、“自行车租赁系统”、“养老服务系统”等项目,不一而足。

4.1 项目总体CDIO周期

“网上图书商城”为客户提供一个能够通过Web网站购买图书的平台,主要使用者包括客户(买主)、订单管理员、仓库管理人员[9]。表1显示项目总体CDIO各阶段的教学设计。

4.2 项目分模块CDIO迭代周期

根据项目的设计方案,挑选部分核心且具代表性的功能模块进行了编程实现,难度逐步递进,知识也实现前后关联,迭代设计如表2所示[10]。对于每个具体模块的实现再分解为构思、设计、实现和运作4个阶段,构成一个微型CDIO周期。具体实例见表3。

表1 项目总体CDIO的教学设计

表2 分模块的CDIO迭代周期设计

表3 单个迭代周期内CDIO教学设计(以表2中的迭代4为例)

表3(续)

4.3 学生自主项目CDIO设计

学生完成自主项目的开发时,要求他们参照教学项目进行CDIO阶段计划。项目总体构思和设计阶段由小组集体讨论完成并提交相关成果,教师进行检查指导。项目实现阶段将开发任务划分到个人,每完成一个页面可集成一次,或个人任务完成后再进行一次性集成[11]。最后的运作阶段与答辩相结合,每个小组将网站部署到教师机上,打开网站演示运行各项功能,教师进行评价。

4.4 教学效果后评价

课程结束后,我们就这一教学模式设计了调查问卷,调查问卷不记名,包括10个单选题和一个开放式问答,回收有效问卷56份,男女生各占一半。图2显示了其中6个重点问题的调查结果。

图2 教学效果后评价

调查问卷数据显示,迭代式CDIO工程教学模式在“数据库系统高级开发”课程中的教学实践非常成功,调查还显示93%的学生对未来其他课程采用CDIO教学模式持积极支持态度。此外,通过关联分析,学生性别和技术基础与调查结果无明显相关,而学生对技术的个人兴趣度与效果评价表现为正相关,即对软件编程和数据库开发技术有兴趣的学生对教学改革感觉受益更大、评价更积极,反之评价消极。

5 总结与展望

本文对迭代式CDIO工程教学模式在项目设计、迭代周期设计和实践环节设计等方面给出了解决方案和教学实例,适用于应用软件开发类课程,对工程类专业的高年级技术应用类课程同样具有参考意义。由于在设计迭代周期时没有充分设计课前学生主动学习环节及考核措施,调查问卷中显示有接近半数的学生表现出对授课节奏的不太适应,这提示教师应视CDIO的“基于主动经验学习方法的教与学”为所有教学设计的出发点,即使在讲授知识为主的课程里,也不能将重点放在被动的知识传递和课后练习之上,而是要调动学生主动学习的积极性,通过布置课前任务,引发小组讨论、文献搜集、概念思考、项目探究等活动,从而保证课堂教学的效果,并提升学生的学习能力和学习习惯[12]。CDIO教学模式对教师的工程实践和教学能力提出了更高要求,增大了工作量,高校应鼓励教师到企业中挂职锻炼,或与相关企业、社会培训机构、实训基地等展开合作,促使CDIO教学模式与实际社会环境的进一步接轨融合,提高教学效果。

尚未对CDIO标准中的学习考核展开深入讨论,我们在课程实际教学中也未能根据CDIO标准在学生个人、人际交往能力,产品、过程和系统建造能力等方面制定详细可操作的考核方法和考量表[1]。“以考促学”,科学全面的考核方法和标准对学生主动学习能力、人际交往能力、职业态度等有积极促进作用,这也是开展CDIO教学模式改革中要解决的重点问题。

References)

[1] 顾佩华.CDIO大纲与标准[M].汕头:汕头大学出版社,2008.

[2] 崔巍,王晓敏,王晓波,等.数据库系统开发教程[M].北京:清华大学出版社,2009.

[3] 查建中.论“做中学”战略下的CDIO模式[J].高等工程教育研究, 2008 (3):1-6.

[4] 雅各布森, 布谢, 朗博. 统一软件开发过程[M]. 周伯生,冯学民,樊东平,译.北京:机械工业出版社, 2002.

[5] 杨明霞.以螺旋式案例实施面向对象程序设计教学的研究[J]. 计算机教育, 2010(5): 117-118.

[6] 谢东强.敏捷软件开发的双迭代模型[J].计算机应用与软件,2012(6):177-178.

[7] 郭皎,鄢沛,应宏,等. 基于CDIO的计算机专业实验教学改革[J]. 实验技术与管理,2011,28(2):155-157.

[8] 赵丽萍.基于CDIO的计算机专业项目课程体系构建[J].电脑知识与技术, 2011(17): 4144-4147.

[9] 张正柱,刘林真.案例教学法在ADO.NET课程中的应用与探讨[J]. 海峡科学,2010(3): 83-84.

[10] 麦克唐纳, 弗里曼, 兹普兹塔. ASP.NET 4高级程序设计[M].4版.博思工作室,译.北京:人民邮电出版社,2011.

[11] 中国敏捷软件开发联盟ADBOK编写组.敏捷开发知识体系[M].北京:清华大学出版社,2013.

[12] 王天宝,程卫东.基于CDIO的创新型工程人才培养模式研究与实践:成都信息工程学院的工程教育改革实践[J]. 高等工程教育研究,2010(1):30-31.

Study and practice of iterative CDIO engineering education pattern

Wang Xiaomin, Cui Wei, Song Yanlin

(School of Information Management, Beijing Information Science &Technology University, Beijing 100192,China)

According to the CDIO education pattern, the four stages of conception, design, implementation, and operation can be simply used which is similar to the waterfall model to design the teaching process in some courses such as Application Software Development. However, an executive software would not be built up in the long term process quickly, which usually makes students lose motivation and interest. A new teaching method combining iterative process and the CDIO engineering education mode can overcome those shortcomings. The approach is to divide the course contents and project tasks into shorter units and form multiple iterations. During each iteration the project can be evolved more quickly, so the teaching process becomes more agile to let students’ professional skills and knowledge be able to be applied in project as quickly as possible. Thereby the students’ learning interests and learning effects would be improved effectively. Through the teaching evaluation by questionnaires, it shows that this method has brought obvious improvement of teaching effect.

CDIO; iterative process; course design

2014- 11- 12

北京信息科技大学2011年度教学改革项目(2011JGZD05);北京信息科技大学2014年度教学改革项目(PXM2014_014224_000091);北京信息科技大学个人项目(2014KG64)

王晓敏(1970—),女,湖北罗田,硕士,副教授,研究方向为信息系统、软件工程.

E-mail:wxm@bistu.edu.cn

G642.0

A

1002-4956(2015)5- 0200- 06

猜你喜欢
教学模式工程课程
群文阅读教学模式探讨
《无机化学》课程教学改革
数字图像处理课程混合式教学改革与探索
软件设计与开发实践课程探索与实践
为什么要学习HAA课程?
子午工程
“一精三多”教学模式的探索与实践
“导航杯”实践教学模式的做法与成效
工程
工程