让“天书”不再可怕

时间:2022-08-24 04:54:25

摘 要: 学生畏惧C语言这门课程,因为它难,如何把它化难为易,这是十分重要的问题。作者主要从以下几点着手:结合一些趣味数学题,培养学生的兴趣;通过讲解和精选练习,帮助学生打好基础;注重理论学习和上机实践的结合,提高学生的理解能力;发动学生,互帮互助,达到共同提高的目的。

关键词: C语言 化难为易 教学体会

“万事开头难”,这句话一点也不错。这不,刚开学两星期,一位女生就向我诉苦来了:“老师,C语言这门课程怎么这么难呀!您讲课时,我就如同听‘天书’一样,这可怎么办呢?”看着这位女生焦急而又忧虑的样子,我忙安慰她说:“刚开始接触C语言这门课程,都有这样的感觉,这是很正常的,因为在此之前我们从未学习过它,不像文化课,我们都有一定的基础,所以你没有必要这么焦虑,慢慢学,你就会渐渐深入其中,觉得‘天书’也不再可怕了。”听了我的这番话,她的心情看似好了很多,笑着说:“我再学习一段时间看看。”女生走了,作为一位教授C语言课程的老师,我却陷入了深深地思索之中:C语言这门课程确实很难,也确实需要一段学习的过程,但在这个过程中,作为老师,我能不能从学生的角度考虑,尽可能地把这门课程化难为易呢?下面是我的一些教学体会。

一、结合一些趣味数学题,培养学生的兴趣

兴趣是学习的动力,只有先对C语言这门课程有了兴趣,才有劲头去学习它,才不会叫苦连天、闻其色变。所以我想方设法调动学生的兴趣,以期达到好的教学效果。最常用的就是结合一些趣味数学题来培养学生的兴趣,比如:“多重循环程序设计”这部分内容中有一道很好的例题,可以提高学生学习这部分内容的兴趣,即“百钱百鸡”: 今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?这是一道典型的趣味数学题,学生们都对其中的鸡翁、鸡母、鸡雏充满兴趣,跃跃欲试,想从数学的角度来解决它,于是我让他们列出数学方程式。这比较简单,学生们都很积极地列了出来。即:设鸡翁、鸡母、鸡雏各为x、y、z只,依题意列方程x+y+z=1005x+3y+=100?(其中x、y、z为非负整数)。然后我要求他们解出具体的结果,他们当然都傻眼了,因为这是三元方程组,却只有两个方程式,是无论如何也解不出的,他们显得有些失望,但又不甘心。我于是引导他们说:“我们完全可以编写一个程序,让计算机来帮助我们解决这个问题。”这使学生们的兴趣一下子又提起来了。我告诉他们这是一道用穷举法来解决的题目,可由方程x+y+z=100推出z=100-x-y。再结合题意知:因为总共100 钱,若全部买鸡翁则最多买20只,因此x的变化范围是0―20的整数。同理,y的变化范围是0―33的整数。由此写出以下C语言源程序:

#include

main()

{ int x,y,z;

for(x=0;x

for(y=0;y

{ z=100-x-y;

if(3*x+5*y+z/3=100)

printf("x=%d,y=%d,z=%d/n",x,y,z);

}

}

然后上机调试就可以得出想要的结果:

X=0Y=25Z=75??X=4Y=18Z=78??X=8Y=11Z=81??X=12Y=4Z=84

这是一道较为抽象的循环应用程序的题目,若直接学习,学生便会感觉难度较大,不易接受,现在先培养学生的兴趣,让他们从内心想来解决这个问题,但使用数学的方法又不能解决,然后引出算法――穷举法,编写出C语言程序,以此达到了学习算法解决问题的目的,效果非常好。

二、通过讲解和精选练习,帮助学生打好基础

(一)讲解详细,不厌其烦。

一座大厦要建得高,根基最重要。学习C语言这门课程也不例外,它抽象难懂,一步脱节,步步难跟上,所以需要认真扎实地打好基础。一旦打好了基础,学生就会渐渐深入其中,领会到这门课程的乐趣,就会觉得学好它并不是一件难事。为此,我在讲课时不急不躁,一个步骤一个步骤地详细讲解,讲完一遍后,及时询问学生是否听明白了,若是不少学生还是不能明白,再重新细致地讲一遍。第二遍结束后,若还有学生弄不明白,就安排其他学生进行练习,专门为这学生进行讲解,三遍、四遍、五遍……不厌其烦,直到他们都弄懂为止。尽管这样做很累,但我不放弃,因为帮助学生打好根基这是十分重要的事情,只有这样学生才会逐渐地增强自信心,才会乐意地去解决这些让人头痛不已的习题。

(二)练习题典型,精心选择。

C语言提供了丰富的运算符,用以来完成各种运算,学生要掌握各种运算符的功能、使用方法、优先级,必须通过练习来实现,因此精选典型练习题对此很重要。例如自增自减(++、--)运算符是C语言中应用较多的运算符之一,它的使用方式有两种,可以作用在变量的左边或右边,它们的功能不完全相同,如变量a的初始值为3,执行b=a++之后变量a的值为4,变量b的值为3;而执行b=++a之后变量a的值为4,变量b的值也为4。再如变量k的初值为3,则执行s=k+++k+++k++与执行s=++k+++k+++k有何区别呢?通过分析,执行前一个表达式后变量k的值为6,s值为12,执行后一个表达式后变量k的值为6,而变量s值为15。由此可以对自增自减运算符的应用得出结论:相同点都是使所作用的变量值加1(减1);不同点是运算符在左时,先增(减)再使用,运算符在右时,先使用再增(减)。通过精选典型练习题,巩固了学生所学的知识,使学生稳扎稳打地前行。

三、注重理论学习和上机实践的结合,提高学生的理解能力

尽管老师一而再、再而三地详细讲解,学生也全神贯注地扯直耳朵认真在听,可毕竟这些知识不像汉字那样简单,多读几遍、多写几遍就理解、记住了,它比较难理解,令一些学生丈二和尚摸不着头脑,在做练习时,不知该如何下笔,该如何理清它。针对这种情况,老师就该安排上机实践,只有把理论学习和上机实践紧密地结合在一起,才能逐步地提高学生的理解能力,才能把知识化难为易,才能达到事半功倍的效果。例如:素数问题也是程序设计中一个典型的例题,有不少同学在学习之初就容易出错,其定义为除了1和它本身再也没有其它的因子的正整数称之为素数(又称质数)。正确的处理思路是排除法:除了1和它本身还有因子的不是素数,这里在处理时是从能被整除的角度来进行的,而理解错误的学生则死记定义,从不能被整除来入手则就行不通了,而他们又很难通窍,固执地认为按定义来处理一定不错。这时就要安排学生来上机检验程序的合理性了,通过上机让学生运行自己编制的程序:输出100以内的素数,看看是否正确地输出了,如果不是,让学生思考、分析原因,并改正再调试,直到完全准确才行,然后要求学生上交上机报告,其中要注明出错的原因。

四、发动学生,互帮互助,达到共同提高的目的

“一花独放不是春”。我经常这样告诉学生们,身为一个大集体的一分子,大家应该互帮互助,共同提高,不能只想着自己越飞越高,要手拉手、心连心地一起向前奔,这样我们以后才能更好地融入社会这个大集体。做好了学生们的思想工作以后,我便把全班同学分成了六组,每组六人,每组成员中都有成绩好一些的,也有成绩较差一些的,这样安排,他们才有机会互帮互助。之后,我便明确具体的目标和具体的天数,时间一到,我就对各组进行抽查,或以问答形式,或以试卷形式。他们为了各组的成绩和进步,都不甘落后,积极学习,对小组成员更愿意伸出援手,以提高本组的总体水平。功夫不负有心人,集体的力量真是不容小看,经过一段时间的学习以后,我发现学生们对C语言这门深奥的学科已不再有畏惧的心理了,遇到难理解的问题时,他们不再向以前那样独自愁眉苦脸、唉声叹气,而是和几个同学一起讨论,实在想不明白时便会向我请教,很大胆地讲出自己的疑惑,那样地真诚,那样地自信,令我感到十分的欣慰。有了这种执着的学习精神,还有什么困难是不可战胜呢?还有什么苦恼是不可解开的呢?这些成果的取得与学生们的互帮互助是密不可分的,通过互帮互助,他们不仅从中掌握了一些难懂的知识,而且增强了自信心,更重要的是他们知道:有了同学的陪伴,一切困难都可迎刃而解、化难为易。

如何把C语言这门课程化难为易,这是我一直在思索的问题,并不断地在教学中进行尝试。我深信:一切为学生着想,成功便不再是妄想。

参考文献:

[1]谭浩强.C语言程序设计.清华大学出版社,1999,12,(2).

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

上一篇:计算机局域网病毒及防治 下一篇:如何规范计算机操作课学生课堂行为