首页 理论教育 算法的概念

算法的概念

时间:2023-02-26 理论教育 版权反馈
【摘要】:本课的相关论文《我备〈算法的概念〉一课所遭遇的两难》发表于《中学数学》2010年第4期;此课例获2012年上海市中小学学科德育优秀学科教学课一等奖。通过该例的多种解法来体会算法,从而引入算法的概念,并给出本章中所限定的几个可行运算以及算法的特点。指出算法的不唯一性以及算法的优化。在引例之后立即给出算法的概念,还是等学生通过更多的实例感受后再给出?

情况简介

本课是2009年10月的一节市级调研课。都说概念课难上,尤其是对于教材新增内容,像《算法的概念》这样的课更是摸不着头脑。不过这是公平的,我觉得难上的课,别人也觉得难上。当时,我们学校还没有使用新教材,所以这节课也是我首次用新教材的第一次教学尝试,想挑战一下自己。备课的过程断断续续持续了一个月,查资料、整理思路、设计线索等等。最终我自认为交了一份比较满意的答卷,并萌生了做关于数学文化课题的念头。

本课的相关论文《我备〈算法的概念〉一课所遭遇的两难》发表于《中学数学》2010年第4期;此课例获2012年上海市中小学学科德育优秀学科教学课一等奖。

文化教育价值

1.纯粹的本质:

虽然算法的概念一段话语言表述较长,而究其本质为按步骤(有限步)地解决问题。

2.历史性:

中国古代数学以算法为特点,继承下来了许多优秀算法思想。古代数学也给我们遗留了许多优秀的算法案例。

3.哲学的思辨:

在一个鸡兔同笼问题中,通过多种不同的方法解决,在不同方法中寻找共性,即个性与共性的统一。

4.人格教育:

对中西数学发展概况了解,做到正确地认识自我。

教学设计

教学目标:

知道算法的概念;

了解算法的主要特点;

了解算法的三个主要逻辑结构;

了解中国古代数学与西方数学发展的特点;

在计算机技术迅猛发展的今天,认识到历史所赋予的使命。

教学重点与难点:

算法的概念;

算法的主要特点。

教学过程:

1.引入部分

计算多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值,并统计所做的计算的种类及计算次数。

2.算法概念与典型例题

例1:鸡兔同笼问题(求解二元一次方程组)

一群小兔一群鸡,两群合到一群里,要数腿共48,要数脑袋整17,多少小兔多少鸡?

解法一,假定都是鸡,由可求得7只兔10只鸡;解法二,设未知数列方程组,法A加减消元、法B矩阵变换、法C行列式(略)。利用行列式法写出一般的二元一次方程组的求解思路。通过该例的多种解法来体会算法,从而引入算法的概念,并给出本章中所限定的几个可行运算以及算法的特点。

算法的概念:

一般地,对于一类有待解决的问题,如果建立了一套通用的解题方法,按部就班地实施这套方法就能使该类问题得以解决,那么这套解题方法是求解该类问题的一种算法。

可行的运算:①变量附值;

      ②数值的加、减、乘、除、乘方、开方运算;

      ③判断两个数的大小或相等。

算法的特点:①有限性;②确定性;③可行性;④有输入、输出。

说明:此时可借用例1来体会算法的概念与特点。

例2:斐波那契数列

f1=1,f2=1,fn=fn-1+fn-2(n≥3),

(1)计算并输出f4和前4项和S4;(2)计算并输出f100和前100项和S100

说明:第(1)小题用顺序结构给出算法。第(2)小题需要在教师的引导下用循环结构,并用自然语言、填空的形式来完成算法的表述。接着用程序框图,以填空的形式来完成“计算并输出f100”算法的表述。从而借用例1、例2来总结算法的几种主要表述方式以及三个主要逻辑结构。

程序框图

算法的表述:自然语言、程序框图等。

三个主要的逻辑结构:顺序结构、条件结构和循环结构。

3.回顾与鼓舞

(1)广义的算法

通过“农夫运狼、羊、菜过河”的智力问题指出:广义地说,算法就是做一件事情的步骤或程序。

(2)秦九韶算法

此处回到“引入部分”的多项式求值问题。介绍秦九韶算法——将多项式变形为f(x)=x{x[x(x(x+1)+1)+1]+1}+1,再统计一下计算当x=5时的值时,需要的计算次数,仅需4次乘法和5次加法运算。指出算法的不唯一性以及算法的优化。

(3)中国古代算法案例

介绍中国古代算法的代表人物——南宋秦九韶算法、魏晋刘徽割圆术等;介绍中国古代有关算法的著作——《孙子算经》、《数术九章》等。

(4)中西数学发展概况

中国古代数学发展主要在算法方面;西方数学发展的特点在于形成了公理化思想与给出了形式化定义。如,同样是极限,刘徽割圆术中的“割之弥细,所失弥少,割之又割,以至不可割,则与圆和体,而无所失矣。”蕴含了朴素的极限思想,而西方却发明了“ε—N”定义。我们现在学的数学绝大多数都是西方数学。自明朝起科举制度开始奉行八股文,大大削减了数学内容,以至于中国数学走向衰败。

(5)吴文俊院士对中国数学发展的期望

提及现年90高龄的吴文俊老先生,37岁获国家自然科学一等奖;2000年获国家最高科技奖。他的贡献之一是将几何定理的证明转化为代数,再编成计算机程序,让计算机来实现几何定理的证明。他把这一研究方向命名为“数学机械化”。他在《荣耀中华》的一档节目里说了这样一段话:我觉得很自豪。我觉得将来的数学应该走古代中国数学道路,而不是西方道路,这是我总的见解。过去体力劳动机械化,我们没有份,结果我们一落千丈了,处处挨打了,现在脑力劳动机械化,你不能错过这个机会,错失这个机会,那么永世不得翻身。我对数学机械化,是寄予厚望了。

(6)鼓舞

要让中国的数学走出衰败的阴影,我们认识到历史所赋予的使命。让我们来为那些优秀的中国古代算法思想戴上“机械化”的光环,让他们——中国古代算法思想,在数学发展的历史长河里永不陨落、永远闪耀!

4.作业布置(略)

教学设计说明

在进行这节课的教学设计时,哪里该凸显数学文化?又该怎样凸显数学文化?这两个问题着实费了我不少脑筋。在教学设计时遭遇到了好几次两难。

1.用谁来引入课题?

对于课的引入我不想照本宣科。用章的引言部分来引入,若说得过于简略,恐怕学生对吴文俊院士的数学机械化不了解,不能起到激发兴趣的作用;若花些时间来解释一下吴文俊院士的机械化,则又有喧宾夺主之味,且不能直切主题。

在使用“农夫运狼、羊、菜过河”还是“多项式求值”作为引例上,我曾陷入两难。前者从学生熟知的智力问题入手,容易激起学生的学习兴趣,较后者更易于体会算法的概念;而后者因秦九韶算法而更具历史魅力。由于前者与教学参考资料上所提到的本章中所限定的三个可行运算不相匹配,所以我决定将它放在课的后半段,到时用它来提一下广义的算法。

最终我采用了“计算多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值”引入本课。请学生统计一下需要几次加法、几次乘法运算。这样的安排至少有这些好处:①选择这样一个更数学化的问题,不与教参上所提到的三个可行运算违背;②提醒学生感悟算法的概念;③为后面介绍秦九韶算法以及弘扬中国古代优秀算法思想埋下伏笔。

2.引例后要不要立即给出算法的概念?

在引例之后立即给出算法的概念,还是等学生通过更多的实例感受后再给出?如果立即给出,或也可像书上一样简单提一下一元二次方程、二元一次方程组的求解步骤,那就是单刀直入。但我总觉得这样有些泛泛而谈,若要学生自行感受算法的概念恐怕还需要更具体的实例与操作。所以我考虑在课本的例1“斐波那契数列”之前增加一个例题,同时为了更凸显中国古代算法的特点,我选择了“鸡兔同笼问题”,再由此问题引出一般的二元一次方程组的算法,而不至于造成缺乏普适性的尴尬。

引例之后,通过“鸡兔同笼问题”请学生继续体会什么是算法。事实上学生们能够想到用小学“假定”的方法以及中学列二元一次方程组的方法。我想都操作一下。对于二元一次方程组的求解先后分别体会了“加减消元(代入法)”、“矩阵变换”、“行列式”(略)算法。对于行列式的算法,在我随后给出的一般二元一次方程组的算法中详细板书。这样做的好处有:1)选择“鸡兔同笼问题”,为后面介绍中国古代数学发展特点埋下伏笔;2)通过对具体实例的多种操作,多提供给学生感悟算法概念的机会;3)使用前一章刚学的矩阵与行列式的算法,体现了充分利用教材安排的科学性;4)由特殊到一般,体现算法可解决“一类问题”。

3.课本例题“斐波那契数列”究竟该如何处理?

课本上对于“斐波那契数列”一例要求计算并输出f20和前20项和S20。课本直接用自然语言来表述了循环的设计构想,那么究竟这节课上要不要直接给出循环的思想,另外,课上究竟要不要出现程序框图呢?

考虑到学生在高一学过信息技术,引入程序框图应该无大碍。为了让循环的思想自然引入,也为了让两种算法表述做到自然衔接与过渡,我对此例做了一些小小的改动:(1)计算并输出f4和前4项和S4;(2)计算并输出f100和前100项和S100。这样处理的好处如下:1)第1小题采用顺序结构,若直接迁移至第2小题会造成解题步骤的冗长,这样便自然地引入循环的思想;2)第2小题通过程序框图能更直观地体会循环结构,并可顺带指出三个主要的逻辑结构:顺序、条件及循环结构。

4.是否需要讲解西方数学发展特点?

中国古代数学发展主要集中在算法上。无论是中国古代的筹算、珠算、九章算术,还是现代吴文俊院士的数学机械化,应该说这节课正是弘扬我国对算法研究和运用具有悠久历史、优良传统和丰硕成果的大好时机。那么西方数学发展的特点说还是不说,明朝时中国数学开始走向衰败说还是不说?

考虑算法内容的特殊性,为了让学生认识到历史所赋予的使命,也为使教学更富有艺术性,我打算在课的最后用十分钟的时间来简单介绍中西数学发展的概况。这样安排的好处是:1)向学生介绍明朝时中国数学开始走向衰败、西方的公理化思想及形式化定义在中学数学教材中扮演举足轻重的角色,做到客观地认识、分析与评价自我;2)介绍吴文俊院士的数学机械化,以及老先生在“荣耀中华”节目中的一段话,让这十分钟成为整堂课的华彩段,将整堂课推向高潮。

5.究竟采用怎样的课堂教学形式更好?

究竟采用怎样的课堂教学形式,讲授式、探究式或讨论式?有句话说内容决定形式,形式应服从于内容。对于算法的概念这节课,我决定以讲授为主、探究为辅。安排设计一些小转折,以做到师生间及生生间的互动。

事实是这样的,当我仅给出引例,就问有没有体会出算法的概念,而他们却一脸愁容的时候;当我和学生一起完成例1后,他们中的个别说出“一步一步”的时候;当我问及例2(2)自然语言表述算法中的一步该填写什么,他们积极回答“将N+1赋予N”的时候;当请他们用程序框图尝试例2(2),而他们紧锁眉头、手中的笔在学案稿上写了又涂的时候;当我提到“农夫运狼、羊、菜过河”,他们兴奋不已的时候;当他们听我介绍吴文俊的数学机械化发出赞叹的时候;当我说到历史使命,读到他们眼中闪烁的光芒的时候,我知道互动无处不在。

课堂反响很好,我再一次感受到做一名中学数学教师的幸福。回想起我当时参加的第四期上海市双语教师资质培训,来自澳大利亚的Bonny对我们说过的话:再枯燥的内容,你总可以想一些办法让它变得更好。更何况“算法的概念”是那么富有浓厚的数学文化内涵。

课例点评

徐老师设计的《算法的概念》这节课,极具数学功力,并凝聚了她的创造力。这节课有以下几个特点:

1.高位设计整课结构

本节课的立意较高,与其他的课不同,徐老师的立意不仅仅是对算法的概念进行教学,而是让学生感受到什么是算法,并且让学生了解中国古代数学的特点以及现代中国数学家用算法的思想进行的开创性的数学成就,从一个更高层面设计数学课堂教学,将数学的育人功能充分地体现。

2.创意设计教学过程

从课的导入的设计:“计算多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值,并统计所做的计算的种类及计算次数”和“鸡兔同笼问题”,就可发现,徐老师希望通过学生亲身体验,唤醒已积累的实际经验,唤起他们对算法的感受,因为有些学生在信息科技的课上已学习过算法的概念,师生共同努力将经验提炼出算法的概念即可;徐老师的创新设计点在后续的教学过程,将导入的问题在介绍“秦九韶算法”中,将函数解析式右边的多项式变形为f(x)=x{x[x(x(x+1)+1)+1]+1}+1,再统计计算当x=5时的值时需要的计算次数,从而引出了算法的不唯一性和算法的优化问题;不仅前后呼应,而且充分利用导入的问题开展教学,使得导入与内容的关联性更突出。

3.关注数学思想方法

虽然,由于内容的关系,徐老师教学时以讲授为主、探究为辅,但无论是问题的设计,还是教学的过程中,徐老师都非常关注学生的数学思维,关注数学的思想方法。如对“鸡兔同笼问题”,徐老师启发学生利用“加减消元(代入法)”、“矩阵变换”、“行列式”等算法解决问题,特别突出了“行列式”算法,目的是让学生体会教材安排的科学性、由特殊到一般体会算法可解决“一类问题”。对“斐波那契数列”问题的设计,徐老师为突出数学的思想方法,修改了课本上的设计;使学生通过程序框图更直观地体会循环结构,并顺带指出三个主要的逻辑结构:顺序、条件及循环结构。

总之,徐老师对这节课的教学设计,突出了数学教学的育人功能,关注数学思想方法,问题链的设计符合学生的实际,具有一定的新意。

上海市教委教研室 黄华(特级教师)

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈