邢秀娥
摘 要:学生在学习计算机课程中,普遍认为编程较难,从而产生畏惧心理。笔者通过多年的教学实践,发现要提高学生的编程能力,也并不是想象中的那么高不可攀,只要方法得当,持之以恒,是完全可以取得良好效果的。在此,笔者就如何提高学生的编程能力进行了一些探讨,希望与同行们进行一些交流。
关键词:提高职中学生编程能力
中图分类号:G712 文献标识码:A 文章编号:1674-098X(2012)05(b)-0166-01
1 激发学生对编程的兴趣
陶行知说:“治学以兴趣为主,兴趣愈多,则从事弥力,从事弥力,则成效显著。”要使学生要把编程部分学好,首先要使学生对编程感兴趣,那么如何培养学生对编程的兴趣呢?
1.1 巧设疑问
人们常讲“读书贵有疑”,有疑问就有了思维的起点。根据教学内容,采用适当的方式引导学生提出或设置问题。教师可让学生通过自学课本提出和发现问题;根据学生作业或上机过程中出现的错误设置问题或根据学生在学习讨论、研究中的发现引出问题等。如我在上“随机函数的应用”这节课时,让学生来模拟编彩票程序。先让学生利用所学过的知识用计算机产生一个七位的随机数来当中奖号码,然后让每人都写一个号码来模拟买彩票,再找一位同学当公证员来运行他的程序,结果谁也没中奖,大家不甘心,要求再来一遍,于是每人又重写了一个号,但结果是计算机产生的那个中奖号码没变,又来了一遍,中奖号码还没变,于是第四遍,全班同学都写了刚才的中奖号码,结果全部中了奖,到这儿,不用我说什么,同学们就已经坐不住了,他们已感到了问题所在,急着想知道怎么解决?他们感到的问题正是这节课所要讲的。
1.2 理论联系实际
计算机编程课程离不开实践,教师应善于促使学生积极地运用所获得的知识去解决实际问题,在教学中,要注意培养学生的应用意识,尽量多举一些学生能理解的实际例子,让学生明白,所学的这些知识到底有什么用?比如,在讲求和问题时,有的学生可能就觉得没意思,让计算机一直加这些数有什么用?这时,就该让学生用所学的知识来解决实际问题,比如,期中、期末考试完后,算总分、平均分等实际问题,还有诸如学生成绩的排序、选票的统计、歌手大奖赛的评分、邮局物件邮寄计费、电脑彩票程序等等。在解决实际问题的过程中,教师可组织学生开展竞赛,互相交流方法,启发思路。
1.3 运用现代化教学手段
随着教学改革的不断深入,现代化教学手段的使用成为当前教育技术发展的趋势,运用现代化教学手段势在必行。比如,多媒体教室可以将程序直接演示,既能提高教学效率,又能使学生能够在一种轻松愉快的气氛中,激发了学生的学习兴趣。
2 重视基础知识的学习
在学习计算机语言时,要强调基础知识的学习,这是学习编程的基础。应做到以下两点:
2.1 对语句的格式及使用说明要强化训练
对于计算机语言中的每一个语句,如果不知道它的格式和作用,那么也就谈不上如何应用它。在教学上,应特别注重每一语句的格式和作用的训练,通过讲课、上机练习、阅读程序、测验等手段,使学生发现错误,及时改正错误,从而掌握语句的使用方法。
2.2 加强学生对程序结构知识的领会
弄清程序结构,对于学生编写程序可以起到一个良好的作用,否则,编写出来的程序,思路凌乱,影响程序的可读性和执行效率。所以在教学上,对于每一种程序结构,都应要求学生能熟练地掌握。为了加深学生对程序结构的理解,应教会他们读懂示例程序并能进行分析,在读一些结构嵌套较多的程序时,可让学生用一些符号标记出结构的嵌套层次和功能,这样,程序就变得层次分明,可读性也就增强了。另外在编写程序时,要求学生先画出流程图,再写程序,这样有利于学生编写出结构清晰的程序。
2.3 学会模仿,掌握基本的编程方法
学生要学会编程,必须有一个观察模仿他人的过程,那么,教师每讲一种题型,都应让学生多做类似的练习,如教师讲了1+2+……+100,那么就让学生做1+2+……+50;1+3+5+…+99等等,在此基础上,要求同学画出这些程序的流程图,结果,学生们已经发现,这些程序的流程图基本框架都是一样的,只是内容不同而已,这样就能打消学生对编程的畏难情绪,从而让学生树立起信心,同时关于累加题型的普遍规律就由学生自己找出来了。
那么让学生模仿,怎样避免让学生单纯地模仿教师的方法,这就要求教师在讲解过程中,应偏重分析,这样就能使其思路灵活多样,而不是机械的模仿。
2.4 培养发散思维,开阔编程思路
发散思维是指根据已有信息,从不同角度、不同方向思考问题,从多方面寻求多样性答案的一种思维形式,是创造性思维的核心。程序设计类课程的授课关键是让学生学会编程的思路和技巧,在授课过程中启发学生积极思维。比如,在讲授BASIC循环语句时,让学生分别用FOR语句和WHILE语句分别编程解决同一问题,然后提问:“两种语句各有什么优点?各适合于什么情况?”。
2.5 一题多解、举一反三,提高学生综合编程的能力
教师要精心选编例题,使用类比的方法,引导学生从事物间的联系来理解事物的本质。练习不同梯度的题目,达到举一反三的目的。比如,在BASIC教学中,许多问题可以用多种方法来解决,在学生用一种方法解决后,要求学生看看能否用其他方法来解决。如讲到如何交换A,B两变量的值时,通常用C=A:A=B:B=C来解决,这是借助第三个变量C来解决的。能否不用第三个变量也能实现A,B两数的交换呢?同学们会觉得很有兴趣,不断开动脑筋,很多同学最终也能想出答案:A=A+B:B=A-B:A=A-B。在学习排序时,常用方法是用选择排序方法,这种方法比较容易掌握。待同学们掌握了该方法后,教师及时提问能否有别的方法,加快排序的速度,引出冒泡排序,对于这两种排序,分别也有两种方法,只是对前一种方法的改进。这样即可引导学生由浅入深,层层递进地进行练习,即巩固了所学知识,又煅炼了学生灵活应用的能力。在进行一题多解、举一反三练习时,采用循序渐进的方法。
2.6 上机实践,进一步锻炼学生的编程能力
涉及计算机的课程大都实践性极强,特别是程序设计,不动手实践绝对学不会。上机实践是既动手又动脑的过程,也是提高学生编程能力的一个重要环节。学生上机出现的问题往往是教学的重点和难点,应加以总结,作为课堂讲解的内容之一。
在让学生上机时,应让学生带着问题上机,对一节实验要完成哪些任务,达到什么目标,必须让学生清楚。上机题目尽量接近实际,也要注意题目的难度,可分层次定目标。并且要求学生在上机过程中,对出现的各种情况进行分析,不能只按照书本上的实验内容去做一遍。
总之,提高学生的编程能力虽然有一定的难度,但只要教师们在教学实践中不断的积累总结经验。根据学生的具体情况,采取切合实际的教学方法,学生在学习过程中会逐步形成编程的一整套思路,编程能力也会不断地提高。