“C语言”渐进式案例驱动教学法
2014-07-19吴海峰朱世娟
吴海峰,连 飞,朱世娟
(安庆师范学院1.计算机与信息学院,2.教务处,安徽安庆 246133)
“C语言”渐进式案例驱动教学法
吴海峰1,连 飞2,朱世娟1
(安庆师范学院1.计算机与信息学院,2.教务处,安徽安庆 246133)
C语言是程序设计的入门课程。首先分析指出C语言教学中出现的弊端,然后提出应用渐进式案例驱动教学法可以消除这些弊端,最后举两例进行说明。教学实践表明,渐进式案例驱动教学法的教学效果较好,学生对算法的掌握程度和动手编程解决实际问题的能力得到很大提高。
C语言;教学法;渐进式;案例驱动
C语言作为一门程序设计的入门课程,其实践性极强,传统“纯理论式”教学方法、课程考核方式、学时等多种因素导致教学过程中出现了一些弊端[1-4]:重语法,轻算法。传统的C语言教学通常首先介绍某一知识点,然后讲解该知识点的语法形式和含义,最后举例说明。这种教材的语法阐述非常详细,信息量大,适合作为学习的工具书。然而“算法是程序设计的灵魂”,学习C语言的真正目的是为了用它解决实际问题。传统的教学方法十分重视语法,却忽视了算法,教出来的学生可能会读懂程序,但遇到问题需要自己解决时却无从下手。重考试,轻应用。很多普通高校将通过全国计算机等级考试或者省级计算机水平考试作为C语言课程考核标准。这种做法有利有弊,有利的是实现了教考分离,学生可以获得一个证书,弊端就是可能导致老师的教学和学生的学习都以考试为导向,考的讲不考的不讲,考得多的多讲,考得少的少讲,反而忽视了C语言的实际应用问题。重理论,轻实验。C语言是一门实践性强的课程,上机实验是学习的一个重要和必要的环节。然而很多学校开设的实验课时不足,学生上机时满足于把课本上的代码输入计算机运行一下,设计性和综合性的实验做得很少。学生将C语言的学习方法等同于高等数学的学习方法,把大量时间花在做练习题上,对上机实验的重视程度不够。
基于这种情况,结合多年教学实践,本文总结出一种“渐进式案例驱动教学法”。该教学法吸收了“渐进式教学法”[5]和“案例驱动教学法”[6]各自的优点,尝试运用渐进式案例驱动教学法,具有如下含义:(1)在实施案例驱动教学法时,将复杂案例的难点进行分解,由浅入深,由易到难,这也符合学习的规律;(2)在学生完成案例后,教师对理论知识进行系统总结归纳,进行升华,采取渐进式教学法。
1 课前准备,精心设计案例
设计案例时主要考虑以下几点:(1)所选案例必须涵盖相关知识点;(2)案例的难易程度适当,符合学生的知识水平;(3)案例要有典型性,可以举一反三;(4)案例要由易到难,循序渐进。例如,在讲授循环结构时,可以选择“求多项式之和”的典型案例,设计多个相互关联、难度逐步增加的案例,可以锻炼学生的观察问题和分析问题的能力,从而达到举一反三、事半功倍的效果。案例设计过程如下。
设计原则:通过案例让学生理解循环通常由初始化部分、循环体部分、循环控制部分组成,每个部分的功能及在整个循环结构中的作用。
设计案例(1):求1+2+3+4+……+n的值。
案例分析:案例(1)是一个典型的累加求和问题,可以通过模拟计算器的计算过程来实现。首先定义一个变量sum来暂存得到累加和,开始计算时,sum=0,然后依次将1,2,3,……,n累加到sum中,最后得到的sum值即为所求结果。通过观察可以发现,每次计算做加法时,除了所加值不一样,其余部分都相同。这样可以设置一个变量i来保存所加值,i的值从1逐步变化到n,每次执行sum=sum+i进行累加后,将i的值加1(i+ +)即可。通过分析得到如下程序段:
最后根据案例程序总结得出for循环的一般形式及各部分的功能,进而推广到for循环的变形形式。
2 课堂教学,充分调动学生
课堂教学是整个过程中非常重要的一环。教师通过案例,逐步引导学生学会独立思考问题、分析问题、解决问题的能力。教师作为课堂的设计者和掌控者,要起到引导和控制的作用,使学生从被动接受知识到主动获取知识,充分发挥学生的主观能动性和积极性,激发学生的思考能力,使整个课堂活跃起来。例如,在讲授选择排序算法时,在案例设计时将这个问题分解成以下5个案例,由易到难,再逐个解决,选择法排序的原理和过程就一目了然。
案例(2)输入10个数,求最小值。
从已经学过的案例:求三个数的最小值引入,从已知到未知,承前启后,过渡到新的知识点。
案例(3)输入n(n<10),再输入n个数,求最小值。
将数的个数由固定到从键盘灵活输入,从不变到变。注意定义数组的长度不能为变量,可以把长度定义为10。
案例(4)输入n(n<10),再输入n个数,输出最小值和它所对应的下标。
将最小值的表示方式过渡到采用数组下标的方式,知道下标即可输出对应数组元素。
案例(5)输入n(n<10),再输入n个数,将最小值与第一个数交换,输出交换后的n个数。首先判断最小值对应下标是否等于0,若相等则不须进行交换。
案例(6)输入n(n<10),再输入n个数,用选择法将它们从小到大排序后输出。
有前面的案例作为铺垫,再结合图1举例说明选择排序算法的过程,选择法排序就变得相对容易理解。
图1 选择排序算法过程
最后,在学生基本完成的基础上,老师给出一个相对规范的程序段作参考,具体如下。
3 案例评价,总结归纳提高
在学生完成案例后,教师及时进行评价,将案例中用到的知识和方法进行总结延伸。同时,对理论知识进行系统总结归纳,进行升华,形成完整的知识体系。例如,在完成案例(1)后,对学生的完成情况进行点评,总结for循环的一般形式,进而理解循环的本质,再推广到其他形式的循环结构(while循环、do-while循环)。
4 结束语
教学实践表明,渐进式案例驱动教学法具有如下优点:
(1)注重算法分析能力的培养。在教师给出案例后,学生自己分析,教师从旁引导,最终得出解题思路,再利用C语言编程实现。在分析问题和解决问题的过程中,不知不觉学会了算法分析。
(2)注重解决实际问题能力的培养。教学中所用案例,很多都是实际问题或者从实际问题中提炼引申出来的,在解决这些案例的过程中,学生提高了解决实际问题的能力。
(3)注重动手编程能力的培养。在教学过程中,选取部分案例,留给学生课后和上机实验时完成,下次课堂上采用提问的方式进行抽查,既锻炼了学生的动手编程能力,又了解了学生的学习状况,及时调整教学内容和教学计划。
渐进式案例驱动教学法吸收案例驱动教学法[7]的优点,将枯燥的语法知识融合到案例中进行讲解,在学习理论知识的同时学会应用,避免学用脱节,又遵循循序渐进的学习规律,将案例中的难点问题逐步分解,由易到难,环环相扣,让学生易于接受。
[1]刘芳,秦兴国,王宇英.《C语言程序设计》教学存在的问题及改进[J].教育理论与实践,2012,32(36):51-52.
[2]丁海燕.高级语言程序设计教学重点与课程改革[J].云南农业大学学报,2012,6(6):76-79.
[3]丁丽.项目驱动式教学法在C语言教学中的应用[J].信息技术与信息化,2012,(5):33-35.
[4]王平勤,董付国,原达.在C语言教学中注重培养学生算法分析的能力[J].微型机与应用(增刊),2007(6):211-213.
[5]崔松健.渐进式与项目式教学方法在《网页设计技术》教学中的融合[J].电脑知识与技术,2010,6(33):9375-9376.
[6]曹风华.案例驱动教学法在《计算机应用基础》课程中的应用[J].现代计算机,2012(12):41-43.
[7]蔡庆华,王一宾,程一飞.案例式C语言程序设计教程[M].北京:清华大学出版社,2012:144-149.
Application of Gradual Case-driven Teaching Method in C Language Teaching
WU Hai-feng1,LIAN Fei2,ZHU Shi-juan1
(1.School of Computer and Information,2.Teaching Affairs Office,Anqing Teachers College,Anqing 246133,China)
C language is an introductory course of programming.First,the drawbacks of C language teaching are pointed out by analyzing.Then,it is proposed that the application of gradual case-driven teachingmethod can remove these drawbacks.Finally,two examples are given.Teaching practice shows that the teaching effect of gradual case-driven teaching method is better;students′ability to learn algorithms and solve practical problems by programming has been greatly improved.
C Language,teachingmethod,gradual,case-driven
G642
A
1007-4260(2014)03-0135-03
时间:2014-9-15 16:07 网络出版地址:http://www.cnki.net/kcms/doi/10.13757/j.cnki.cn34-1150/n.2014.03.033.html
2014-01-27
安徽省2012年重点教学研究项目(2012jyxm351)资助。
吴海峰,男,安徽宿松人,硕士,安庆师范学院计算机与信息学院讲师,研究方向为测试数据压缩、计算机教育。