来源:人民教育出版社 作者:佚名 更新时间:2006-06-01 04:31:37
如今,我们的生活方式正在被计算机和网络所日益改变着。更加重要的是,计算机不仅在形式上改变着我们的生活方式,而且从思维的深处改变着我们认识世界、改造世界的方式,对我们如何思考所面对的问题和如何解决问题都产生了深刻的影响。
21世纪是创意与构思的时代,有意识地培养学生的算法思想,帮助他们构建算法意识,以“算法的视角”看待和解决问题,必将有利于他们未来的发明与创新。
二、数学课程中算法的切入点
传统程序设计语言的教学往往存在一个弊端,即让学生过早地纠缠于程序的调试和实现,而任何一种程序设计语言通常都涉及到大量与技术问题相关的烦人细节,使得成功编译和执行程序需要花费大量的时间。事实上,每一种程序设计语言都是为特殊的目标而创建的,都是将算法转换为计算机程序的工具,因此它们之间的差别只是一件小事,算法才是关键所在。
在数学课程中,算法的教学更应该关注的是算法对问题的抽象过程和算法的构建过程。在这个过程中,使学生着重理解算法的“算理”,同时体会算法的程序性、明确性、有效性和有限性等特点,学习设计和描述算法以解决实际问题和与人交流,发展有条理的思维和表达能力,提高逻辑判断能力。因此,在数学课程中,应该尽力让学生在简单的计算机语言环境中学习算法的基本知识,而把有效设计、实现、调试和测试程序的任务留给信息技术等其他课程。从这个层面上说,在教学中应该把程序框图作为描述算法的主要工具。
另一方面,进行算法的教学又不能完全脱离计算机程序设计。这是因为,我们要讲的算法不是广义的解决现实中一切问题的算法,而是“用计算机来解决某一类问题的程序或步骤”。这就要求学生在设计算法时,调整以往的解数学题的思维方式,设计出明确、有效、有限、可以转化为计算机程序的算法步骤。同时,还要理解一些在计算机程序设计中所惯用的做法,主要是设置变量和赋值。例如,在求前100个正整数的和的“累加器”中,包含算法步骤“sum=sum+n”“n=n+1”,它们表示的不是相等,而是赋值过程,但很多学生在初学算法时都难以理解。为了解决这个问题,可以在进行三种基本逻辑结构的教学时,结合具体例子帮助学生学习如何设置变量和进行赋值。
通常,人们在用计算机解决问题时,先在头脑中构思一个算法(这类似于教科书中的用自然语言描述算法),接着画出程序框图形象直观地把算法表达出来,然后再根据程序框图编写计算机程序。我们进行算法教学,也是遵循类似的过程进行的。首先,让学生在理解算法概念的基础上,学习用自然语言描述算法,然后,教学生画程序框图表示算法,最后,让学生将程序框图转化为计算机程序,在计算机上实现算法。
笔者认为在上述算法教学的过程中,教学的重点是算法的三种基本逻辑结构,即顺序结构、条件结构和循环结构。这是因为,三种基本逻辑结构被认为是一个良好算法的基本单元,换句话说,要设计出一个结构良好、易读好懂的算法,就必须以三种基本逻辑结构为基础来构建算法。而且,三种基本逻辑结构中蕴涵了比较深刻的思想。顺序结构反映的是“step by step”的思想,即把解决问题的方法步骤化,一步一步地执行;条件结构反映的是“先判断、后执行”的思想,计算机区别于其他机械的能力就来自于算法做判断和按判断的结果行动的能力;循环结构蕴涵的是“递推”的思想,由于学生还没有学习数列,对这种思想方法还是初次接触。由三种基本逻辑结构顺序构成的程序框图,明确简练,结构分明,很容易改写成计算机程序,而程序设计语言中的赋值语句、条件语句和循环语句可以看成是三种基本逻辑结构的“机器化”。
教学算法的三种基本逻辑结构,结合程序框图的教学进行为宜。具体做法是:首先,结合程序框图,帮助学生理解三种基本逻辑结构的含义;然后,在设计一个算法的程序框图的过程中,选择合适的基本逻辑结构表示算法步骤。
下面,对算法的三种基本逻辑结构作一些具体的说明,供教师参考。
1. 顺序结构
顾名思义,顺序结构就是按照算法步骤排列的顺序,逐条执行算法。如图1所示,虚线框内是一个顺序结构,步骤n和步骤n+1是顺序执行的。顺序结构在计算机中表现为,计算机按照语句出现的先后次序执行的一串语句。一般来说,学生对顺序结构的理解没有困难。
2. 条件结构
条件结构是根据“条件”在不同情况下的取值选择不同的处理方法,可以在两种情况下选择一种(双分支),也可以在多种情况下选择一种(多分支)。
文章评论评论内容只代表网友观点,与本站立场无关!