导航菜单

程序设计课中的CDIO教学改革

谢修娟1,史九林2,李香菊1

(1.东南大学成贤学院 计算机工程系, 江苏 南京 210088;2.南京大学 信息管理学院,江苏 南京 210093)

摘 要:为了在程序设计课程中有效地培养学生的应用及工程能力,提出基于CDIO理念的教改思路,以C#程序设计课程为载体,建立理实合一、阶梯式学—做—学的迭代教学模式并构建多元化的综合考评体系。

教育期刊网 http://www.jyqkw.com
关键词 : CDIO;C#程序设计;教学改革

基金项目:2014年江苏高校哲学社会科学研究基金指导项目“工程思维导向的独立学院软件工程课程群实践教学模式探索”(2014SJD038);2014年东南大学成贤学院教学研究与改革项目“基于CDIO理念的《C#程序设计》教学模式探索与实践”(院教学[2014]08号)。

第一作者简介:谢修娟,女,讲师,研究方向为软件工程,xiujuan__xie@126.com。

0 引 言

“中国拥有世界上最大规模的工程教育体系和最大的工程人才需求市场,也拥有非常丰富的工科生源,这是中国工程教育的优势”[1] 。然而,理论与实践脱节是我国高等工程教育中普遍存在和亟待解决的一个瓶颈问题,进行工程教育模式的理论研究和实践探索具有重要意义。

CDIO(conceive—design—implement—operate)工程教育模式是由美国麻省理工学院、瑞典皇家工学院等4所大学历时4年探索研究建立的现代工程教育模式,其核心理念是围绕生产周期中工程产品的构思、设计、实现、运行等各个阶段,以过程为载体,培养学生的工程思维能力、个人能力、团队协作能力以及工程系统能力[2] 。

自2005年起,我国已陆续有50多所院校开始学习、研讨和实践基于CDIO理论的工程教育模式,取得明显的效果;既重视技能的培养,又关注职业素质提高,尤其注重学生项目开发、设计及建造能力、创新能力、团队协作与领导能力的培养。目前,计算机程序设计类课程教学依然存在以下问题:①理论与实践脱节,实践课时不到总课时的1/4乃至更少,没有安排应用型实践;②实验实践与应用实践脱节,实验多以验证性为主,缺少探索性,脱离实际应用,每个实验基本是针对不同知识点孤立进行,缺乏关联性、真实性、综合性和实战性;③教师引导与学生主动学习脱节,以“教”为主,以“学”为辅,“教”是“满堂灌”“填鸭式”“唯教材”, “学”是“督促式”“压迫式”,学生缺乏自主学习的原动力、激励措施和自由空间;④知识教育与素质教育脱节,学校只注重或只满足于完成知识教育,把对学生的评估重心放在理论知识考核上,忽视对学生沟通能力、团队合作能力、创新能力等综合技能的考核[3-4] 。

1 基于CDIO理念的C#程序设计课程教学改革思路

C#程序设计是计算机专业的一门程序设计基础课,集知识与技能为一体,有很强的实践性和应用性。课程既要求学生掌握程序设计语言的理论知识,又要求学生具备实际应用能力和操作技能。借鉴CDIO理论在背景、课程开发、设计经验及工作环境、教学/学习的新方法、教师发展、评估/评价6方面提出的12条标准[5],尤其是第3条、第7条、第8条和第11条,我们将C#程序设计课程教学改革思路与其进行匹配。

1)标准3:一体化课程设置。

一体化课程强调不同课程之间的关联性。C#程序设计是专业学科中的桥梁课程,该课程的教学设计需要与先修课程及后继课程有机地联系起来,变各门课程间的“松耦合”为“强耦合”,保证专业知识链的连贯性。例如,东南大学成贤学院计算机工程系的教学计划就为C#程序设计课程及关联课程建立自顶向下的以软件开发为主线的3层课程群结构:第1层是基础课程(计算机导论、C++、数据结构),是当前课程的先修课程,使学生具备基础的结构化编程及算法设计能力;第2层为专业主干课程(C#程序设计、软件工程、数据库原理及应用),包括当前课程及平行课程,目标是培养学生面向对象的高级编程能力、数据库设计能力及系统工程化思想;第3层为专业方向课程(项目管理、软件体系结构、WebService),是当前课程的后继课程,培养学生系统地利用现代项目管理知识进行项目开发、系统架构、网站开发等技能。

2)标准7和8:综合性学习经验、主动学习。

综合性学习经验不仅是学科知识的学习,还应包括个人能力、人际能力、软件产品的构造能力等。教师应通过改进教学方式,激发学生主动学习的积极性。第一,尝试多元化教育,哈佛大学教授加德纳提出“多元智能理论”[6]:每个学生个体的智能分布不尽相同,教师应善于发现并挖掘每个学生的强项,针对他的兴趣、特长在掌握课程基础内容的前提下安排个性化的作业和实践环节,合理地分配角色,实现因材施教;第二,教学过程中坚持以学生为主体,以教师导、评为主,教师将学习目标告知学生,给学生留有足够的学、思、练时间;第三,倡导启发式、项目驱动式教学,教会学生获得知识的途径和方法;第四,重视非智力因素的作用,帮助学生树立正确的人生价值观,与学生建立良好的师生情感,正面促进学生智力水平的发挥,提高教学质量。

3)标准11:学生考核。

改变传统只围绕一本教材知识的一张试卷定成绩的做法,采用综合测评方式评价学习成果。综合评价体系包括基础知识测评、技能测评、应用能力测评、创新创造能力测评、职业能力测评等方面。知识测评着重基础和思维,不出难题、怪题、偏题、边角题,宜多采用开卷考试,允许学生查书或参考资料,不规定标准答案,允许学生正常理解和发挥。知识考试成绩比例不超过30%;技能、应用、创新、职业能力测评成绩比例应占50%以上,以任务完成情况和实验报告为考核形式。

2 C#程序设计课程教学改革方案(试验版)

鉴于目前诸多高校程序设计课程教学存在理论与实践脱节、实验实践与应用实践脱节等问题,教师可将理论知识融入实践中,实现“基于项目的学习”“学中做、做中学”。按照先基础操作能力、后工程能力,再团队交际能力培养的思路,C#程序设计课程的教学分为基础能力培养、综合型系统能力训练和开放型项目拓展3个阶段,环环相扣,递推式前进,前一阶段是后一阶段的基础,整个过程是一个“学—做—学—做—学......”循环往复的过程,最后通过科学、多元的综合考评体系,对学生每一阶段的学习情况进行考核。

1)基础能力培养。

该阶段主要训练代码编辑、程序调试、开发工具使用等基本操作能力,采用任务驱动式机房教学,将理论授课与传统的验证型实验融为一体,讲练交替,每次课堂教学按照“提出任务要求—介绍相关知识点—使用知识点解决问题—举一反三”的方式进行。C#程序设计课程的知识点及对应任务案例的初步设计见表1。

任务是学生能够直观感受到的一个开发“情景”。教师通过任务要求引出当堂课程的知识点,讲解这些理论知识并演示如何运用知识点实现任务。最后的“举一反三”环节是紧扣当前知识点设计的简单验证型实验,让学生运用前面的方法完成类似的任务,是一次知识的巩固过程。任务驱动式教学方式强调学生的主体地位,更能激发学生的学习兴趣和热情。

2)综合型系统能力训练。

阶段二是阶段一的一次提升,对本课程的所有知识点分模块内聚,每个模块选用一个具有一定实用意义的小型开发项目,将知识点融入到项目的各个任务/子任务中,同时有机结合课程群里关联课程的内容。教师指导学生按照软件工程生命周期的思想开展项目。每个项目按C—D—I—O分4步进行,以综合项目“基于控制台的单词竞猜游戏”为例(涵盖表1中K1—K18知识点),第1步(构思)通过试玩类似游戏、头脑风暴等方式,构思本游戏的功能并编写需求说明书;第2步(设计)要求学生作出游戏的总体及详细设计方案,包括游戏界面说明,实体类、业务类、数据访问类的设计等,并编写设计说明书;第3步(实现)按照设计说明书的要求编写代码;第4步(运行)对实现好的游戏进行测试,及时改正测试过程中的错误,同时鼓励学生对游戏再添加一些个性化的创新设计,即完善游戏,最后完成程序部署。

3)开放型项目拓展。

本阶段是教学环节的又一次升华,集C#知识应用、工程思维能力、团队协作能力、个人职业技能于一体。该阶段按照“组建团队—选题—分工合作—项目验收”的过程进行,由学生自行组建团队,一般4~6人为一组,教师外部协调,注意好差生的平衡、男女生搭配等。开放型项目的题目应由教师精心挑选,或者由学生提供题目并经过教师审核,保证题目具有一定的科学性和可行性;选好题目后开始角色分工,每组确定一名组长充当项目经理,其他组员根据兴趣和特长分配相应角色。项目实施过程中,教师可借助分数甚至虚拟货币形式,激发所有组员的集体荣誉感,充分调动组员的最大潜能,以出色地完成各自的分工任务;最后是项目的验收,每组需提交实验报告、系统需求及设计说明书、软件系统,实验报告的内容至少包括实验目的、实验原理及思路、实验过程介绍、系统运行截图、实验结果分析、团队分工说明6方面。受课时限制,本阶段任务大部分在课下进行,预留2节课上时间组织“开放型项目答辩汇报会”。汇报会由教师主持,以组为单位依次进行答辩汇报,通过该环节促进各小组之间分享成果和心得体会,同时锻炼学生的口头表达能力和报告能力。

4)建立科学、多元的考核评价体系。

另外,教师还需结合CDIO评价标准,建立多样化的考核形式,对学生进行多方位的综合客观评价,采用过程式评价与结果式评价相结合的方式,既关注学习效果,又关注学习过程。新考评体系从学生的专业知识、个人自身能力、团队协作能力、系统工程4方面,通过平时作业、上课情况、实验及实践项目、期末笔试4种形式进行综合评价。

平时作业的考核占10%,具体考核内容为理论知识作业以及程序设计作业。理论知识作业要求清晰工整、独立完成,程序设计作业要求能得到正确运行结果、代码规范;上课情况的考核占10%,具体考核内容为出勤率、课堂表现和专题知识演讲,出勤方面要求没有无故缺课,课堂表现要求认真听课并积极发言、学习主动性高、对于专题知识演讲积极参与、准备充分、表述清楚;实验及实践项目的考核占50%,具体考核内容为验证型实验、综合性开发项目和开发型项目,验证型实验要求程序正确符合要求、实验报告文档规范,综合性开发项目要求过程规范、各阶段文档齐全且正确、程序正确符合要求,开发型项目要求成员职责分工明确、成员间沟通良好、有团队意识、集体荣誉感强、自主钻研克服难题、具备一定的工程思维、具有创新思想;期末笔试的考核占30%,主要考查C#基础知识,要求掌握基础的程序设计知识、会分析程序、在规定时间内编写程序。

3 结 语

东南大学成贤学院对2012级计算机系本科生的C#程序设计课程进行CDIO教学改革试点,用新的考评体系测评学生的学习成绩,与以往学生相比有以下提高:第一,学生的学习主动性明显提高,课堂气氛更为活跃,学生参与度高;第二,学生的程序设计能力增强,90%的学生能独立完成课程实验,还涌现出一批优秀学生参与各种程序设计大赛并取得优异成绩;第三,创新能力、团队意识有所提高,学生学有所思,能提出一些新想法,课余自组团队,积极申报创新项目,2012级学生创新项目立项数创历史新高。总体来说,新教学模式更有助于应用型人才的培养,与企业对软件开发人才的需求相适应。

教育期刊网 http://www.jyqkw.com
参考文献:

[1] 中国教育报. 2011北京工程教育区域性国际会议召开[EB/OL]. (2011-05-12)[2014-12-22]. http://paper.jyb.cn/zgjyb/html/2011-05/12/content_46334.htm.

[2] 王洪发, 于峰. 基于CDIO理念的WEB程序设计教学改革探索[C]//第三届教学管理与课程建设学术会议论文集. 株洲: 湖南工业大学出版社, 2012: 35-38.

[3] 姜大志, 孙浩军. 基于CDIO的主动式项目驱动学习方法研究: 以Java类课程教学改革为例[J]. 高等工程教育研究, 2012(4): 159-164.

[4] 曹莹莹, 朱立才, 蔡长安. 基于CDIO的程序设计类课程案例的设计与实施[J]. 计算机教育, 2011(6): 56-58.

[5] Worldwide CDIO Initiative Standards[EB/OL]. [2014-12-22]. http://www.cdio.org/implementing- cdio-your-institution/standards.

[6] 何敏. 浅析多元智能理论视阙下教学观念的转变[J]. 教育探索, 2011(3): 30-31.

(编辑:宋文婷)

下载文本