算法与程序设计教学之我见
2008-12-29王爱艳
中国信息技术教育 2008年2期
作为高中信息技术选修模块之一,算法与程序设计强调在必修模块的基础上关注技术能力与人文素养的双重建构。通过本模块的学习,能使学生在原有基础上进一步体验算法思想,并能初步使用一种程序设计语言编制程序,实现算法解决问题。因此,学习算法有利于培养学生的逻辑思维能力、实践能力和理性精神,有利于提高学生解决问题的程序化能力。现根据本人的教学实践对算法与程序设计教学做一些探讨。
教学实践中遇到的问题
1.将算法与程序设计混为一谈
学习一种程序设计语言,就是学习这种语言的规则,即学习语法、语义、程序及其他一些规定,这里涉及的是严格的定义、严格的书写方法。而学习算法是学习设计过程,内容主要是描述功能、书写方案、证明正确性、试算和修正,设计是一项具有创造性的工作。算法与程序设计两者有着根本性的区别。
2.学生差异问题
就算法与程序设计而言,学生处在同一起跑线上,以前都没有学过,似乎不存在学生基础差异问题。但事实上还有很多因素会造成差异,比如学生接受知识的能力、努力程度、自信心等,特别是个人兴趣对学习这门课程起着很关键的作用。
3.课时安排紧张
算法与程序设计中包括两大块内容,一是算法部分,一是VB程序设计基础部分(当然本人并不是要将学习算法与程序设计区分开来)。这两大块内容每一块都至少要学一学期,但现在却把这两块内容压缩在32课时内,教学难度可想而知。
教学过程中应注意的问题
1.要处理好算法与程序设计教学的关系
程序是计算机的血液,没有程序的计算机就像一个空的珠宝盒。然而,在教学实践中教师很容易将程序设计和算法混为一谈。因为算法是程序设计的基础,算法不正确即便程序能运行也得不到正确的解。而程序设计重在设计,不是重在编写程序。另一方面,进行算法的教学又不能完全脱离计算机程序设计。这是因为在算法设计出来时要通过编程并且运行程序进行验证,这就要借助于程序语言来实现算法。当然,编写程序代码时还要理解一些在程序设计语言中的语法结构。例如要表示两个数a和b相乘,如果用VB语言的话,中间的*号则不能省略。又如语句“s=s+I”中的“=”表示的不是相等,而是赋值过程。
因此,学生学习程序设计一般应选用一种语言作为工具,学程序设计就必须学程序语言,学习时两者是不可能截然分开的。我们应当把程序语言作为一种载体、一种学习程序设计的工具,把教学重点落在算法的思想方法上,以培养学生的逻辑思维能力和创新精神作为教学目标。
2.要注重教学策略
(1)创设鲜明问题情境的策略
可能对部分学生来说,编写程序很枯燥。单纯的程序编写的确有些枯燥,特别是编那些纯数学的循环、排序、递归。但如果让枯燥的程序算法转变为贴近生活、有趣味性的实际问题,则效果就大不一样。因为,鲜明的问题情境有利于唤起学生已有的知识经验,激发学生充分调动和整合自己的认知经验,寻求多样化的解题方法。
比如在讲VB程序基础时,可以从学生感兴趣的QQ系统登录