APP下载

陷阱教学法在高职高专C语言教学中的应用

2016-05-30周燕文毅蒋承延

经营管理者·中旬刊 2016年11期
关键词:程序段C语言陷阱

周燕 文毅 蒋承延

摘 要:C语言简洁高效、结构丰富、可移植性强,是良好的结构化语言,因此大部分大专院校都把C语言作为工科学生学习计算机语言的首选课程。本文针对传统的C语言教学过程中学生缺乏学习兴趣、内容枯燥难以理解、缺乏动手编程能力等问题,提出了“陷阱教学法”,在实际教学中取得了较好的效果。该教学方法是由教师有意识地设置陷阱,让学生掉入陷阱,发现错误,最终改正错误这样一个过程让学生的心理产生一次震动,从而达到促进理解、增强记忆的效果,提高学生学习C语言程序设计这门语言的主动性和学习效率。

关键词:C语言陷阱教学法 学习效率

从事一定时期的教学工作后,我们可能都会碰到这样的时刻,无论你怎样全面细致的讲解知识,怎样耐心认真的课后辅导,学生对于有些知识点就是不能理解;也会发现有时候学生佯作听懂了的样子,让他们进一步阐述又不明就里,这给教师带来了很大的挫败感。当常规的教学方法不能促使学生理解某些知识点的时候,我们应该思考一下能不能引入一些特别的教学法,比如“陷阱教学法”来打破学习的坚冰,提高学生学习效率和效果。陷阱教学法通过模拟一种错误的环境,让学生误以为正确的时候适时提醒和点破错误,让学生幡然醒悟,形成巨大的心理反差,使学生高度注意这个知识的特点,也能从另一方面去理解和领悟知识点,从而调动学生的主观能动性,促进他们的思维发散性,多方面、多角度综合学习和考虑问题,避免了原来单一思维时总是走进死胡同的窘境,自然也增强了学生对知识的理解,留下了不可磨灭的印象。

一、陷阱教学法的含义

陷阱实际上是一种伪装,陷阱教学法实际上就是伪装教学法。把正确的知识伪装成错误的知识,或者说以错误的面貌出现在学生面前,目的是要让学生自己通过独立思考去伪存真,揭开伪装的面纱,去发现背后的真理,更好的学习和理解知识。这是教师故意为之的行为,通过师生互动,逐步引导学生发现问题、认识问题、理解问题、思考问题、反思问题、总结问题。教师通过课前精心的设计,将学生的思路引入事先设置好的陷阱中,不予点破,让学生误以为正确,教师在一旁观察学生的反应,这是学生初步去发现错误的时候。在学生沿着错误的思路一路前进走进死胡同的时候,教师给予引导和提示,让学生茅塞顿开、醍醐灌顶,然后引导学生去重新回过头来认识错误、学习错误、思考错误。从而在今后遇到类似的问题时预防错误。学生在这一过程中不是被动的接受教师传授知识,而是主动去适应问题,运用自己的知识储备解决难题,找寻真相。实际上就是锻炼学生去探索性思维、辨析性思维、比较性思维。比起一味听取教师单方面的灌输和讲解会有更强的教学效果。

二、陷阱教学法的应用原则

1.“陷阱”一般设在课程的重点、难点处。在重点难点处设陷阱,比光是口头强调重难点效果要好得多,因为这是他们思维亲历探险的感受,掉入“陷阱”的体验让学生能多方面、全方位地学到重点、难点的知识内容。

比如以下程序段:

a=0;

if(a=1)

printf(“a=0”);

else

printf(“a=1”);

让学生分析该程序段的结果,大部分同学给出的答案是“a=1”,但是程序的实际执行结果为“a=0”。为什么会出错?因为同学们把“=”和“==”搞混淆了。在C语言中“=”是赋值符号,并不是关系运算中的等于符号,关系运算中的等于符号要用两个“=”表示,也就是“==”。上面程序段中a的初值为0,接着的if(a=1)语句中“a=1”是赋值语句,将1赋值给a,然后用if判断a是真是假,如果为真,执行printf(“a=0”);语句,如果为假,执行printf(“a=1”);语句。1为真,程序执行printf(“a=0”);,所以输出“a=0”。如果是下面的程序段:

a=0;

if(a==1)

printf(“a=0”);

else

printf(“a=1”);

程序输出结果为“a=1”,因为a的初值为0,接着的if(a==1)语句中的a==1是关系运算,判断a是否等于1,因为不相等,表达式为假,程序执行else之后的语句,输出“a=1”。

2.在忽视点上设置错误陷阱,培养认真、仔细的学习习惯。学生的学习过程实质就是一个不断修正错误的过程。教师可以紧紧围绕教学内容的重点、难点和易错处,精心设计一些针对性的提问、习题等,诱使学生充分暴露错误和薄弱环节,然后对症下药。借助错误和失败使知识和技能得以巩固、强化。

比如以下程序段:

inta,b,c,sum,average;

printf("input threemunbers:");

scanf("%f%f%f",a,b,c);

sum=a+b+c;

average=sum%3;

printf("sum=%d,average=%d\n",sum,average)

该程序段的功能十分简单,就是从键盘输入三个数,并求出三个数之和和三个数的平均值。就是这样一个简单的程序段里,却隐藏了三个错误,而且很多同学都找不出错误在哪,因为这些错误是他们平时最容易忽略的、也最容易犯的错误。第一个错误是输入语句scanf("%f%f%f",a,b,c);中的a、b、c前面少了&符号。Scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。由于变量在内存中都分配了空间,所以&符号的作用就是取出变量在内存中的地址,才能把数据存入进去。因为该语句和格式输出语句printf("%f%f%f",a,b,c);非常相似,所以容易漏写&符号。所以我们在书写C语言程序时一定要养成认真仔细的编程习惯,避免低级错误。

3.在学生学习的兴趣点上有意设置陷阱,寓错于乐。兴趣是最好的老师。学生在感兴趣的知识点上比较容易勤思考、动脑筋。老师投之以桃,学生会报之以李,只是这个“桃”是老师有意将容易混淆、出错的知识点化妆一番授给学生,让学生从迷惑和疑问中去独立思考事实真相,不盲从、不迷信,相信真理,相信自己的判断,从根本上培养学生理解知识、吃透知识、活用知识的能力,那么学生报之以老师的“李”必定更加硕果累累。在此过程中,同时也能让学生享受知识的乐趣,减轻学习的压力,在快乐中去体验真理的奥妙。

三、陷阱教学法的注意事项

1.对错误要有预见性。陷阱教学法对教师最首要的一个要求,就是对错误要有足够的预见性,如果教师在之前不能预见学生可能走上哪些岔道,就不可能准确地挖出“陷阱”等着学生往里掉,也就更谈不上在学生掉进去之后,引发学生的认知冲突,激起学生的求知欲和探索心向,与老师、同学发生思维的碰撞,在讨论中明晰错误中存在的问题,找到出错的原因。

2.“陷阱”设置要注意避免重复、与时俱进。教师在教学中往往會受到经验的影响。比如,经常会听到某些教师大谈特谈以前哪些学生遇到这个问题总是会出错。但是,我们要知道随着社会的进步、科技知识的普及,每一届学生的知识储备、理解能力可能都会成倍的增长。如果教师总是以老眼光看待每一届新同学,认为以前设置的经典“陷阱”永远管用,可能就会犯经验主义的错误,导致学生对该知识点的重要性和难度认识不够,认为教师对他们的学习能力了解不足,甚至怀疑教师的授课能力和权威性。要避免这样的情况出现,教师必须积极摸清学生基础,理解学生思路,不断调整设置“陷阱”的方式方法,与时俱进,使“陷阱”教学的作用在不同类型、不同时期的学生身上都能发挥作用。显而易见,陷阱教学法符合学生认识事物的规律,利于学生良好学习习惯的培养,让他们具体问题具体分析,从错例中升华认识,优化头脑,不断修正自己的学习方法。我们为学生挖好“陷阱”,有意识地让学生进行“尝试错误”的活动,目的在于引发学生的认知冲突,促使学生主动地对错误进行反思,突破性地认识到错误所在,更利于学生自诊自治,提高其对错误的免疫力。

猜你喜欢

程序段C语言陷阱
基于WinCC的物料小车控制系统设计与仿真
基于Visual Studio Code的C语言程序设计实践教学探索
数控系统手轮回退功能的研究与实现*
基于NC程序段的提高数控加工监控阈值与信号同步的方法*
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
陷阱
论子函数在C语言数据格式输出中的应用
陷阱2
陷阱1