为何要有“生活算法”一

点赞:17937 浏览:81291 近期更新时间:2024-02-21 作者:网友分享原创网站原创

当你只有一把锤子时,所有东西看起来都像钉子

Whenyouheahammer,everythinglookslikeanail


从个人的经历来说,勉强可以算是程序员出身了.1987年就开始用计算机了,第一次接触的是Laser-310.为了准备全国师范院校的计算机程序设计比赛,我被选派参加了集训队.这才学会for-to、if-then等命令,同时还学会了高精度计算、阶乘等不同的算法.虽然比赛最终没有如期举办,但我的收获却很大.在活动中体会到了计算机程序、算法的魅力,明白了好程序可以完成很多原来不能想象的事情.

1989年开始当教师教起了计算机课.当时以中华学习机为主的计算机中只有固化的编程语言,不会语言就不能使用计算机.先是BASIC语言,然后是LOGO语言.在年的编程教学中,慢慢地体会到了编程教学是有不同层次的.

第一种层次是“命令”的教学,也就是主要目标是计算机的语句、命令.前苏联学者伊尔肖夫说过:“计算机程序设计语言是第二文化”.计算机开机后只有BASIC、LOGO语言,那么教学的主要内容就是学会编程的命令和语句.

第二种层次是“程序设计”的教学.也就是教学的主要目标是程序设计.学会了命令、语句以便设计程序.而程序设计的核心是算法.因此,在教学中如何强调算法成了计算机课堂教学自然而然的事情了.

第三种层次是“思维”的教学.经历多年的程序设计后我渐渐地体会到:真正的大师善于从思维中把握算法的核心,用计算机实现一种算法首先是一种思维的实现.因此,在计算机课的学习中更重要的内容成了如何渗透算法思维,如何将思维融合于生活中,而不是掌握某一种或几种固定的“算法”.

“命令——算法——思维”目标对于一个成长中的计算机/信息技术教师来说有着重大的影响.在工作、生活中寻找、形成解决问题的“算法”逐渐形成了一种思维方式,一种程序员的思维方式.

当我们手里有一把锤子时,最喜欢的是把世界上所有的东西看成钉子.都愿意用手中的锤子去试一试身边的生活.感受到了算法的好处,也会经常倾向于把算法思想广泛地应用到各类问题,而信息技术课中就恰恰有这样的问题,并且还不少.

1999年前后,课程名称改为“信息技术”,教学内容由程序设计逐步改为计算机操作,算法渐渐淡出.课堂教学转变成以Office办公软件的操作为主的教学活动.今天看来,这种变化是课程经历的新一轮的螺旋上升过程.不过,经历了一轮实践后,许多信息技术教师又重提“老”问题:信息技术课仅仅是教会学生掌握软件操作吗?

当我们对计算机教学中的诸概念追根溯源,从认知心理学角度分析所谓的“操作”,可以发现“简单操作”也是由一个个更细微的动作按一定次序组成的.更复杂的问题解决步骤往往是由更细节、更具体的下一级解决方法组成.这其中的“次序”与程序非常类似.在程序员眼中,计算机的操作与程序设计在一定方面是相互对应着的(如图1).

为何要有“生活算法”一参考属性评定
有关论文范文主题研究: 关于计算机的论文范文数据库 大学生适用: 硕士论文、学院论文
相关参考文献下载数量: 27 写作解决问题: 怎么撰写
毕业论文开题报告: 论文提纲、论文小结 职称论文适用: 杂志投稿、中级职称
所属大学生专业类别: 怎么撰写 论文题目推荐度: 经典题目

其中程序设计中的命令、语句对应着计算机中的操作、方法与技巧,都是相对具体的,对比整体都是“更微小”的,是组成后续要素的基础.程序对应着操作工具、解决问题的过程与步骤,都是强调有一定的次序性.程序设计算法对应着技术应用的“算法”.程序设计中的“思维”对应着技术应用的最终目标——问题解决.如果把前面的称为计算机程序设计算法,后面的这一种,为了应用技术、操作工具来解决生活中的问题而出现的行动规则,则称之为“生活算法”.

两种不同情境下的“算法”既有很多相似,也存在着很多不同.

两者都有算法思维的特点,两者都有模块化特征;两者都需要有可行性,计算机算法需要能编程实现,生活算法需要在生活中能一步步实施;两者都是由抽象到具体的,程序设计算法是按照“算法——程序——命令”逐级分开,生活算法是可以按“算法-过程-操作”逐级展开.学习程序设计算法需要从程序入手,掌握生活算法也需要从解决问题的过程、步骤入手,基础都是有程序性.

也可以看到两者有更多的不同.程序设计算法是直指程序设计的,最终能够编程在计算机上实现的.生活算法直指使用工具解决问题的,需要一步步在生活中去真正地解决某个问题;程序设计算法可以使用某种计算机语言,或者伪代码、流程图来表达.但针对技术工具的生活算法更倾向于人的自然语言表达;程序设计算法相对严谨、抽象,生活算法相对宽松,但针对不同的问题情境会有不同变化.

当我们在反复辨析“生活算法”与程序设计算法到底是不是同一个概念的时候,却发现这种解释对于信息技术课来说,是一种有意思的思考.因为有了“生活算法”,现在的信息技术课中一些所谓不相关的部分联系到了一体(如图2).

中小学信息技术课的主要内容,如画图程序、字处理Word、WPS、多媒体PowerPoint、Flash等不同应用软件的学习,除了部分特有概念外,都是从单击、双击、保存、打开等简单操作开始的.若干简单操作组成了操作方法,再由操作方法逐步复杂化,向利用工具解决问题发展.从简单操作到方法,从操作步骤到程序,从过程到应用工具的行动规则,再到问题解决,形成了操作工具的“生活算法”系列.对应着的就是更抽象的、程序设计中的“命令——程序——算法”体系.

从生活算法的角度来看,现有的教学内容其实是一个有结构的整体.无论是软件应用部分强调其操作性、程序性,还是计算机编程方面强调程序设计、强调算法,都是在培养学习者的思维能力、问题解决能力.

程序设计算法——生活算法.是面对着钉子时,我们手中的锤子呢,还是一块砖头?或者它们都一样?