高中数学课程标准(实验稿)与算法的教学,本文主要内容关键词为:算法论文,课程标准论文,高中数学论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
在《普通高中数学课程标准》(实验稿)(以下简称《标准》)中,把算法初步与统计、概率一起列为必修的5个模块中的数学3,约12课时.相对统计、概率而言,算法对高中数学教师是一个较新的内容,对这一部分如何理解并实施教学,是一个值得关注与探讨的课题.
一、算法教学的重要性
算法是执行特定计算的有穷过程,是解决一个问题的程序步骤.算法并不是什么新东西,以算法为核心的解决问题的思想自古有之,在中小学数学课程中也随处可见其“身影”,如解方程组的消元法.数学大师吴文俊先生认为:贯穿在整个数学发展历史中有两个中心思想,一是公理化思想,另一个是机械化思想.数学机械化思想的核心就是算法,即把数学问题代数化,然后构造算法,通过计算机来试探、尝试、证明,从而发现、证明规律.例如:微分方程孤立子解的获得,就是利用这一思想方法,首先在计算机的荧光屏上发现的,还有著名的四色定理的证明等.中国古代的数学体系就是构造性和机械化的算法体系,曾对数学的历史发展做出了巨大的贡献.不仪如此,而且吴文俊先生在《几何定理的机器证明》中谈到正是中国古代数学的算法化思想启发了他,转而研究几何定理的机器证明.他的工作彻底改变了这个领域的面貌,开创了国际自动推理界先驱性的研究,被数学界称为“吴方法”.他的成果先后被5位菲尔兹奖获得者引用,有3位的获奖工作还直接使用了吴文俊的方法.吴文俊先生认为:计算机为数学提供了一个有力工具,使得教学可能像其它自然科学一样,跻身于科学实验的行列.随着以计算机为代表的信息技术的迅猛发展,算法的重要性与基础性日趋突显,因为应用计算机解决实际问题的核心是软件主计,而软件设计的关键往往是选择或构造一个合适的算法.二十一世纪是一个信息化的世纪,不懂计算机的人被视为文盲,基于此了解和学习算法具有重要性和基础性.
二、对算法教学的理解
从《标准》第26页对算法的说明和建议中可以看出,算法的学习主要包括三个方面:算法概念;算法描述(如:框图);算法在计算机上的实现.下面,分别从这三个方面谈谈笔者的理解.
1.算法概念
算法的学习在整个算法初步的12课时的教学中具有中心地位.算法概念往往是描述性给出的,如:算法是执行特定计算的有穷过程,如果单纯从这种描述性的概念出发实施教学,往往会使学习者处于“盲人摸象”的困境中,因此,应从算法的多个方面实施针对性的理解学习,如结合算法的五个基本特性,算法评价及我国古代算法案例等.
从算法在计算机上的实现来看,算法具有五个基本特性:有穷性,确定性,可行性,输入和输出.(a)有穷性是指算法动态有穷,即当执行一个算法时,不论何种情况,在经过有限步骤后,这个算法一定要终止.(b)确定性:算法中的每条指令(每一步)都必须是清楚、无二义性的.(c)可行性:每条指令(每一步)都充分基本,原则上可由人仅用笔和纸在有限的时间内也能完成.(d)输入:具有0个或0个以上由外界提供的量.(e)输出:产生一个或多个量.吴文俊先生说:“数学问题的机械化,就要求在运算或证明过程中,每前进一步之后,都有一个确定的,必须选择的下一步,这样沿着一条有规律的、刻板的道路,一直达到结论.”这里强调了算法的有穷性和确定性,而算法的另三个特性:可行性、输入、输出则是蕴含的.
算法评价涉及到四个方面:正确性,运行时间(时间复杂度),运行占用的空间(空间复杂度)和简单性.在具体教学中应关注算法的正确性和简单性,而时间复杂度和空间复杂度可作为课外学习的参考内容。
2.算法描述
算法描述可采用自然语言、框图(流程图)、N—S图等来完成,《标准》建议使用框图.如:求n个数a[,1],a[,2],a[,3],…,a[,n]的最大数,其算法的三种描述方法如下:
自然语言方法:
①将A(1)赋值给max,2赋值给k;
②比较k与n,若k大于n,转向⑤;
③比较A(k)与max,若A(k)大于max,A(k)赋值给max;
④k+1赋值给k,转向②;
⑤输出最大数max,终止.
框图(流程图)描述如图1.
N—S图描述如图2.
算法描述有助于理清算法的逻辑,发现算法中的缺陷,提高算法的效率.不仅如此,算法描述的训练还能加深对算法概念的理解和认识,因此算法描述是算法学习中的主要内容.
3.算法在计算机上的实现
算法在计算机上的实现是算法学习、算法描述的一个重要延伸.《标准》中建议在条件允许的学校,应使算法能在计算机上实现.
算法在计算机上的实现其实就是选择一种程序设计语言,把算法转化为相应的源程序,然后上机运行、调试.算法实现对硬件的要求不高,关键是选择哪一种程序设计语言,笔者认为其原则是:选择学习者熟悉的或易于掌握的程序设计语言,如BASIC语言、C语言.这一部分的教学任务,数学老师可与学校的机房管理员或计算机老师协作完成.
三、案例与中国古代算法
问题:求两整数a,b的最大公约数.
最大公约数(最大公因数)是数论中的一个基本问题,也是高中学生熟悉且有能力解决的问题,下面给出数论中的辗转相除法的算法框图和中国古代算法更相减损术的思想与框图.
辗转相除法框图如(图3):
更相减损术:在中国古代数学中,将最大公因数称作“等”,其思想是“以少减多,更相减损,求其等也.”如用更相减损术求24和15的最大公因数,其步骤为:(24,15)→(9,15)→(3,6)→(3,3).(图4)给出了用更相减损术的算法框图.
比较一下上面两个算法,容易看出更相减损术比辗转相除法更简单、高效,编程实现更为容易.在上面这个案例的学习中,要让学习者体会中国古代算法的一个重要特点:“寓理于算”,如更相减损术的原理,在更相减过程中整数值逐渐变小,而最大公因数不变.
四、结论
算法的学习不仅有助于提高学生的逻辑思维能力,而且有助于提高学生的数学应用意识和解决实际问题的能力,激发学生的学习兴趣,更重要的是算法的学习是与当前科学技术的发展趋势相符合的.