摘 要:尝试《算法与程序设计》模块教学的学校非常少,其实在我国信息技术课程发展史中,“程序设计”一直占据着不可或缺的重要地位。算法的学习比较抽象、枯燥、难理解,很难调动学生积极性。学习算法与程序设计就是要让学生了解并掌握如何使用计算机解决问题,尤其使学生进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用,这是学习本模块的关键。从简单程序入门,激发学生兴趣;从学生实际生活出发,巧妙解决问题;从设置悬念中,提高课堂效率;从错误中总结经验,教会学生自己调试程序。
关键词:算法;兴趣;程序
算法与程序设计是高中信息技术选修课程之一,学习算法与程序设计就是要让学生了解并掌握如何使用计算机解决问题,尤其使学生进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用,这是学习本模块的关键。
那么作为计算机教师,我们如何才能教好这门课呢?下面是我在教学上的一些心得和体会。
一、 从简单程序入门,激发学生兴趣
《算法与程序设计》选用的程序设计语言是VB,我就从比较有趣的VB小程序开始,我从相关书籍上查找了一些现成的小例子,然后经过改进,给同学们演示。如幸运数小游戏,时间转换小程序,青蛙跳井,画同心圆等,看完这些学生是既兴奋又羡慕,个个都摩拳擦掌,跃跃欲试。我找了一些简单的小程序如计算圆面积、超市打折等,让学生自己练习,增强了学生的自信心。
二、 从学生实际生活出发,巧妙解决问题
算法来源于生活,是解决问题的策略和步骤的提炼,将算法融入生活,我们的课也会通俗易懂、多姿多彩。例如,在讲递归调用时,我由“从前有座山,山里有个庙,庙里有个老和尚给小和尚讲故事,讲什么呢?从前有座山,山里有个庙……”这个故事开始。相信这个故事我们都不陌生,这个故事有什么特点呢?就是故事里面又包含了故事本身,也就是说自己调用了自己,这与算法中的递归思想不谋而合。通过这个故事学生就很容易理解了递归的特点。
在学习多分支选择结构语句时,我没有采用书上宇宙飞船的例子,而是采用了根据时间计算星座的例子。中学生都比较热衷于星座,对此比较有兴趣,我编写了一个小程序,只要输入自己的生日就可以查出自己所属的星座。通过这类小程序,学生对算法不再惧怕,知道了算法并不是学会了一点用也没有,原来还可以解决好多实际问题的。
三、 从设置悬念中,提高课堂效率
“學贵知疑,小疑则小进,大疑则大进”,学生的积极思维,往往是从疑问开始的,疑问是拨动学生思维的琴弦,有了疑问,才会进一步思考、探索,激起求知欲。教师若能根据这一心理特征,以问题引路,故布疑阵,创设矛盾,设置悬念,则会强烈地激发学生探求问题奥妙的积极性,诱导学生由疑到思,由思到知。比如在教FOR循环语句时,我把Print Tab(10-i)后面的分号漏掉不写,虽然程序能够运行,但花形却不对。我故意一脸茫然的样子,让学生帮忙分析原因。
*
***
*****
*******
*********
***********
Private Sub Command1_Click()
Dim i As Integer定义i为整型变量
Dim j As Integer定义j为整型变量
For i = 1 To7 Step 1
Print Tab(10-i);
For j = 1 To 2*i-1 Step 1
Print “*”;
Next j
Next i
End Sub
这就激起了学生的疑惑,引发了学生的思考。发现问题的学生就像哥伦布发现新大陆一样的兴奋,原来是漏掉了一个小分号导致的。我又把分号变成逗号,花形又不一样。我随机引出Tab(n)函数及分号的作用。经过这一次的陷阱,学生对此处知识记忆牢固,再犯同样错误的几率大大缩小了。
这样通过设疑激疑,引导学生将程序完善,最终解疑,不仅可以激发学生的学习热情,调动他们的学习积极性,其解决问题后的成就感也会油然而生。
四、 从错误中总结经验,教会学生自己调试程序
学过、钻研过程序设计的人都有同样的感受,很多情况下,调试程序的过程会比程序编写的过程更为困难,更加费时。任何人都不敢说,他编的程序是百分之百正确的,哪怕是比较有经验的程序员。几乎每一个稍微复杂一点的程序都必须经过反复的调试、修改,最终才完成。所以说,程序的调试是编程中的一项重要技术。很多老师都深有体会,学生编写程序只能是纸上谈兵,一上机运行就错误百出,自己又不会查错,一节课下来,老师是马不停蹄的修改学生程序,同时这也打击了学生学习算法的积极性。
我教给学生调试程序的步骤为先手写,再自查。在上机房之前我已经布置好任务,学生可以先把程序写好,先在纸上检查一遍,自己真的检查不出什么错误,可以让同学帮忙再检查一遍。这样就可以把一些基本的书写错误扼杀在上机之前。例如标点符号错误或者漏掉标点。其次是上机调试,上机调试的过程中还要检查自己输入的是否和书上或自己写的一致。在这个过程中学生更容易发现一些语法错误,例如关键词与变量名之间没有空格;语句不完整,IF没有END IF,FOR没有NEXT;对象名或属性不正确等。再次看运行结果,如果结果正确,证明调试成功。如果不对,再仔细检查比对,设置断点,逐语句跟踪程序,监视变量值等。也可进行组内讨论,真解决不了,再来请教老师。每次上完课我都会专门记下学生容易犯的错误,以便在以后上课时进行总结。
通过以上训练学生不但能自己调试程序,同时也帮助了他们理解程序,尤其是到循环结构以后,这种作用就更明显了,而且这种能力完全可以迁移到今后的学习和生活中去。
“世上吴难事,只怕有心人”,只要教师用心去教,学生用心来学,算法并不难。新课程对教师也提出了新的要求,我们也要不断学习,吸纳新知识,不断更新自己的知识,成为一个能够适应现在社会发展的教师。还要不断的反思,提高自己的教学水平。
参考文献:
[1]普通高中信息技术课程标准(实验)[S].人民教育出版社,2003.
[2]中小学信息技术课程指导纲要(试行)[S].
[3]算法与程序设计教师教学用书[M].教育科学出版社,2005.
作者简介:
王新珍,江苏省徐州市,江苏省徐州市丰县顺河中学。endprint