《高中数学新课程标准》增设了算法初步的内容。算法的引入,在中学数学界引起了强烈反响。赞成者与不赞成者都大有人在。赞成者认为,时代在发展,教学内容也应该适应形势的需要,增设算法,是教育面向世界、面向未来、面向现代化的体现,是历史的必然。不赞成者认为,这些内容一些教师接受起来尚有一定困难,更难以为中学生所接受,况且对后续内容又没有多大影响,不如放到大学里讲授更合适。 笔者也一直在关注着这一问题,思想上经历了从不理解到基本接受,进而到认可的过程。通过不断学习和在教学实践中的探索,头脑中逐渐形成了对有关问题更加清晰的认识。 1 课程设置的必要性 算法具有广泛的应用价值,有着深远的历史渊源。随着计算机技术的飞速发展,数学的应用范围也必将更加广泛,算法的引入也就成了时代发展的必然。 1.1 算法应用的广泛性 算法对学生来说并不陌生。小学的四则混合运算所遵循的先乘除、后加减的规则,括号的处理规则,都是学生最初接触到的算法实例。初中学习的方程组的解法等,也是算法的典型体现。高中学习的求函数零点的二分法,更成了算法的精典。 其实,算法的应用远不止于此。例如:数列的求和、质数的判定、最大公约数和最小公倍数的求法、定积分的求值等,都涉及到算法。同时,其他学科也离不开算法。 1.2 算法的历史背景 算法有着悠久的历史。中国古代的数学叫做“算术”。术,即方法,因此“算术”也就可以认为是“算法”的别称了。在上个世纪,小学的“数学”仍然叫“算术”,初中以后才叫“数学”。“算术”的叫法,一直沿用到上个世纪末。 我国从11世纪到14世纪,出现了一批著名的数学家和许多经典数学著作,如贾宪的《黄帝九章算法细草》,杨辉的《详解九章算法》、《杨辉算法》等。割圆术则是求π值的优秀算法。其中一些方法在现代仍然是极为优秀的算法。 在国外,公元前2100年左右,美索不达米亚人已有了乘法表,其中有六十进制的算法。公元前2000年左右,古埃及已有将乘法简化为加法的算法。最近几个世纪,求定积分近似值的梯形法、求方程近似解的牛顿切线法等,都是学生进一步学习中要遇到的典型算法。 由此可见,算法的思想由来已久,只不过具体在计算机上实现是最近几十年的事情罢了。 1.3 算法的文化背景 由于中国古代数学以算法为主要特征,因此我国传统数学是以构造性与机械化为其特色的算法体系。而西方古代数学则以演绎推理为主要体系,其典型代表是欧几里得的《几何原本》。由于中国传统数学体系的特殊性,产生了一些特殊的算法,其中一些流传至今并在现代得到了广泛的应用。这一点肯定是我们的祖先所始料未及的。 在中学数学中设置算法内容,对于继承和发展我国传统数学,弘扬我国文化,培养学生爱祖国、爱民族的优良品德,都有着十分重要的意义。 1.4 算法的现代应用价值 随着科学的飞速发展,计算机已成了人们生活中不可缺少的重要工具。计算机工作靠的是程序,而程序的灵魂就是算法。有了正确的算法才能有正确的结果,好的算法可以大大提高计算机的工作效率。算法是计算机科学的核心,是人脑转化为“电脑”的具体体现。计算机科学大师Knuth说:“计算机科学无非是算法的科学”,这充分说明了算法的重要性。 为研究几何定理的机器证明方法,我国著名数学家吴文俊院士发明了一种算法,在世界上得到高度评价,被称为“吴方法”。他将现代算法理论与中国的传统算法相结合,极大地推动了算法的发展。 1.5 算法的思想价值 算法是对解题方案的准确而完整的描述。算法并不是容易理解和掌握的内容。在中学学习算法的主要目的,在于让学生了解算法所具有的一些特殊的思想方法和技巧,并不要求学生系统的掌握所有内容。这些思想方法和技巧主要体现在以下几个方面。 1.5.1 Step by Step的思想 算法的实质是将人的思维过程处理成计算机能够一步一步执行的步骤,进而转化为一步一步执行的程序。这种处理问题的方式,学生以往有一些经验,如教师对某些题型总结的较为固定的解题步骤。不过这种经验并没有得到应有的升华。学习了算法后,学生才能把这些知识提升到新的高度来认识。 1.5.2 逻辑选择的思想 教材中介绍了条件结构和IF…ELSE…THEN语句,这对学生来说是较新的思想。这之前学过的分段函数与这种思想较为接近,但这种思想并不是只能用来处理分段函数。正是有了这种方法,才使得计算机有了“思维”能力,或称之为逻辑判断能力。学习这种思想对于学生了解计算机人工智能有很好的作用。 1.5.3 循环的思想 人们最怕机械重复,因为重复枯燥乏味。而计算机则擅长重复。这种重复体现到程序中就是循环。不难想象,如果没有循环,计算机还能干什么!在教材中出现了几个典型的循环问题,如二分法、数列求和、判定质数、辗转相除法、秦九韶算法等。这种思想方法在其他内容中很少使用,即使用到也因为手工计算过于繁琐而不愿用或不能用。 1.5.4 递推的思想 怎么计算1!+2!+3!+…+20!?这要设置一个变量S记录和,还要设置一个变量n记录项数。阶乘怎么办?每一项都单独计算显然太麻烦。注意到每一项Tn与前一项Tn-1的关系是Tn=n×Tn-1,因此从第二项开始每一项都可以由前一项乘以n得到。这就是递推。由于学生还没有学习数列,这种思想方法还是初次涉及。 在这个程序中要实现递推,就要用到n=n+1,S=S+T,T=T*n等语句,这对学生来说也是很新颖的,刚刚接触时甚至会感到是不可思议的。 教材中还涉及了一些其他的思想方法及技巧,这里就不一一列举了。 《高中数学新课程标准》指出:“数学是人类文化的重要组成部分。数学课程应适当反映数学的历史、应用和发展趋势,……”由以上研究可知,算法是体现这些要求的非常好的载体。算法内容的设置,为高中数学贯注了新鲜的血液,同时也为广大数学教育工作者解放思想,摆脱陈旧观念的束缚,从而跟上时代步伐提出了新的要求。 2 教材编写探究 《高中数学新课程标准》是推动课程改革的纲领性文件,要在中学具体实施标准中的要求,还要通过教材。编写一套切实可行的教材,并不是一件简单的事情。下面以人教A版高中数学必修3(以下简称教材)的编排为例,结合在教学中的一些发现,谈点自己的看法,旨在抛砖引玉,与同行们切磋。不当之处,希望专家和同行们指正。 2.1 教材内容简介 教材通过一个学生熟知的实例,引入了算法的概念,然后分别介绍了用自然语言描述算法、用程序框图描述算法和用程序语言描述算法的方法,最后介绍了4个算法实例。教学实践表明,这种安排从整体上看是合理的和实用的,能较好地体现新课程标准的要求。 在程序框图一节,介绍了4种框(终端框、输入输出框、处理框和判断框),3种结构(顺序结构、条件结构和循环结构)。在算法语句一节,介绍了输入语句、输出语句、赋值语句、条件语句和循环语句,其中循环语句又分当型循环和直到型循环两种。在算法案例一节,介绍了4个具体案例。这些都是算法的核心内容,内容虽然不多,但是已能充分体现算法的实质及其思想方法。 2.2 对教材的建议 教材在编写过程中是费了一番苦心的。由于是第一次试用,有些细节显然还没有来得及细细推敲。在教学过程中,我们发现教材存在一些不足之处。 2.2.1 质数判定算法 在我市组织的数学新教材培训时,许多老师反映了这样一个问题:由于感到这部分内容较生疏,因而想事先准备准备,而每次都是看到教材第5页就打住了。打开教材不难发现,使许多老师每次都打住的第5页上,是一个判定质数的算法框图。通过研究发现,这个问题的设置有诸多问题。 (1)难度太大。笔者虽有多年的BASIC教学和编程经验,但在阅读此框图时花了几十分钟才基本弄懂。这对缺乏经验的教师来说,看不懂也就不足为怪了。这个算法本身难度就较大,加上教材介绍的方法中用到了一个flag变量,更使该算法晦涩难懂。 (2)出现的时机不对。这一内容出现在第2课时(或第3课时)的位置,这时学生对算法还处在一种朦胧状态,一下子出现这样一个难懂的框图,无疑是当头一记闷棍。如果能适当后移,做为最难的一个例题来处理,效果肯定要好得多。 (3)程序编写有误。上面算法框图的程序在教材第22页,是算法语句的最后一个问题,这样处理在时机上掌握的较好。遗憾的是课本上给出的程序有误,应该将程序中第12行的ELSE改为END IF,倒数第2行的END IF去掉。否则,在输入任何大于2的整数时,都没有结果输出。 进一步研究可以发现,程序中flag的主要作用是在n不是质数时提前退出循环,同时也为后面的输出提供依据。这种思路是好的,但却给师生造成了理解上的困难。其实,flag的设置并不是必需的。我们对这个算法进行了改进,程序和框图如下: INPUT n r = 1 d = 2 WHILE d <= SQR(n) AND r <> 0 r = n MOD d d = d + 1 WEND IF r = 0 THEN PRINT n;"不是质数" ELSE PRINT n;"是质数" END IF END
这里没有使用flag。循环由两个条件d <= SQR(n) 和r <> 0控制。如果是因为r=0退出循环,则说明某个d能整除n,从而n不是质数。若由于d>SQR(n)退出循环,则说明2~SQR(n)的整数都不能整除n,从而n是质数,此时r不会变为0。当n=2和3时,循环体不执行,因而r=1,也能得到正确的结果。改进的程序中判断部分由原来的11行减少为6行!我们给学生介绍了这种方法,学生感到比较容易理解。
当然,教材在此处安排这个算法,也许只是为了让初学者了解程序框图的结构,并不需要真正搞懂所涉及的算法。在上述的改进方法中,显然三种结构在框图中同样都有体现。因此,用此框图代替原框图作为一个范例仍不失其实用价值。笔者建议教材在修订时改用以上方法。
2.2.2 更相减损术
更相减损术是中国古代算书《九章算术》中的一个优秀算法,其作用是对分数进行约分,因此也称为“约分术”。教材称这是“求两个数的最大公约数的算法”是不妥的。教材中将原文“以等数约之”翻译成“则这个数(等数)就是所求的最大公约数”,明显有误。例如,12和18约掉2变成6和9,9-6=3,6-3=3,3-3=0,最后的等数是3,因此将得到“12和18的最大公约数为3”的错误结论。显然,正确结果应该是最后的等数再乘以约掉的2(约掉几个再乘上几个)。
事实上,更相减损术确实可以求最大公约数,不过要做一些改进。实际上,只要按照教材中的解释,去掉约2这一步,即不管两个数是否有公约数2,直接“更相减损”就可以了。这样做能保证最后的“等数”就是所求的最大公约数。原文中“可半者半之”,是指在约分时,先约掉2,使分子分母变小,这并不影响分数值,但在求最大公约数时就不可以这样了。
2.2.3 类BASIC语言
教材中出现了“类BASIC语言”的概念。笔者曾教学BASIC多年,先后用过BASIC、BASICA、Turbo BASIC、QBASIC、VB等BASIC语言的多种版本,还是第一次接触“类BASIC”的概念。惊讶之余赶紧上网搜索“类BASIC”,还真找到了。下载后安装,生成一个iBASIC的快捷方式。但运行之后却大为失望──教材上的程序基本上都无法运行,特别是循环语句。这时才明白:此“类BASIC”非彼“类BASIC”也。
教材中所谓的“类BASIC”,指的是类似BASIC语言的语句,而并不是一种真实的计算机语言!笔者认为,如果只教学生算法和语句而不上机实习,那就无异于纸上谈兵,不但学起来费力,而且即使死记硬背下来,也肯定记忆不牢,理解不深,更谈不上灵活运用。因此,教材最好能以基本的BASIC语句来分析算法,提供一种真实的语言环境,让广大师生能够验证自己的“成果”。这样,学生学起来省力,学习兴趣也会大大提高。经试验发现,教材中的程序都能在QBASIC中运行(有错误的除外)。
当然,我们让学生编程序,并不是要把学生培养成程序员,更何况教材涉及的语句有限,BASIC语言的功能也有限。也许正因为如此,有些教师提出,BASIC太落后了,最好换成其他语言。其实这是不必要的。我们的目的,是让学生掌握算法的最基本的思想方法和技巧,只要能编写一些简单的程序即可,不要对学生提过高的要求。BASIC语言是各种计算机语言中最好接受的一种,因此选用BASIC是明智之举。
2.2.4 GET函数
教材在34页用到一个“函数”:GET,其功能是取出一个正整数的右数第i位数字。据笔者所知,在BASIC语言的多种版本中都没有这个函数。在某些版本中,虽然有这个关键字,但其功能却并非如此。也许有人会说,可以用自定义函数。但是,稍有编程经验的人都能看出,t=GET a[i]这种格式是违反各种语言中函数使用惯例的(包括自定义函数)。这种做法,将学习者引入了歧途,因此是不可取的。
2.2.5 几点建议
(1)将第5页的框图改成一个浅显易懂的例子,或将其改成更易于接受的算法,或者加注释说明:此框图仅供观察框图的构成,暂不要求完全理解。
(2)去掉“类BASIC”的说法,提供一种真实的语言环境。
(3)补充对一些常用的算术运算符号和逻辑运算符号的说明。
(4)去掉所谓的GET函数及相应的例题和习题。
(5)纠正教材及配套教参中的一些错误。①知识性错误。如判断质数算法的程序、更相减损术的解释等;②印刷错误。冒泡排序法中的错误、程序提示信息中的中文引号;③答案中的错误。其中答案中的错误题较为突出,教师反映强烈,应广泛征求意见,全面纠正错误。
(6)优化一些算法。如质数判定算法、秦九韶算法中的框图、配套教参中一些拙笨的算法。
(7)将进位制案例移到信息课中,这样可以使进位制这部分内容保持相对的完整性。
(8)如果可能的话,增加数组变量。因为把xn写成x(n),学生并不难理解。增加数组变量后,可以实现排序算法、秦九韶算法和进位制算法的程序表示。但要适可而止,不宜搞得太难。
综观教材和与其配套的教参,我们的印象是:这是一个很有造诣的设计师设计的一个不错的建筑,遗憾的是使用的一些砖瓦不太合格。
综上所述,算法已深入到各行各业以及数学的各个领域。随着科学的发展,算法必将在未来的科学研究和日常生活中发挥越来越重要的作用。在中学学习一点算法的基础知识,对今后的学习是有益的。我们相信,经过广大数学教育工作者的共同努力,算法课程必将在中学发挥其特有的作用。
作品
高中各年级课程推荐
|
||||
年级
|
学期
|
课程名称
|
课程试听
|
|
高一 |
高一(上)、(下)同步复习
|
语文 | ||
英语 | ||||
数学 | ||||
数学(期中串讲) | ||||
数学(期末串讲) | ||||
数学拔高 | ||||
物理 | ||||
化学 | ||||
生物(一) | ||||
地理 | ||||
历史 | ||||
政治 | ||||
高中专项突破课
|
语文写作 | |||
英语阅读理解 | ||||
英语写作 | ||||
英语完形填空 | ||||
物理功和能量 | ||||
高二 |
高二(上)、(下)同步复习
|
语文 | ||
英语 | ||||
数学(理) | ||||
数学拔高(理) | ||||
数学(文) | ||||
数学拔高(文) | ||||
物理 | ||||
数学(期中串讲) | ||||
数学(期末串讲)(理) | ||||
数学(期末串讲)(文) | ||||
化学 | ||||
生物(一) | ||||
生物(二) | ||||
生物(三) | ||||
地理 | ||||
历史 | ||||
政治 | ||||
高三 |
高考第一轮复习
|
语文 | ||
英语 | ||||
数学(理) | ||||
数学拔高(理) | ||||
数学(文) | ||||
数学拔高(文) | ||||
物理 | ||||
物理拔高 | ||||
化学 | ||||
生物 | ||||
地理 | ||||
政治 | ||||
历史(韩校版) | ||||
历史(李晓风版) | ||||
高考第二轮复习
|
数学(理) | |||
数学(文) | ||||
英语 | ||||
物理 | ||||
化学 | ||||
地理 | ||||
高考第三轮冲刺串讲
|
语数英串讲(理) | |||
语数英串讲(文) | ||||
物化生串讲 | ||||
史地政串讲 | ||||
高考试题精讲
|
数学(理) | |||
英语 | ||||
化学 | ||||
物理 | ||||
2021高考研究2021高考策略(理) | ||||
2021高考研究2021高考策略(文) | ||||
Copyright © 2005-2020 Ttshopping.Net. All Rights Reserved . |
云南省公安厅:53010303502006 滇ICP备16003680号-9
本网大部分资源来源于会员上传,除本网组织的资源外,版权归原作者所有,如有侵犯版权,请立刻和本网联系并提供证据,本网将在三个工作日内改正。