设为主页
加入收藏夹
    试教通讯    课程·教材·教法    中小学教材教学    人教网期刊    出版参考
当前位置:首页>>人教期刊>>试教通讯>>高中数学>>普通高中2006/4(总第18期)数学(A版)专辑(一)
 

广东省深圳市深圳中学  郭慧清

算法是数学及其应用的重要组成部分,是计算科学的重要基础。随着现代信息技术的飞速发展,算法在科学技术、社会发展中发挥着越来越大的作用,并日益融入社会生活的许多方面,算法思想也正在成为普通公民的常识,成为现代人应具备的一种基本数学素养。

一、课程目标与内容安排

(一)课程目标

算法是高中数学课程中的新增内容,其思想是非常重要的,但并不神秘。例如,运用消元法解二元一次方程组、求最大公因数等的过程就体现着算法。在本章中,学生将学习算法的初步知识,并通过对具体算法案例的分析,体验算法在解决问题中的重要作用,培养算法基本思想,提高逻辑思维能力,发展有条理的思考与数学表达的能力。

具体来说,通过本章的学习,应当使学生达到以下目标:

1.通过对解决具体问题过程与步骤的分析(如二元一次方程组求解等问题),体会算法的思想,了解算法的涵义。

通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程。在具体问题的解决过程中(如三元一次方程组求解等问题),理解程序框图的三种基本逻辑结构:顺序、条件分支、循环。

2.经历将具体问题的程序框图转化为程序语句的过程,理解几种基本算法语句──输入语句、输出语句、赋值语句、条件语句、循环语句,进一步体会算法的基本思想。

3.通过阅读中国古代数学中的算法案例,体会中国古代数学对世界数学发展的贡献,增强民族自豪感。

(二)知识结构

1.知识框图

2.课时分配

本章包括3节,约需12课时,具体内容和课时分配如下(仅供参考):

1.1 算法与程序框图   约4课时

1.2 基本算法语句    约3课时

1.3 算法案例      约4课时

阅读与思考──割圆术

小结                     约1课时

(三)内容安排

1.算法至今没有一个严格的统一定义。因此,教科书通过概括解二元一次方程组的步骤,以“在数学中,算法通常是指按照一定规则解决某一类问题的明确和有限的步骤”来介绍算法的涵义。在此基础上,又通过质数的判定、用二分法求方程的近似解这些学生熟悉的问题,分析其算法步骤以帮助学生进一步理解算法的基本涵义并渗透算法思想。

2.在“算法的涵义”中,是通过解决具体问题的算法步骤来表达算法的。这种形式所呈现的算法通俗易懂,但是不够准确,算法的基本结构也不清晰。因此,教科书通过以框图形式表示“质数的判定”的算法,介绍了算法的基本逻辑结构(顺序结构、条件结构、循环结构),以及用程序框图表示算法的方法,使学生认识到程序框图表示的算法步骤更直观,也更准确。

3.顺序结构、条件结构、循环结构是算法的三种基本逻辑结构,理论上任何复杂的算法都可以用这三种基本逻辑结构来实现。框图是理解和表达这三种基本逻辑结构的最好方式,同时,这三种基本逻辑结构也是程序框图的构成要素。所以,教科书将这三种基本逻辑结构的教学与程序框图的教学结合起来,不仅降低了这三种基本逻辑结构的学习难度,也为学习程序框图的画法提供了前提条件。因此,三种基本逻辑结构与程序框图也就成了算法内容的教学重点。

4.为了帮助教学中突破程序框图的画法这一算法教学难点,教科书结合“用二分法求方程的近似解”这一算法,详细介绍了程序框图的画法,并总结了画程序框图的以下步骤:

第一步:用自然语言将算法步骤表达出来;

第二步:将每一个算法步骤所包含的逻辑结构找出来并用框图表示,得到该步骤的程序框图;

第三步:将所有步骤的程序框图用流程线连接起来并加上终端框,得到表示算法的程序框图。

5.当今世界,越来越多的事情交付计算机完成,而计算机完成任何一项任务都需要算法,因此算法是计算机科学的基础。但是,用自然语言或程序框图描述的算法计算机是无法“理解”的,所以我们还需要将算法用计算机能够理解的语言表达出来,这就是通常所说的程序与程序设计,所用的语言称为程序设计语言(programming language)。程序设计语言是由一些有特定涵义的程序语句构成,与程序框图中介绍的算法三种基本逻辑结构相对应。教科书介绍了输入输出语句 、赋值语句、条件语句和循环语句,虽就不同的程序设计语言有不同的语句形式和语法规则,但基本结构是相同的。基于这样的原因,教科书所介绍的语句形式及程序稍加修改就可以变为某些具体的程序设计语言形式的程序而在计算机上加以执行。

6.与其他数学内容的学习相比较,算法学习的一个最大的特点就是操作实践性强。因此,教科书在安排教学内容时,在1.3节专门安排了“辗转相除法”“秦九韶算法”与“进位制”三个算法案例,而且大多数算法知识的安排都是结合具体例子进行的。例如:用“二元一次方程组的解法”介绍算法的涵义;用“质数的判定”的程序框图介绍程序框、流程线与基本逻辑结构;以“用二分法求方程的近似解”介绍程序框图的画法;用“计算1+2+…+100的值”介绍直到型与当型两种不同的循环结构与循环语句;等等。

二、编写意图

(一)强调算法基本思想

中学阶段安排算法的学习,除了学习必要的算法知识,更重要的是使学生接受算法思想的熏陶,而不是以学习多少算法知识为目标。因此,在编写教科书时,选取最基本的算法知识作为教学内容,如算法的涵义、三种基本逻辑结构(顺序结构、条件结构、循环结构)、程序框图及其画法、五种基本算法语句(输入语句、输出语句、赋值语句、条件语句、循环语句)和简单程序的编写,而像数组、函数、转向语句等等在程序设计中使用频率较高的知识均未作介绍,其目的就是不让学生把注意力放在更多的算法知识的学习上,而应该更多地关注算法思想的提炼。

例如,在介绍循环语句时,教科书介绍了DO型与WHILE型两种不同的循环语句,但没有介绍FOR型循环语句,原因是用FOR型循环语句实现的循环结构,均可用DO型或WHILE型循环语句代替。比如设计“计算1+2+…+100的值”的程序时,用DO型或WHILE型循环语句编写的程序分别是:

     

以上两个程序分别清楚地体现了算法中所包含的直到型循环结构与当型循环结构,并且均有控制循环的条件对应条件结构,这表明循环结构中一定包含条件结构,否则程序将进入“死循环”,这对于理解算法涵义中算法步骤是“有限”的是很有帮助的。但如果用FOR型循环语句实现算法,虽然程序要简单,但不利于体会算法中的循环结构。而且,学会了前两种循环语句,对后一种循环语句的使用将是水到渠成的问题。

算法的学习让学生认识到“有计划按步骤”地完成一件事情的好处,同时也形成有条理地思考和数学化地表达思考的能力。因此,教科书在分析算法案例时,本身就遵循了“写出算法步骤、画出程序框图、编制程序”的步骤,这对于学生形成算法思想是很有帮助的。

例如,教科书给出的用“辗转相除法”求两个整数的最大公约数的算法案例的完整过程如下:

1.算法分析

从上面的例子可以看出,辗转相除法中包含重复操作的步骤,因此可以用循环结构构造算法。

算法步骤如下:

第一步:给定两个正整数mn

第二步:求出m除以n所得的余数r。

第三步:m= nn =r

第四步:若r =0, 则(mn)=m;否则返回第二步。

2.程序框图

程序:

(二)体现算法应用的广泛性

算法思想贯穿于整个高中数学课程。可以毫不夸张地讲,每一个数学问题的解决都对应着一个算法,研究数学问题的解法必然要研究算法(很多时候只是人们忽略了从算法的角度去观察、思考问题)。所以用以研究算法的内容十分丰富,同时算法在实际问题中也具有广泛的应用。因此,教科书在例题的选取中充分注意体现与已学内容联系的广泛性,比如二元一次方程组、一元二次方程的解法,用二分法求方程的近似解,数列、递推数列求和,函数值的计算,三条线段能否作成三角形,等等,力求通过这样的联系使学生认识到算法思想的重要性,并逐步能够应用算法思想解决一些实际问题。

随着学生数学学习的不断深入,学生可以得到更多解决实际问题的算法。例如,学习了空间向量后,对如何“求点P到平面的距离为d”,可以写出下面的算法步骤:

第一步:在平面α上确定一个点A,作出向量;

第二步:求出平面α的法向量n(如建立了空间直角坐标系可以用4(2)的方法求),进而得出平面α的单位法向量

第三步:得出

又如,学习了定积分后,可以画出下面的程序框图来表示用定积分的定义计算定积分的近似值的算法:

(三)重视数学文化

中国古代数学以算法为主要特征,取得了举世公认的伟大成就,是数学文化的重要组成部分。比如,中国古代数学著作《九章算术》中介绍了下述“约分术”:“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。”意思是说:若分子、分母全是偶数,则把分子、分母分别置于两边,然后由较大的数减去较小的数,并辗转相减,直到两边所得的数相等,就用这个数(等数)来约分。这个数就是分子和分母的最大公约数。

“约分术”实际上给出了求任意两个数的最大公约数的一种算法,被后人称为“更相减损术”。教科书在介绍“辗转相除法”的同时介绍了上述算法,这种方法与欧氏算法异曲同工,本质上是相同的。

除此处,还介绍了中学生容易理解的中国古代数学中的割圆术、多项式求值的秦九韶算法等等。教科书安排这些内容,不仅丰富了算法案例,同时还让学生体会到中国古代数学对世界数学发展的贡献,增强民族自豪感。

三、教学建议

(一)通过案例引导学生体会算法的涵义

算法在中学数学课程中是一个全新的内容,教科书只对它的涵义作了描述,而没有给出明确的定义。因此,理解算法的涵义一定要从具体实例出发,使学生明确算法实际上就是解决问题的一种程序性方法,它通常指向某一个或一类问题。在教学过程中,力求使学生学会用自然语言叙述算法,用程序框图表示算法,尽可能通过算法语句编写程序使计算机执行算法。

(二)突出教学重点,突破教学难点,体会算法思想

虽然自然语言描述的算法步骤、程序框图和程序都可以表示算法,但是它们在中学算法课程中的地位是不一样的。教学时,切忌将算法课变成程序设计课,应该抓住用程序框图表示算法这个核心突出教学重点,突破程序框图的画法这个难点,理解算法的三种基本逻辑结构和基本算法语句的对应关系,通过具体算法案例所蕴涵的算法思想,重点培养学生利用算法解决问题的意识。并明确自然语言描述的算法步骤、程序框图和程序是不同形式的算法,它们体现了算法逐渐“精确”的过程。

(三)充分关注算法思想在其他数学知识中的渗透

在算法教学时要注意将算法与其他数学内容联系,也要关注将算法思想渗透到后续的高中数学课程的学习中去,鼓励学生尽可能地运用算法解决相关问题。

例如,在概率教学时,我们有以下的例子:“天气预报说,在今后的三天中,每一天下雨的概率均为40%。 这三天恰有两天下雨的概率是多少?”

我们可以利用整数型随机数设计算法估计所需的概率,以下是算法步骤:

第1步:确定随机模拟试验的次数n,并令m=0。

第2步:利用计算器或计算机上的随机函数RAND(  )产生一个0~9的随机数并赋值给x。若x∈{1,2,3,4},则将1赋值给a,否则0赋值给a

第3步:用RAND(  )产生一个0~9的随机数赋值给y,若y{1,2,3,4},则将1赋值给b,否则0赋值给b

第4步:用RAND(  )产生一个0~9的随机数赋值给z,若z∈{1,2,3,4},则将1赋值给c,否则0赋值给c。这样就产生一个随机三位数xyz

第5步:判断a+b+c=2是否成立,若成立则将m的值增加1。重复上述第2步至第5步,直至产生n个随机三位数。

第6步:由频率得出三天恰有两天下雨的概率的近似值。

以上算法步骤表示的算法若用程序框图或程序表示出来,则可以发现算法中包含了算法的三种基本逻辑结构,这样做对于后续新知识、新方法的学习及巩固算法思想均有好处。

(四)算法教学应尽量使用信息技术

算法是实践性很强的内容,只有通过学生自己的亲身实践,让学生亲自去解决几个算法设计的问题,才能使学生体会算法的基本思想,学会基本的逻辑结构和对应的算法语句。因此,在教科书编写过程中,提倡通过实例让学生体会和理解算法的涵义,通过模仿、操作、探索,经历“写出算法步骤、画出程序框图、编制程序、上机验证”的全过程,并由此落实算法教学内容。

在教学中,如果没有“上机验证”这个环节,学生对算法就不会有真切感,就很难体会算法设计的全过程,他们自己也很难知道自己设计的算法正确与否。因此,有条件的学校应鼓励学生尽可能上机尝试。当然,上机操作只是教学的一个环节,切忌将每一堂算法课都变为上机操作课,既没有这个必要也不能因此而忽略了算法教学的重要意义。

现在计算机程序设计的语言种类很多,较为通用的有Basic、C、Cobol、Delphi等等。由于Basic语言具有简单、易学等特点,教科书使用了类似Basic的语句形式和语法规则来介绍算法语句。在实际教学中,教师可以根据学校的教学条件,选择恰当的程序语言并参考有关介绍Basic或QBasic(Basic语言的一种)的书籍进行编写程序的教学。同时,教师还应使学生认识到,利用某种程序设计语言写出表示算法的程序,只是为了让计算机可以执行算法。算法学习中最本质的东西不是编写程序,而是程序框图、程序所表示的算法。

 
【上一篇】
【下一篇】