APP下载

为学生巧驾“轻舟” 须教师善下“题海”

2014-12-26金志峰

新课程·上旬 2014年10期
关键词:轻舟教学策略

摘 要:许多信息学奥赛辅导教师认为,“题海战”是学生练就编程硬功的必由之路。这是辅导教师在认识和实践中普遍存在的误区,严重影响了辅导教学的有效性。结合教学实践具体论述了在程序编写辅导教学中教师勤于亲历解题的意义:唯有教师乐下“题海”,方能换来学生巧驾“轻舟”。

关键词:信息学奥赛;教学策略;编程水平

我校辅导学生程序编写并参加全国信息学奥赛己有十余年历史,每年都有学生获得省级乃至国家级的奖项。这在我们整个苏州市吴江区几十所学校中是“三亩地中的一株笋”,遥遥领先。许多兄弟学校的辅导教师认为学生学习编程只有经过“题海战”才能熟能生巧,至于教师本人做不做题目就无所谓了。笔者觉得这是目前教师在认识和实践上普遍存在的误区。实践证明,教师乐于下“题海”,勤于下“题海”,善于下“题海”,才能换来学生巧驾“轻舟”度“彼岸”。

一、教师乐于下“题海”,有助于提升自身编程水平,提高上课效率

首先,多做题可以帮助教师准确理解编程教材中的重点和难点。准确把握重点、难点之后,才能进一步精心安排自己的教学,取舍自己讲授的内容,从而大大提高课堂教学的针对性。

其次,多做题可以帮助教师把相关题目应用到新授知识的实战练习中,提高上课效率。对于书本上的新授内容,教材通常会对这一知识点的理论内容讲解的比较多。比如,在讲到while循环语句时,书上讲到了它跟for循环语句的区别,它的一般使用形式及它的流程示意图等等。然后,再通过书上一两个实例来完成新授知识。这当然还不够,如果要让学生对while循环语句掌握得更好,就需要教师选择一些自己熟悉的相关题目来让学生加强训练。在不断练习中学生会知道如果它的循环体包括多个语句时,一定要加上begin,end,以构成复合语句形式,学生也会逐渐掌握它和for循环语句、repeat循环语句的区别及相互转换……这样,就可以更好、更全面地掌握对while循环语句的使用。相比起按部就班的只按照书上理论内容学一下的效果自然要强很多。

再次,教师可以把题库中相同类型题目进行归纳汇总,以促进教学。一般的编程教材对于新授知识的例题不是很多,最多也就两三道。而对于一些思维力度较深、较难的教学内容来说,这就不太可能讲得很透彻,有的学生可能也不太能看得懂,不太能掌握。教师如果能把自己题库中同一类型、同一主题的题目作一个归类,上课时按照由简单到复杂的顺序作为一个专题课来进行教学,这样,在提高教学质量的同时,也进一步提升了教师本人的教学能力。

二、教师勤于“下题海”,有助于总结常见问题,积累教学经验

1.一些低级错误。比如,标点使用错误、语句格式错误、保留字的拼写错误等等,出现这些问题的学生,是题目做得少的原因所致,是基本功不扎实的体现。学生通过不断的刷题是可以避免的。

2.变量长度溢出情况。初学编程时,我们所讲的整数变量用的是integer(整型),它的使用范围是-32768~32767。随着题目类型及难度的增加,有的整数变量有可能会超出这一数值范围。这时,我们程序代码写得再正确,而变量类型定义有问题,还是会出错。此时,就应使用到longint(长整型)或int64(64位整数)变量类型。int64可表达的最大整数是2^63-1。另外字符串变量string也是较易溢出的。初学时,我们使用的string是变量长度不超过255的任一串字符,当长度超过255时,就要使用超级字符串ansistring了。

3.程序运行超时现象。一般一段程序在机器上运行时间超过1秒,就很可能会超时。编程初学者写的程序,许多都是程序运行没问题,但效率不高。比如,求三个数的最小公倍数问题,有学生从1开始列举,当找到第一个同时mod(求余)这三个数值为0时,就找到了。这种方法对于很大的数字来说,计算机相对运行时间会很长。更有效率的是把这三个数中最大的数翻倍来找,就快得多了。

4.题意表达不清现象。在一些OJ程序网站上和竞赛中的少数难题中,有时也会有题意表达不是很清楚,或者会让学生理解错误的现象。我们在做这种题目时,自己感觉程序已经很完善了,可是测试下来的数据就是不对,学生往往去找自己编写的程序到底哪些地方出现了问题,结果是有可能找一两天都找不出来。主要原因在于对题目的理解上,因为有的题目想要表达的有可能是A情况,而我们却理解成了B情况。所以,认真审题是很关键的。

三、教师善于“下题海”,有利于与学生交流经验,促进师生进步

首先,教师通过自己解题,然后才会发现跟学生会有更多的共同话题。其中“苏州奥赛在线评测系统”,这是一个集解题、评测、排名等功能于一体的网站。网站上现在有918个编程题,学生每做完一题,可以提交,网站系统会通过各类数据进行评测,达到100分,即通过,此题会在你的帐号中被标识为“AC”。逐渐地,我发现学生形成了良好的竞争氛围。因为网站中有一个“校内排名榜”,大家都你追我赶地做题,都想成为班上的第一名。为了跟上学生的节奏,作为老师的我,也不得不抽出时间来做更多的题。因为学生会在解题遇到困难时,向我求教。有几次,我在周末晚上很晚的时候、或者周日一早,自己做题时,惊奇地发现我的几个学生也同时在线正做着题目呢!这种认真的态度,令人感动。对于表现突出的学生,我都会好好表扬一下,并给予一定的奖励。而表现很一般的学生,则通过多方激励,希望他们能付出更大的努力。

其次,通过与学生对编程题目的交流,我们往往也能发现学生中也有很多“闪光点”,学生有时可能会用到比老师更好的方法。俗话说:“三个臭皮匠,顶个诸葛亮。”学生用智慧迸发出的火花,常常令老师感到惊喜。

比如,S=1+3+5……+97+99,求S的值。一般的做法是for i:=1 to 50 do s:=s+i*2-1;有的学生用到了奇函数:for i:=1 to 100 do if odd(i) then s:=s+i这样也可以求出S的值;有的学生用了repeat until循环,有的学生用了while do语句,在100以内,i的值从1开始每次加2,并把i的值累计加到S上,最后求出S。这么多方法完全都可以的。我在奥赛辅导班里,会讲到算法的优化,有时候增量算法,使用数组对先前计算结果进行保存,用于计算后续的数值,有效消除了冗余计算,以空间复杂性换取了计算复杂性,性能得到了很大的提升,从而大大提高了计算效率。在课堂上,在每讲完一个题目,我通常会问一句:“有没有同学能用更好的方法?”许多好的解题方法,都是我跟学生交流时获得的。

四、教师跳出“题海”,有利于把握信息学奥赛考试题型,增强应考策略

首先,通过对历届竞赛试题的练习与研究,我们会发现:许多试题是在典型问题原型的基础上通过各种知识综合、能力拓展、包装修饰炼成的。问题总是在不断变化与发展中延伸的,所以导致奥赛题目越来越难。许多时候我们会发现,一些奥赛题目我们都是通过这样的方式解决的:在找到并解决问题原型的基础上,综合考虑、深入研究、大胆尝试、找出窍门,最后成功解决。教师通过不断的练习及题目分析,在增加解题经验的同时,也能更好地把握信息学奥赛考试题型,增强应考策略。

其次,教师间需要交流奥赛中的相关题目。许多老师都会有这样的经历:遇到了奥赛难题,自己都解决不了,怎么办呢?“闭门造车,造不出好车”“他山之石,可以攻玉”。老师一个人的思维是有限的,集思广益才会有更大的智慧。我的方法就是加入一些相关QQ群或者网站论坛,通过网络向苏州大市或者江苏省的同行提问,通常会有其他学校的老师帮助解答。在交流中,我们不仅能获取一些难题的解题方法,还能通过众多教师对信息学奥赛试题的讨论,帮助自己更清楚地看出试题的方方面面,对题目的理解也会更深入。

总之,作为信息学奥赛的辅导教师,要通过多做题目不断地学习各种理论知识和编程技术,要护好航,安全地带学生到彼岸。教师本人多做题,不仅有利于教师本人提高专业技术水平,还可以不断积累自己的教学经验,促进师生之间、老师与老师之间更充分地交流和进步。

参考文献:

[1]马晓娟.C语言初学编程的常见错误及分析[J].赤峰学院报,2013(09).

[2]薛娟.做题有助教师提升教学能力[J].中国教育报,2013(08).

[3]郑启华.PASCAL程序设计.清华大学出版社,2009.

作者简介:金志峰,男,1978年7月生,本科,就职于江苏省苏州市吴江区盛泽二中,研究方向:信息技术学科。

猜你喜欢

轻舟教学策略
低年级写话教学策略
雾伴轻舟
沧海轻舟
一路轻舟乘东风
轻舟
诗二首