CDIO模式下“C语言程序设计”课程教学方法研究与改革

2020-04-09 04:42铁菊红彭辉李蕊王嘉韵
无线互联科技 2020年3期
关键词:C语言程序设计C语言教学改革

铁菊红 彭辉 李蕊 王嘉韵

摘   要:文章针对目前C语言教学中的弊端,提出了在CDIO教学理念下的“C语言程序设计”课程理论教学方法和实践教学方法改革,旨在培养学生良好的编程思维、工程能力、团队协作和交流能力,介绍了支撑教学方法改革的C语言在线代码演示和代码仿写系统。

关键词:C语言;CDIO;教学改革;代码仿写

“C语言程序设计”课程是计算机类专业学生接触的第一门计算机编程语言课,对培养学生编程思维具有关键性的作用。计算机专业类学生不仅要有良好的编程思维,还要具备出色的工程能力,以符合我国在“卓越工程师教育培养计划”提出的培养目标:培养造就一大批创新能力强、适应经济社会发展需要的高质量各类型工程技术人才[1] 。构思、设计、实现、运作(Conceive-Design-Implement-Operate,CDIO)工程教育模式[2]是近年来国际工程教育改革的最新成果,让学生以主动的、实践的、课程之间有机联系的方式学习工程。在“C语言程序设计”课程中引入CDIO工程教学模式,对理论和实践教学进行改革,培养学生编程思维的同时,让学生获得初步的工程能力,培养团队合作和交流能力,为后续的工程实践课程和编程语言课打下牢固基础。

1    目前C语言教学存在的弊端

“C语言程序设计”课程既具有很强的理论性和实践性,牵涉的概念也比较复杂,语法规范繁多。目前绝大部分C语言类教材按基本语法知识为逻辑安排教材内容,很多教师往往也是按教材的思维组织教学内容,先讲基本概念,再讲语法格式,最后举例说明,线性的教学模式无法激发学生对C语言的兴趣,更不利于促进学生思考,很难锻炼学生的逻辑思维和解决实际问题的能力。课堂演示的例题知识点往往是独立应用,例题功能之间没有相关联系。实践课程中的练习题也是功能缺乏实际联系,每个学生完成实验指导书上的题目,而且题目基本是验证性题目,这种实践教学方法导致学生会做作业,但是在工程中应用该知识解决问题时,却无法完成,不利于培养学生的实际解决问题能力、工程能力和团队协助与交流能力。

2    CDIO理念下的理论教学方法改革

2.1  CDIO理念指导理论教学方案

CDIO作为一种新的工程教育理念,在教学过程中贯彻项目开发的思路,旨在重点培养学生熟练运用专业基础知识的能力、工程分析和解决问题的能力、团队协作和交流的能力。

CDIO模式提出了具有可操作性的能力培养大纲、全面实施以及检测评测的12条标准,有利于指导教学方法改革。

依據培养大纲,在该课程理论教学中完成以下两个培养目标:(1)培养学生“C语言程序设计”基础科学知识。(2)培养学生对产品“构思—设计—实施—运行”的概念理解,具备初步工程能力以及团队协作和交流能力。

2.2  CDIO理念下的理论教学方案实施

在理论教学中,依据CDIO工程教育理念,教师将C语言所有语法知识散射到一个完整工程项目中。项目为“图书馆管理系统”,学生对该项目功能和业务流程较熟悉,教师可将精力放在对项目“构思—设计—实施—运行”的讲解上。在第一次开课时,给学生讲解项目的整体功能,让学生对该项目有整体的认识,有利于学生在后期学习中理解分解功能,否则会造成“只见树木,不见森林”的局部意识,不利于工程概念的培养。

在整个教学中,依据知识点增加项目子功能的难度和任务量,不仅能应用当前知识点解决实际问题,还能应用前期学过的知识,形成知识的密集性连接,从而牢固掌握C语言的基础知识。

项目分解中采用了模块化程序设计思想,那么在设计和实施过程中就要应用函数知识点。教师教学采用函数模块化教学方法[3],项目分解的子功能都在自定义函数中实现,每讲完一章内容,就将子函数集成起来,形成一个小项目。指针是C语言的重点和难点知识,函数模块化教学方法和指针过程化教学方法结合[4],可以将指针很好地应用在工程教学中。整个C语言学习过程中,学生滚动学习C语言中的两大难点知识:函数和指针。整个C语言学完后,学生对函数和指针概念理解透彻,并能有效地利用指针设计简洁、紧凑和高效的程序和解决实际问题。

3    CDIO理念下的实践教学方法改革

培养学生编码能力和工程能力,实践课是非常关键的,实践课为学生提供系统构思、设计、实施和运行环境。

(1)增量项目实践教学。借鉴软件开发过程模型中的增量模型开发思想[5],实践教学中,学生每学完一章内容,就要构思、设计、实施和运行“小学生数学计算练习软件”项目,该项目随着学生知识点的增加,功能不断完善。因为有函数模块化教学的支撑,学生增加功能时非常方便,主要以函数为单位增加项目代码。指导该项目时,教师为辅,学生为主。因为在理论课堂上学生对工程有较好的认识,在实施过程中教师要把项目的构思、设计和实施交给学生,不要过多讲解,主要以回答学生问题为主。在每一次项目功能增量中,学生都会对该项目进行构思、设计、实施和运行。在整个C语言知识学完后,学生会完成功能较齐全的“小学生数学计算练习软件”,而且对工程软件开发的全过程有了深度认识。

(2)小组学习模式。在CDIO教育模式下更有利于培养学生团队精神和交流表述能力。在实践教学中,将班内一个宿舍内的同学划分为学习小组(一般为6人),方便学生交流和讨论。为了对工程有全面认识,每个同学要单独完成实践课项目,学生增量开发项目时,只整合自己的程序功能模块,会导致学生合作和交流仅限于对存在问题的交流,而对企业中团队开发一个项目的合作模式体会不到,而且这种交流方式不适合社交能力较弱的同学,他们缺乏交流的积极性,难以主动和小组内的同学交流。为了解决上述问题,小组组长收集每位同学开发的一个子功能并将其整合起来,形成一个小组项目包。在每次实践课上小组每位成员讲解已开发的项目功能,教师带领全班同学进入讨论和交流阶段,引导学生对该项目存在的问题积极发言,不仅培养了学生的表述能力,还培养了学生实际的团队合作和交流能力。

4    C语言在线代码演示和代码仿写系统

4.1  在线代码演示

CDIO模式下的课堂工程教学示例,是教师根据课堂知识点从大项目分解出来的,这些例子以C文件形式存储,数量较多(分解出的示例达70多个文件),教师难以管理。为此,开发了一个在线系统,将C语言所有的知识点按树形管理,再将这些例子和知识点连接起来,教师上课时按知识点可以快速找到示例代码,并在线复制代码一份,不破坏原示例的基础上进行在线编辑、编译和运行,课堂示例演示不仅能提高上课效率,而且减少了教师管理多个源代码文件的平时工作量。教师对某个知识点下的示例,可以增加、删除和修改,在线保存示例代码,方便、快捷和安全。

4.2  在线代码仿写

据以往教学经验得知,初学C语言者,有一定比例学生上课能听懂语法知识,老师讲解的编程例子也能听懂,但课后自己编写程序时却无从下手,甚至老师课堂讲过的代码也无法重新编写出来。CDIO模式下的课堂教学例子是教师根据课堂知识点从大项目中分解出的知识点相关的子模块,学生对这些示例必须熟练掌握,自己才能增量开发项目。模仿编程对于初学编程者是一个较好的学习方法。学生课后模仿编程练习课堂示例的过程中,难免要参考教师上课演示的代码。为了复现课堂示例,并且学生能方便管理示例文件,此在线系统能够为学生提供仿写课堂代码功能。

學生登录后,按知识点能快速找到课堂示例,在示例的下方就是代码仿写编辑框,在编辑过程中,示例代码框可以“收起”或“展开”方便参考。运行时,在输入数据同样的情况下,可以对比课堂示例和自己编写代码的输出结果,方便验证代码是否写对。教师登录后,可以查询班上每位同学的代码仿写练习,及时掌握学生学习情况。

教师通过C语言在线代码演示和代码仿写系统能高效展开C语言课堂工程教学;学生通过该系统,在初学C语言时,通过模仿编写课堂工程示例,牢固掌握语法知识的同时,打开编程思维,锻炼软件开发的工程能力,为实践教学中的增量项目开发奠定基础。

5    结语

在CDIO工程教育理念的指导下,研究了“C语言程序设计”课程的理论教学方法和实践教学方法改革。实践表明,该方法能有效激发学生对C语言的编码兴趣,较好地应用C语言知识解决实际问题,培养了学生一定的软件开发工程能力、团队合作和交流能力。C语言在线代码演示和代码仿写系统能较好地支撑CDIO模式下的教学方法改革。

[参考文献]

[1]陈润,琚生根.基于CDIO理念培养网络工程“卓越工程师”[J].实验技术与管理,2016(11):189-192.

[2]彭辉,铁菊红,文立玉,等.基于CDIO的软件工程专业工程实践类课程的改革与实践[J].计算机教育,2017(5):30-33.

[3]陈高云,李蕊,王嘉昀.贯穿模块化编码的C语言教学过程[J].计算机教育,2012(12):86-89.

[4]铁菊红,彭辉.C语言指针过程化教学方法研究[J].计算机教育,2017(1):102-104.

[5]张海潘,牟永敏.软件工程导论[M].6版.北京:清华大学出版社,2013.

猜你喜欢
C语言程序设计C语言教学改革
基于Visual Studio Code的C语言程序设计实践教学探索
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
论子函数在C语言数据格式输出中的应用