基于CDIO模式的案例教学在C语言程序设计中的应用
作者:吴美红 徐金宝
来源:《电脑知识与技术》2013年第11期
摘要:C语言是一门重要的基础课。该文结合C语言程序设计的教学实践,提出了在CDIO模式下,引入一个连贯性的案例贯穿整个知识点的教学方式。该教学方式取得了良好的教学效果,受到学生的普遍欢迎。 关键词:C语言; CDIO;案例教学
中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2013)11-2632-02
C语言是程序设计中一种用途非常广泛的计算机语言,既可用来写系统软件,也可用来写应用软件。C语言也是理想的结构化语言,且描述能力强,适于教学,操作系统课程,多结合UNIX讲解,而UNIX与C不可分,因此,C语言已经成为被广泛使用的教学语言[1]。 CDIO是由麻省理工学院和和几所瑞典大学在瓦伦堡基金会的资助下,经过4年的跨国研究和探索后提出的一个工程教育理念,并成立了国际CDIO工程教育合作组织, 创立了CDIO工程教育理念和人才培养模式, CDIO代表构思(conceive)、设计(design)、实施(implement)、运行(operate)。它让学生以工程的理论、技术和经验通过项目设计将整个课程体系有机而系统地结合起来学习课程,CDIO的核心理念是“做中学”和“基于项目教育和学习”,将掌握知识、能力培养、提高素质紧密结合,将理论讲授与案例分析、问题讨论相结合.将任务驱动与自主研究、协作交流相结合,极大地激发了学生的学习兴趣,较好的提高教学质量[2]。南京工程学院是国家“卓越工程师教育培养计划”首批试点高校和国家“CDIO工程教育模式改革研究与实践”试点高校之一,如何在CDIO模式下,更好的开展本校C程序设计语言的案例教学,是本文要讨论的问题。 1 C程序设计教学与学习中存在的问题
一直以来,C语言课程是大学计算机及非计算机专业开设的一门重要的基础课,也是大多数学生学习的第一门程序设计类课程。在南京工程学院,所有的学生都要学一门程序设计语言,大部分学的是C程序设计,然而,当前C语言课程教学中,其教学效果并不理想。有的学生反应上课完全能听懂,但是自己上机写程序却有困难、没有思路、无从下手的感觉,甚至有的学生在课程上到循环时,就听不懂,再继续往后,就跟听“天书”一样;有的学生觉得C语言难学,有的学生没有任何学习兴趣。对于C语言课程在教学与学习中存在的问题,主要表现在以下4点:1) 基础很重要,有少部分学生,从一开始基础的语法及程序设计就没有学好,导致后续的学习无法继续。2) 教学中,大多按照语法知识的顺序讲解,采用的案例主要针对
龙源期刊网 http://www.qikan.com.cn
语法知识点的学习,各个知识点之间缺少全面的、一致性的案例应用,对于学生而言容易感觉知识点多、语法复杂。3) 在案例内容的选择上多以数学问题为主、脱离实际,学生学习起来兴趣不大,编程能力不强。4) 学生在上课中基本上是被动接受,参与性不强,师生之间的互动性较少,听课中很容易走神,教学与学习缺少互相渗透溶合的过程。 2 CDIO模式下案例教学在C程序设计中的实现
案例教学是在教师的指导下,以案例为教材,运用多种方式启发学生独立思考,对案例提供的客观事实和问题进行分析、研究,作出判断和决策的一种理论联系实际的教学方法。 在CDIO模式下的C程序设计的案例教学是指在教师的精心设计和指导下,根据教学目的、教学内容和学生实际情况、要求运用典型案例进行深入分析,以提高教学效果的一种教学方法。一个好的案例,是以实际生活中会出现的事实为基础的课堂讨论,在刚开始第一次课的时候,应该让学生对程序设计有一个直观的认识,以激发学生学习的兴趣,可以举数学上的的、用大脑算容易出错费时的例子,如找出一个较大整数的所有因子,由此给学生以直观的程序设计的认识。教学案例描述的是教学实践。C本身具有内容多、难度大、不易掌握等特点,抽象的基础理论知识只能告诉学生最基本的功能和使用方法,还需要学生知道如何灵活运用到编程实践中。所以案例在C程序设计语言中就显得十分重要。而案例教学的好坏、质量的高低取决于案例选取是否恰当,那么如何选取好的案例呢?
在管理学、经济类、法学等课程的案例教学中,主要通过案例让学生进行讨论,分析,然后通过教师的引导与总结,从而达到教学目的。但面对没有程序设计语言基础的大学一年级学生则不能采用类似的方法进行案例教学,而应该是教师主导内容,引导学生思考,互动解决问题。教学案例构成课堂教学的基础,选择一个适当的教学案例,就等于案例教学成功了一多半。一个好的教学案例必须符合以下几点:第一,符合教学目的、有利于完成教学计划。第二,要有确切的知识点。第三,知识的连贯性。第四,有一定趣味性。
以我们所使用的教材《C语言程序设计基础》为例,可以以一个教学案例贯穿整个的知识点,在第2章基础知识及顺序结构中有一个例题:编一程序,完成如下功能,从键盘上输入一个学生的5门课程的成绩,计算出总成绩和平均成绩[3]。这个例题可以覆盖变量定义、输入输出、运算符、表达式等知识点。在讲分支语句的时候仍然可以使用这个例子,如果输入的成绩是个负数,要求输出一个输入成绩错误的信息,由此引出分支的概念,在此基础上再详细讲解。在讲到循环时候,仍然还是以这个程序为例,只是可以把5门课程改成10门课程甚至更多门课程,此时变量也要定义10个,输入语句要重复10次,累加也要重复10次,由此引出循环的概念及编程,只需要定义一个变量存放成绩即可。在继续到数组时候还可以是这个例子,只是除计算出总成绩和平均成绩外,还再加上统计出大于平均成绩的有几门课程,这个时候只用循环定义一个变量解决不了问题,每个成绩都需要保存起来,由此引出数组的概念及编程,还可以是这个例子,展开来讲指针,结构体,文件等。除此之外,还应该:
龙源期刊网 http://www.qikan.com.cn
1) 淡化语法细节, 笔者在教学过程中发现,对于部分学生来说,如果一开始要记住的语法细节太多,反而取不到好的效果。在c语言教学中应该注重培养学生的编程思想、解决问题的思路。比如在在讲输出的时候,刚开始只要求学生记住printf(“%d”,i)的语法格式,不要求记住扩展开来的每个细节,如控制字符串中有”-“表示左对齐,无”-”表示右对齐,这样的语法细节,可以淡化,只要求学生记住基本的语法即可,便于在实际上机的时候,避免不必要的错误造成的时间的浪费以及学习积极性的打击。淡化细节,不是说其他的语法细节不重要,可以等学生在完全掌握了这个知识点以后,再来细化这个知识点的其他语法细节,避免一下子灌输太多的繁琐语法细节造成的不必要的问题。
2) 因材施教:考虑到不同的学生学习与接受能力的不同,尽量的做到因材施教,对于接受能力较弱的学生,先把课堂讲授内容消化,再做对应的上机训练,对于接受能力强的学生除了上述课堂及上机内容外,推荐一些自学的内容。不过因为客观原因,因材施教实施起来会比较困难,现在都是合班课程,授课人数比较多,课堂上授课内容的因材施教实施起来会比较困难,上机内容的因材施教可以通过附加题来实现。
3) 以学生为主体,采用各种教学手段,把学生的学习兴趣调动起来,激发其学习的积极性和主动性。案例教学以程序设计为主线,以编程应用为驱动,通过案例和问题引出教材内容,重点讲解程序设计的思想和方法,穿插讲解相关的语法知识,对于一些重难点问题,可以安排时间为学生做专题讲解。同时对于比较典型的问题,可以安排少量课时实施“学生示范教学法”。在课堂的上机环节中,尤其是刚开始上机的时候,尽量在时间允许的情况下,安排学生上来编程,这样可以发现学生在初学的时候出现的典型问题,及时纠正,教师应以此为例加以更正和讲解,及时解决初期的问题,并介绍一些应避免的错误和编程技巧,更好地为后续的学习打好基础。 3 总结
CDIO是工程教育的典范,通过基于CDIO的案例教学在C程序设计中的应用,较好的提高了学生学习的积极性和主动性,激发他们学习的兴趣,培养了他们的编程素养。该文针对C 语言教学中出现的问题,将基于CDIO的案例教学引入到C 语言教学中,不仅提供了一种新的解决问题的教学年方式,更重要的是,可以大幅度提高教学效果,受到学生的普遍欢迎,并为后续课程的教学打下良好的基础。当然在CDIO模式下,案例教学在C程序设计中的应用不是一蹴而就的,应该重视理论与实践相结合,在今后的教学过程中不断的完善。 参考文献:
[1] 谭浩强.C程序设计[M].北京:清华大学出版社,2010.
[2] 田保军,刘利民.基于CDIO模式“软件工程\"课程教学改革与实践[J].内蒙古农业大学学报,2012.
龙源期刊网 http://www.qikan.com.cn
[3] 廖雷.C语言程序设计基础[M].北京:高等教育出版社,2007.
因篇幅问题不能全部显示,请点此查看更多更全内容