高校计算机专业《C语言程序设计》CDIO模式教学改革实践研究

摘要:目前,《C语言程序设计》课程教学中存在着理论与实践脱节、学生综合能力与市场需求脱节的矛盾。在CDIO 理论指导下,主张实施以项目教学法为主、多种教学方法并行的教学模式,并论述了该教学模式的实施过程及应注意的问题。实践证明,该教学模式符合高校应用型创新人才的培养目标,紧跟IT界职位要求,符合市场需要,获得了较高的学生满意度。

关键词关键词:C语言程序设计;CDIO模式;教学改革;项目教学

中图分类号:G433文献标识码:A文章编号文章编号:16727800(2014)005018702

作者简介作者简介:邵兰洁(1973-),女,燕京理工学院信息科学与技术学院副教授,研究方向为数据挖掘、网络安全;马睿(1973-),女,燕京理工学院信息科学与技术学院讲师,研究方向为软件工程。0引言

《C语言程序设计》是高校计算机专业的一门专业基础课,对该专业后续课程(如数据结构、C++、Java、操作系统)的学习起着理论和实践铺垫作用。C语言作为一门非常优秀的程序设计语言,在当今软件业界使用广泛。该课程有着服务专业和服务市场的双重作用。针对目前《C语言程序设计》课程教学中存在的理论与实践脱节、学生综合能力与市场需求脱节的问题,尝试在CDIO模式指导下进行课程教学改革,按业界岗位要求构建课程体系结构,以技术为核心,以能力为本位,注重学生实践技能的培养,获得了良好的教学效果,学生满意度较高。

1CDIO模式教学具体实施方法

CDIO代表构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate),对应现代工业产品从构思研发到运行乃至终结废弃的全过程。CDIO 模式教学就是以此全过程为载体培养学生的工程基础知识、个人能力、团队合作能力和工程系统能力4个层面的能力。在CDIO工程教学理念指导下,《C语言程序设计》课程尝试采用项目教学法为主,多种教学方法并行的教学模式。

1.1项目教学法

项目教学法的特点:以项目为主线,以教师为主导,以学生为主体,以培养应用型创新人才为目标。强调“学中做,做中学”。

《C语言程序设计》课程的基本教学内容包括C语言基础(数据类型和表达式)、C程序的3种基本结构(顺序、选择、循环)、一维数组、二维数组、字符数组和字符串、函数、指针、结构体、文件、链表,它们之间的关系可以形象地用一个金字塔表示,如图1所示。金字塔底层的知识点为上层的知识点提供铺垫,起着基础作用。在这10个知识点中,C程序的3种基本结构、函数、指针为3大重要知识点,其中“函数”这个知识点贯穿整个教学过程。因为函数是体现C语言作为一种结构化程序设计语言的关键所在。对于这10个知识点的教学,主要采用项目教学法,以项目为主线,将对各知识点的教学融合在项目中。所有学生以宿舍为单位分成项目组,每组完成一个小型信息管理系统的开发,组员人数为4或6人。之所以以宿舍为单位分组,主要是考虑项目组成员课下交流方便。学生项目组的题目可以从教师指定的题目中选择,也可以自选题目。

为了更好地指导学生进行项目开发,教学用项目选择学生比较熟悉的“学生成绩管理系统”。学生对知识点的学习是一个渐进的过程,所以对“学生成绩管理系统”的开发被分为4个版本:1.0版、2.0版、3.0版和4.0版。将对C语言基础、简单C函数和C程序的3种基本结构这3个知识点的教学融入“学生成绩管理系统1.0版”的开发中,该版本的系统只处理几个学生成绩,实现简单的成绩输入/输出,求总成绩、平均成绩、最高分、最低分等,属于C语言初级应用;将对一维数组、二维数组、字符数组和字符串、指针、复杂C函数的教学融入“学生成绩管理系统2.0版”的开发中,该版本的系统运用二维数组实现多学生多门成绩的批量处理,包括成绩的批量录入、浏览、增加、删除、修改、查找、排序、统计等,属于C语言中级应用;将对结构体、结构体数组、文件的教学(包括函数教学)融入“学生成绩管理系统3.0版”的开发中,该版本的系统运用结构体数组实现多学生多种信息的批量处理(包括学号、姓名、专业、成绩等);将对链表的教学(当然也包括函数教学)融入“学生成绩管理系统4.0版”的开发中,该版本的系统要求处理的学生信息和3.0版一样,只是采用的数据存储结构不同,使用的是链表,目的是让学生初步体验链表操作。后两个版本属于C语言高级应用。随着项目开发版本的升级,学生对《C语言程序设计》知识的学习也越来越深入。

图1《C语言程序设计》知识点关系

1.2辅助教学法

为了保证项目教学的有效展开,同时采用翻转课堂教学法作为项目教学法的辅助手段。对于项目开发所使用到的C语言知识,由学生在课下自主完成(学生课下看书、看视频、完成作业、做项目),课上讲重点,解决学生做项目过程中遇到的问题,并进行项目交流讨论。课上没有解决的问题,课下通过网络继续讨论。目前常用的网络讨论方式为Email邮箱、QQ、CSDN博客。教师鼓励学生把自己的学习情况和想讨论的问题写进自己的博客,这不仅方便教师随时跟踪了解学生的学习情况,而且扩大了参与问题讨论的人员范围。充分发挥网络资源的作用,可更好地为学生学习提供服务。

1.3教学中应注意的问题

1.3.1C语言语法学习

在学生刚开始接触一个新知识点时,可以淡化新知识点的语法细节,只要求掌握基本语法,等学生熟悉该知识点后,再进行细化。避免一开始就让学生陷入繁琐的语法细节中,造成一些不必要的麻烦,打击学生的学习积极性。

学生除成立项目小组外,还可成立学习小组,学习小组和项目小组不是同一组人员。学习小组不仅可以在一定程度上弥补项目小组的分组缺陷,而且扩大了学生之间学习和交流的范围。

1.3.2学生项目交流

学生完成一个项目后,教师要选取3、4个有代表性的作品安排课堂展示,进行项目的集体交流讨论,在此环节中教师点评起关键性作用。教师点评每件作品的特点,指出作品中值得大家学习和借鉴的地方及存在的问题,引导学生学习别人的长处来改进和提高自己的设计,使学生的能力在点评中得到提高。教师点评的过程也就成为了一个很好的学生学习、提高的过程。

1.3.3教学实践环节

在课程教学活动进行过程中,学生实践环节采用“学校机房+校内实训基地+校外实训基地”相结合的形式。校内实训基地,模拟软件企业项目开发的实际工作流程。选择合适的时机组织学生到校内实训基地进行实践教学,让其体验软件企业项目开发的工作流程,了解相应岗位所需的基本技能与知识,可激发学生的学习兴趣,努力提高其专业技能;组织学生到校外实训基地参观学习,可让学生了解软件企业项目开发的真实工作环境、工作流程和规范,开阔学生视野,培养学生良好的职业道德。

对于优秀学生,鼓励其参加全国软件设计大赛、ACM程序设计大赛等竞赛活动,获奖学生可获得学分奖励,该学分可抵扣相应的课程学分。

1.3.4课程考核

对于课程考核,分为形成性考核和终结性考核两类。从教学过程的各个环节对学生进行全方位考核,包括学生的出勤、课题表现、作业、考试、项目完成情况及完成质量等。具体课程考核细则如表1所示。

2教学效果

通过项目教学,让学生在项目实践过程中理解和掌握软件开发基本知识和技能的同时,培养了学生的自主学习能力、逻辑思维能力、创新能力和团队合作能力,提高了学生的实践技能。

学生实践技能的提高具体表现在以下几方面:①掌握C语言各重要知识点,初步具备程序员所必须具备的良好编程习惯和编程风格;②根据已学的C语言知识,能够对现有系统进行改进和完善;③能够综合运用所学C语言知识进行具体问题的编程实现;④熟悉面向过程的结构化程序设计方法,初步培养起软件开发的“工程”意识;⑤掌握程序调试的一般技术,意识到程序测试的重要性。

推荐访问:教学改革 计算机专业 实践 模式 高校