您现在的位置: 安徽高中数学 >> 文章频道 >> 论文交流 >> 正文
  [推荐]算法要教得简单明了         ★★★ 【字体:
算法要教得简单明了——对两堂算法课的反思
作者:佚名    文章来源:本站原创    点击数:    更新时间:2007-12-17    
课程改革将算法首次引入了高中教材,但要求并不高,总共只设置了一章的内容,约12个课时.然而绝大多数中学教师对这部分内容的教学不知所措,认为是一个挑战.为什么会出现这样的情况?我认为主要是老师们在此之前没有接触过这部分内容,不是内容本身难,而是不知而畏难.在“中学数学核心概念与思想方法教学设计”课题活动中,有幸听到两堂关于算法概念的新授课.授课教师都具有较好的教学素质,他们所在的学校和地区在全国的教育水平也都很高.但是,这两堂课却没有较好地实现教学目标,算法的概念不但没讲清楚,甚至还让学生更糊涂了;算法的思想也没得到很好的体现.两堂课给学生造成了算法很难、很复杂、不知学什么的感觉.看来,类似这样的现象在全国应该是普遍的.下面结合这两堂课谈一点感想.

    一、教师应先理解算法的概念,才能让学生了解算法的概念

    随着时代的发展,算法的概念也在不断发展.到目前为止,我们还很难给算法下一个确切的定义.但在现代数学中,人们对算法概念是有共识的,那就是教材所言,“可以用计算机来解决的某一类问题的程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成.”所以,教学应该围绕教材对算法概念的描述展开,关注以下问题:

    1.算法与解法既有区别又有联系

    初学算法的人大多会误认为算法就是研究解法的优劣.如果在算法概念的教学中不首先解决这一问题,那么学生的学习目标就不明确.我们应该让学生清楚,算法可表现为解决某一类问题的程序或步骤,它可以不呈现问题的结果;而解法主要是针对某一个具体问题的步骤,其程序性也不一定强,按教学习惯它还必须给出结果.如果把教学生解法比喻为“授之以鱼”,那么教学生算法就是“授之以渔”.不过,虽然算法与解法有区别,但二者也有联系.算法是建立在解法基础之上的,是在某个具体问题解法过程的分析之后,归纳出的解决一类相关问题的程序或步骤;如果一个具体问题具有代表性,其解法又具有程序性,那么这样的解法也能体现算法思想.所以,在了解了算法和解法的关系后,就应将教学重点放在解决一类问题的算法上,而非仅仅适用于某个具体问题的解法上.例如,两堂课中所举的“带羊、狼、蔬菜过河”、“交换两杯液体”等问题的解决,就不具有一般意义,教学也没能由此归纳出一类问题的算法.又如,其中一位教师提供的解方程x22x30的两种算法:

算法1:第一步,移项,得:x22x3                   

第二步,①式两边同加1并配方,得:(x1)24          

第三步,②式两边开方得:x1=±2                     

第四步,解③得:x3x=-1

算法2:第一步,计算方程的判别式并判断其符号:△=224×316 > 0

第二步,将a1b=-2c=-3代入求根公式,得:x3x=-1

从教材的概念来看,上述两种所谓的算法只能算作两种解法.因为它们还不具有一般意义,不能以此来解决其他一元二次方程,要上升到算法还需要作进一步的归纳.另外,教材所介绍的算法是可供计算机执行的,而上述两种解法还不能够直接编程供计算机执行.

    如果在算法概念的教学中,不能让学生对算法与解法的关系有一个了解,那么必然会影响学生对算法的认知.能否用一些简单的例子,引导学生去思考算法与解法的区别呢?这里以高斯求和问题来加以说明.

  已知S12399100,求S的值.

  高斯的解法:S=(1100)+(299)+(398)++(5051

         101101101101

         50×101

         5 050

  高斯同学的解法:S11

          S2S123

          S3S236

                        ……

                    S99S98994 950

          SS100S991005 050

    学生都知道高斯的解法优于其同学的解法.在此基础上,可以告诉学生,高斯的解法虽然简单,但每一步都不相同,并且让计算机去做都不容易,还需要进一步加工,所以不适宜进行算法研究;而高斯同学的解法虽然麻烦,但每一步做的都是同一件事“累加”,并且这种重复的事让计算机做起来都很简单,对于其他同类问题也一样,所以适宜进行算法研究.由此可见,算法并非是研究解法的优劣,而是供计算机执行的,在解法基础上归纳出的可解决一类问题的程序或步骤.这样的例子应该很多,例如教材中解二元一次方程组的例子.通过这些例子还可以让学生明白,算法是怎么来的(从解决具体问题的过程中抽象得到的),学算法有什么用(提供了解决某一类问题的一种方法.通过分析算法,可以提高概括能力和逻辑思维能力,发展有条理的思考和数学表达的能力).

2.教学应紧扣教材,研究的问题以数学问题为主,避免将算法概念泛化

在两堂课中,教师为了激发学生的学习兴趣,列举了“带羊、狼、蔬菜乘船过河”、“交换两杯液体”、“给出商品价格范围猜准确价格”等问题,虽然这些问题中也蕴含着算法的思想,但它们与学生所学数学知识联系不大,不属于教材算法研究的范畴.在学生建立算法概念时,教师举这样的例子,容易使学生受这些例子的影响,不利于形成教材所给的算法概念.所以,如果我们不将研究的内容限定在所学数学知识范围内,那么算法的概念就会被泛化,与教材的算法概念就会相去甚远,教学和学习都不易把握.

    3.了解算法概念需要一个循序渐进的过程

    两堂课中,教师都试图让学生全面了解算法的概念,并将算法概念的了解作为教学的一个重点.但是,这一目标都没能实现.出现这种情况的主要原因,在于教师对算法概念教学的定位不准,教学操之过急.由于目前对算法还没有一个统一的定义,教材是根据整章教学内容的实际,给出了一个描述性的定义,但它并非是算法的准确定义.所以,算法定义并不是本节课教学的重点.作为算法的第一节内容,教材有必要首先给出一个算法的概念,这有利于学生的认知.但是,学生由于受所学知识的局限,对算法概念的了解有一个循序渐进的过程,教师不能只通过一节课就让学生全面了解算法的概念.本节课只需立足让学生清楚,算法是解决某一类问题的步骤,而且能在有限步之内完成,并初步认识到这样的步骤是明确有效的.而对概念中涉及到的用计算机解决问题,以及程序或步骤的明确性和有效性的全面认识,可以在程序框图、算法语句和上机实践中逐步认识.

    二、把握教学要求是教学的关键

    两堂课基本上都没有达到预设的知识目标,关键是与授课教师对《课程标准》提出的教学要求的把握有关.

1.对实现《课程标准》提出的教学要求要遵循循序渐进的原则

《课程标准》提出的教学要求是,“通过对解决具体问题过程与步骤的分析,体会算法的思想,了解算法的含义.”但是,这并不意味着在本节课就要让学生完全体会算法的思想和了解算法的含义.而两位授课教师却都照搬《课程标准》的教学要求,将其作为本节课教学所要达到的知识目标.本节课是否能达到这一目标呢?显然是不可能的.

《课程标准》是站在算法这一章的高度提出上述教学要求,它是整章教学的一个总体要求.要达到这一要求,需要通过一章教学的这样一个过程.如果教师想用一节课就达到这一要求,那么就会欲速不达,使简单的算法课变得很难很复杂.所以,教师在确定一节课的教学目标时,不仅要依据《课程标准》提出的要求,而且还要将这些要求细化到每一节教材的实际中.具体地讲,应根据本章内容,分三个阶段来逐步达到《课程标准》所提出的教学要求:

1)在算法概念的教学中,可以将体会算法思想的目标设置为:通过对解决具体问题过程与步骤的分析,初步认识到算法可以提供解决某一类问题的一种方法;可以将了解算法含义的目标设置为:通过对解决具体问题过程与步骤的分析,认识到算法是解决某一类问题的步骤,而且能在有限步之内完成,并初步认识到这样的步骤是明确有效的.

2)在程序框图的教学中,可以将体会算法思想的目标设置为:通过对解决具体问题程序框图的分析,进一步认识到算法可以直观地提供解决某一类问题的一种方法,并初步形成用算法思想解决问题的意识;可以将了解算法含义的目标设置为:通过对解决具体问题程序框图的分析,认识到算法不仅是解决某一类问题的明确有效的步骤,还是解决一类问题的明确有效的程序.

3在算法语句的教学中,可以将体会算法思想的目标设置为:通过对解决具体问题算法语句的分析,认识到算法可以为计算机直接解决某类问题提供一种方法,并进一步形成用算法思想解决问题的意识;可以将了解算法涵义的目标设置为:通过对解决具体问题算法语句的分析,认识到算法不仅是解决某一类问题的明确有效的步骤或程序,还必须是可供计算机执行的,即算法是可供计算机执行的解决一类问题的明确有效的步骤或程序.

上述三个阶段的教学重点,都应该放在对算法思想的体会上.对算法概念的了解,也是为了帮助学生进一步体会算法思想.

    2.不能随意拔高教学要求

《课程标准》提出的体会算法思想的要求并不高,教材只定位在让学生通过对解决具体问题过程与步骤的分析,能归纳和概括出解决同类问题的一种算法.但是,两堂课都存在着将此要求拔高的现象.例如,其中一位老师就提出了如下教学目标:

    “通过课本具体问题,让学生经历解题的过程,体会由于思考问题的角度不同,同一个问题也可能有多个算法.”

    显然,这位老师已经将教学要求提高到研究算法多样性的高度.不要说这是算法的第一堂课,就是算法整章的教学也难以达到研究算法多样性的目标.从实际教学可以看出,两位教师都试图引导学生去研究问题的不同算法,但结果都只停留在研究具体问题的不同解法上.因为,一方面,此时学生还弄不清算法与解法的关系;另一方面,当面对不同解法时,学生已养成评价它们优劣性的习惯,当面对不同的算法时,教师又当如何引导学生评价其优劣性呢?所以,根据课程设置的实际情况,高中算法教学只能立足于让学生认识到解决某些问题存在算法,并能找到其中一种算法,而不必引导学生去研究算法的多样性,更不能去研究不同算法的优劣.

    三、突出思想方法和培养能力要有侧重点

    从两堂课的教学设计和实际教学情况来看,授课教师都想竭力去突出思想方法,培养学生的能力,这是值得肯定的.但是,突出思想方法和培养学生的能力不能面面俱到,更不能不切实际.如果想用一堂课来突出尽可能多的思想方法,培养尽可能多的能力,结果各种思想方法和能力都不会得到落实,还会由于重点不突出使原本简单的课变得很复杂.例如,其中一位老师就提出了如下教学目标:

    “通过本节的学习,使我们对计算机的算法语言有一个基本的了解,明确算法的要求,认识到计算机是人类征服自然的一个有力工具,进一步提高探索、认识世界的能力.”

虽然本节课的内容与这位老师所提出的目标有一定关系,但是,这样的目标太空太泛,甚至不切实际,在一堂课的教学中难以落实.事实证明,这堂课的教学也的确没能达到上述目标.所以,每一堂课在突出思想方法和培养能力上要有侧重点,应根据教材内容选择主要的思想方法和能力作为教学目标.在算法一章中,教学都应该根据每一节教材内容的实际和《课程标准》的要求,在突出的思想方法上,主要以让学生不断地体会算法思想为主;在能力培养上,应立足于通过分析解决具体问题的算法,提高概括能力和逻辑思维能力,发展有条理的思考和数学表达的能力.这样,学生学习的目标和重点才明确,教和学的困难才会变小,通过一章的教学,学生这方面的思想方法和能力才会逐步得到提高.

    四、例题的选择和处理要恰当

    两堂课让学生感到算法概念模糊、内容复杂、学习困难的原因,还与授课教师对例题的选择和处理不当有关.

    1.例题的选择要得当

两位教师在课堂上所选的例题,除了没有遵循《课程标准》要求,脱离教材实际,造成概念泛化外,还不同程度地存在例题的数量偏多、难度偏大等问题.其根本原因,就是教师对教材研究不够,没有领会教材精神,使教学脱离了教材的实际.

本节教材,共选择了两道例题,一题是解二元一次方程组,一题是判断一个大于1的整数是否是质数.解决两道题所涉及的知识和技能都是过去学生掌握的,题目的难度都不高,数量也不大.应该说,完全可以在一堂课中仅通过这两道题就可以将算法思想充分体现.但是,与教材相比,两位老师所选择的例题就明显偏多、偏难了.在本节课中,一位教师除选择了教材的两道例题外,还另外选择了五道例题;另一位老师选择了六道例题,其中只有一道是教材的例题.他们所选的例题还基本上脱离了教材的实际,使得教学密度过大,算法教学变成了解题教学,课堂上师生完全疲于分析各道题的解法,无暇顾及对算法的提炼.课堂教学并不是题目越多越难,学生的思想方法就越能得到训练.题目不在多,关键是要通过例题尽可能地将思想方法讲透,让学生得到领会.这就要求我们,在教学中应该充分尊重教材,特别是在对教学要求把握不准时,更应该充分尊重教材.

    2.创设问题情景要利于学生关注内容本质

    近年来,课堂教学盛行创设问题情景,总的来说这对学生的学习是有益的.但是,我们也清楚地看到,不少教师不顾教学内容的实际,为创设情景而创设情景,好像是不创设情景就跟不上课程改革的潮流.结果,数学课向实用数学、趣味数学偏移,甚至远离了学科的基础和内容的本质.在这两堂课中,也存在这样的现象.例如,教材有这样一个问题:

    任意给定一个大于1的整数n,试设计一个程序或步骤对n是否为质数作出判定.

    一位教师在此基础上,通过情景的创设,给学生提出了下列问题:

    新的世纪不知不觉又过去了七年,今年2007年,明年2008年北京奥运.20072008都是合数,那么随着时间流逝,哪一年是第一个质数年?

    这位教师创设的问题情景至少存在如下不足:(1)本题完全没有必要与北京奥运会扯上关系;(2)要回答这个问题不仅要回答“一个大于1的整数是否是质数”,还要回答与本节内容无关的“大于2008的质数中哪个最小”;(3)如果要引导学生用教材的方法判断一个大于2008的整数是否是质数,教学很难操作.

    又例如,教材还有这样一个问题:

    通过解二元一次方程组

归纳出解一般的二元一次方程组的算法步骤.

    另一位教师在此基础上,利用“鸡兔同笼”问题创设了下列情景:

    一个笼子里有一些鸡和兔,现在知道里面一共有35个头、94只脚,问鸡和兔各有多少只?

    这位教师创设的问题情景也至少存在如下不足:(1)本题的解法不止一种,其中最简单的解法是算数方法,而如果学生用算术方法来解,教师就很难引导他们归纳出解决一类问题的算法步骤;(2)在这样的问题情景下,学生可能就会将注意力主要集中在设未知数列方程组上,而对二元一次方程组的算法步骤的关注就不够.

    显然,两位教师刻意地创设上述情景,并不利于引导学生去关注算法的学习,对学生了解算法概念和体会算法思想也都是不利的.所以,课堂教学应根据教材内容的实际来创设问题情景,这样才能有利于学生关注内容的本质.

3.例题的处理要有利于学生的学习

    两位教师在对例题的处理上也有不妥之处.主要表现在:

1)在例题的先后顺序上,没有按照由易到难的顺序布局,使得学生一开始就将过多的精力放在了对具体问题本身的解法上,没能自始至终地关注算法思想;同时,这样的布局也不利于促使学生保持高水平的学习.

2)在例题教学时,教师对具体问题的算法分析不具有示范作用,使得学生在初学时就没有形成一个操作程序,当独立分析一个问题的算法时便无从下手.我们在教学中,应该努力地使简单的问题容易化,使容易的问题具体化,使具体的问题可操作化.在算法教学中,教师不仅不能人为地将教材中简单的问题复杂化,还要尽量通过引导和加工使问题变得容易;在进行算法分析时,教师应培养学生养成从具体到一般进行分析归纳的习惯,帮助学生形成算理分析——具体问题的解法——一般问题的算法的操作程序.

相信,以上几个方面的问题若能得到改善,教师就不会感到算法难教了,学生对算法教学也就会感到简单明了易于操作了.最后,我认为教算法与教其他内容一样,在教学之前,教师应该对整体内容有所了解,先勾画出整体教学的框架,再具体描绘每一节课的教学方案.对于算法教学,教师在走上讲台之前,可能要先解决好三个问题:什么是算法?我们要教给学生什么?怎样教?

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    数学竞赛与素质教育
    魅力无穷的梅森素数
    揭秘江苏海安高级中学"另类县
    算法教学的思考
    积极筹谋 探索前进
    课标引领教学 实践加速改革
    突出探索应用,注重能力培养
    虚心学习,积极探索,务实推
    例谈对使用高中数学人教版教
    改进教研模式 促进课程改革
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    请加入群:10734838 皖ICP备07501466号 安徽省泾县中学 站长:空心菜