基于CDIO的程序设计基础课程教学改革
2015-05-15柴本成刘玉英
柴本成 刘玉英
摘要:程序设计基础课程一直被认为是一门较难教学的课程。本文应用了CDIO的任务驱动教学模式,设计适合程序设计教学的任务,将程序设计中的知识点融合在任务中,并采用在线评判的实践教学模式,激发了学生学习程序设计的兴趣和积极性,从而取得了良好的教学效果。
关键词:程序设计基础;CDIO;任务驱动
中图分类号:TP312 文献标识码:A 论文编号:1674-2117(2015)08-0101-03
程序设计基础课程是浙江万里学院计算机科学与技术、软件工程、信息工程等相关专业的一门重要的基础课。通过本课程的学习,培养学生使用C语言编写计算机高级语言程序的能力,掌握结构化程序设计的方法,培养学生程序设计的思想、实际编程和调试程序的能力。[1][2]程序设计课程一直被认为是一门较难教学的课程,学生觉得难学,教师觉得难教。近年来我校采用了基于CDIO的理念对程序设计课程进行教学改革,强调实践和兴趣,使该课程的教学效果有了一定提升。
● IPR-CDIO教育理念
CDIO(Conceive、Design、Implement、Operate,即构思、设计、实现、运行)是国外高等工科教育的一种创新模式。[3]它以产品从研发到运行的生命周期为载体,让学生以主动的、实践的、课程之间存在有机联系的方式学习工程。CDIO因其具有与社会需要一致性、国际先进性、实践可操作性、全面系统性和普遍适应性等特点而被国际上多所院校所采纳,其先进的教育理念已被中国高等工程教育界所接受,有近40所高校正在中国化试点,浙江万里学院是其中之一。我们学习CDIO教育理念,结合多年的改革实践,创新地提出了IPR(Interest、Perseverance、Responsibility,即兴趣、毅力、责任)-CDIO教育思路,即将学生的探索热情与兴趣、持之以恒的精神和社会责任感的培养,融入到不同级别的项目研发过程。通过项目构思和设计,培养学生的创新意识和创新思维,通过项目的实现和测试运行,培养学生的专业技能,同时借助项目团队的组织形式、角色化任务分工,激发学生的参与兴趣,锻炼其团队合作和沟通交流能力,培养其责任感。IPR-CDIO教育宗旨与国家教育方针一致,与“十二五”高等教育重点工作、卓越人才培养计划等是完全一致的。
课程是人才培养的基本单元,IPR-CDIO教育理念必须通过各门课程来实施,因此课程设计非常关键。根据课程地位和性质整合知识点,设计出能集培养学生知识学习、技能训练、素质成长于一体的小项目,设计为完成项目、训练IPR素质而采用的教学方法,并使课程知识内容、项目实施、教学方法、教材选择有机融合,形成一体化的课程教学体系。程序设计基础课程就是基于IPR-CDIO理念进行教学目标设计、教学内容设计和教学方法设计。
● 教学目标设计
程序设计基础课程在我校计算机专业和软件工程专业一年级的两个学期都要开设。由于多数学生数学和计算机专业知识都比较薄弱,在第一学期的程序设计基础学习中还能跟得上,但第二学期C语言程序设计的进阶内容,如字符串处理、指针、链表等内容学生学得就比较吃力。这就需要在进行教学设计时,目标要体现重难点,要有针对性。教学目标设计得好,不但可以激发学生的学习热情,而且对后续的实习、设计或就业都能产生积极的作用。
● 教学内容改革
基于以上教学目标的要求,我们在教学内容上从两条线上进行设计,一是基本知识操作路线,二是CDIO工程项目实施路线。基本知识操作路线设计,其程序设计基础的知识点比较繁杂,结合教学对象,我们抽取了基本的核心内容,包括一维数组的定义和初始化、字符串的定义、常用字符串函数、函数的定义和调用、函数的参数传递、指针的定义和初始化、指针作为函数形参、结构体的定义和初始化、文件的定义和初始化、文件的读和写,等等。对于比较复杂的内容,如指向指针的指针、链表等将其内容进行弱化,作为自主探索内容。理论教学主线很清晰,以程序设计为核心,为后续课程奠定好基础。实验教学按照CDIO工程教育理念,将相关知识点分解为多个子任务循序渐进地实施。
1.知识内容优化
经过多年的改革实践,我们对程序设计基础理论知识的教学模式以及教学课时都作了相应调整,由原来的纯理论教学变为现在的理论和讨论相结合的教学。
2.实验项目设计
根据课程教学初步设有10个实验项目,部分实验名称和结果要求如表1所示。每个实验的实验环节都包括实验目的、实验内容、相关函数、实验结果和实验总结。
3.小组研讨项目设计
研讨项目以小组为单位, 每4~5人一小组,选举一名组长,由组长进行组内分工,并负责考勤、合作学习的组织及管理。本课程设计了两个一级讨论题目:
①数组讨论:一维数组、二维数组和字符数组的应用,什么是数组越界?如何防止数组越界?要求每个小组通过实例分析,至少完成5个程序。
②函数讨论:通过编写由函数构成的C语言程序,分析函数调用过程中的参数传递,讨论实参和形参的区别。数组作为函数与变量作为函数的区别、要求每个小组通过实例分析,至少完成5个程序。
③指针讨论:地址和指针的关系,给出一些实例要求用指针实现并与数组运用进行比较,利用指针处理字符串。要求每个小组通过实例分析,至少完成5个程序。
以实现目标为主线,以基本知识操作技能递进学习、软件设计综合能力提升培养为两翼,将知识学习、项目训练、能力培养融为一体。项目设计是IPR-CDIO课程教学的核心,针对不同性质和级别的课程,项目内涵不一样,前沿领域的研究、核心算法的分析与实现、模拟小项目实施、综合课程知识的作品等,均可成为项目;课程级项目也要有研究的内涵,具有启发引导的目的和意义,而且要大小适中,太大了难以完成,会挫伤学生学习的兴趣;太小了又起不到训练的作用。科学合理的项目设计一定是经过课程组精心研究、多轮实践而逐渐形成的。
4.教学方法设计
IPR-CDIO强调以兴趣为先,社会责任与工程能力训练为本。教学项目设计是激发兴趣的根本,教学方法是激发兴趣的手段。CDIO倡导“做中学”教学法,目的是调动学生学习的主动性、积极性和创新性。美国著名哲学家、教育学家和心理学家杜威指出:“从做中学是比从听中学更好的学习方法。”“学与做相结合的教育将会取代传授他人学问的被动的教育。”CDIO项目设计的目的就是将学生分成小组置于“做项目”的情境中,为了完成课程学习任务,他们必须去做,去学习探索,去讨论解决问题,在坚持完成整个项目生命周期的过程中,达到项目实施能力和IPR素养的锻炼与提高。
在第一次课堂教学中教师要做好导学工作,要讲述课程教学目标、布置项目任务、公布评价指标、设计学生分组等环节,充分展示课程学习蓝图,激发学生想“做”的愿望和兴趣,抓住兴奋点。该课程在项目实施过程中,设有几次大讨论:文献综述、需求分析、方案设计、作品预演、结果汇报等,使所有学生都有展示、表达的机会,特别是在最后的作品汇报中,完全模拟毕业设计答辩过程,全体课程组教师和部分学生代表作为评委,目的是锻炼学生对问题的描述水平、口头表达及应变能力。
CDIO把“不求人人成功,但求人人进步”作为教学所追求的一种境界,同时也将之作为教学评价的目标和尺度。以各个小组在达成目标过程中的表现与效果作为评价与奖励的标准,这种机制可以把个人之间的竞争转化为小组之间的竞争,从而促使小组内部的合作,增强成员的责任感。
5.教学评价设计
程序设计基础课程设计了如表2所示的多元评价指标,即评价内容、主体及方法都是多元化的。从表中可看出项目合作过程的成绩占总成绩的50%,这能促进学生增强团队协作精神和集体荣誉意识。
这种多元评价方式,可以有效杜绝部分学生靠投机取巧获取高分的现象,有利于促进学生自觉地参与小组项目合作过程,脚踏实地完成自己的任务,有利于增强学生的自信心和小组集体荣誉感,促进学生反思不足、认识差距,不断进步与发展。
教师(或工程师)在课程项目实施过程中,主要起引导或指导作用。针对项目实现中涉及的数学知识、编程技巧、艺术修养等,教师应先鼓励学生用自主学习、小组讨论,或与相关专业同学协作等方式去解决问题,通过做中学、在讨论中成长的教学方法,锻炼学生自主解决问题的能力,最后教师要给予评价、总结与后续提升的引导,促进学生向更高的目标迈进。
● 结语
综上所述,教学内容、教学方法与教学评价的改革,是根据教学实践过程中学生存在的问题提出的。以上改革已经在程序设计课程教学实践中运用,并取得了不错的教学效果。当然,面对不同的学生在使用与设计某种教学方法时,还需要学生的配合才行,也就是说教的方法与学的方法要有机统一。
参考文献:
[1]刘玉英.C语言程序设计——案例驱动教程[M].北京:清华大学出版社,2011.
[2]刘玉英.C程序设计实验实践教程[M].北京:清华大学出版社,2013.
[3]查建中.论“做中学”战略下的CDIO模式[J].高等工程教育研究,2008(3):2.
基金项目:宁波市特色专业——计算机科学与技术。