算法优化要五问

时间:2022-01-02 15:45:50 教育 我要投稿

算法优化要五问

在《全日制义务教育数学课程标准》(实验稿)中输入关键词"多样化"进行搜索,多达19处,其中有8处是直接或间接针对"算法"提出的。而搜索"算法优化""最优化""优化"等关键词,却是一无所获。从本人所涉猎的书籍、资料中也可以看出,对二者阐述的材料的数量也是天壤之别。这说明我们的相关研究对算法多样化是偏爱有加的,却冷落了算法优化。

算法多样化和算法优化是一对"欢喜冤家",它们一个重在"多",是一个"散"的过程,另一个重在"优",是一个"聚"的过程。同时,它们又是密不可分的,算法优化是算法多样化的继续,是算法多样化的最终归宿。因为学生的思维存在着差异性、层次性,有些算法不具有普遍性,有些算法操作繁琐,有些算法思维层次偏低,这就需要我们的教师对这些算法要进行提升。正如叶澜教授所说:"没有聚焦的发散是没有价值的,聚焦的目的是为了促进学生发展。"但是,我们有些教师唯恐对算法进行优化会影响算法的多样化,会制约着学生思维的发展,会被听课者定位于"穿新鞋走老路",会和课标中的"应重视口算,加强估算,提倡算法多样化"相悖。于是,部分教师没有意识到算法优化的意义,没有理顺优化与多样化的辩证关系,没有掌握具体的优化策略,不考虑学生已有的知识水平和学生的切身感受,不让学生的经历观察、思考、交流、选择、体验、再思考、再选择、最后感悟等几个渐进的层次而硬性地去优化,出现了算法优化的表面化、形式化的现象。更有甚者,个别教师"开门见山",直接把"最优化"的算法呈现给学生,"亲自"帮助学生在多种算法中找出那些有助于提高学生的数学素养、促进学生学习可持续发展、接近数学本质的算法。本文仅把算法优化中五个常见现象及应对策略呈现给大家,请老师们在进行算法优化之前问问自己,是否思考了这样几个问题。

一问:是否关注学生已有的知识基础?

在算法优化的过程中,让每个学生掌握一种方法是优化的基础,让学生全身心的参与到优化过程中来是关键。但是,在实际的教学中,我们不难看到,仍有部分学生总是认为自己的算法是经过自己独立尝试、探索得来的,是自己劳动的"成果",所以不愿意放弃自己最初的方法。

例如:一年级下册的"十几减9"。

在研究13-9=?的时候,由于教师给学生留足了探究的时间,学生们出现了数一数、破十法、平十法、想加算减法和推理的方法共五种,下面是一个老师进行算法优化的课堂简录:(由于学生的回答太多,所以改成了叙述的形式)

老师安排四个同学为一学习小组,依照次序说一说五种方法的计算特点。然后是指名进行全班汇报。

师:我们已经研究了这五种方法,你喜欢哪种方法?

学生们的意见很不统一,五种方法都有学生说喜欢。

师:如果让你重新选择一种方法计算,你会选哪一种?为什么要选这一种?

由于方法一需要学生数一数,比较费时、方法五的逻辑性太强,有些孩子不能从实质上进行理解、方法四是采用逆向思维来解决问题,所以,这三种方法学生选择的较少,而平十法和破十法却倍受孩子们的青睐,大多数的孩子都选择了这两种算法。

五种方法都有学生选择,只是选的人数多与少而已。教师似乎已经估计到会出现这种情况,于是不紧不慢的又抛出一个问题。

师:用你喜欢的方法再算一题17-9=?

评析:教师此举旨在让学生通过再做一道题目,一是试图让部分学生根据对五种方法研究和交流而调整自己的思路,放弃自己最初的`方法而去重新选择;二是让部分学生比较前、后两种方法,通过两种方法的对比,感受到新选择方法的优势。但是,学生是否愿意买老师的"帐"呢?看看学生的反馈情况就知道了。

第二次交流的时候,已经没有学生选择方法一和方法五了,仅有几个学生选择想加算减的方法,大部分的学生仍然选择平十法和破十法。这种情况好像出乎教师的预料。于是,教师只好再次引导:

师:方法二的13-9=10-9+3和方法三的13-9=13-3-6,它们都是几步计算?

生:两步。

师:而想加算减的方法,只要想9加几(4)等于13,然后直接写出13-9=4。你们比较一下,到底是哪种方法方便?

学生不语。

教师有些着急,又问了一次。

个别学生小声说:先减3再减6,好算。

还有的学生说:先用10减9,好减。

对于学生的"顽固不化"和"坚持到底",教师只好来"硬"的了。

师:我们一定要掌握第四种算法,因为它对今后的学习很重要。

思考:学生为什么就是不"入套"、不"中招"呢?建构主义认为学生的学习是在已有知识和经验的基础上进行建构的,这就是说要实现算法最优化的建构,教师就要关注学生已有的知识基础。"想加算减"这种方法对学生思维灵活性的训练和后续知识的学习都很有帮助,是我们这一节课优化的目标,比较省时、比较快捷,但是这种方法在五种方法中却是最困难的。因为,这种方法不仅需要学生有一定的推理能力,更需要学生有非常熟练的20以内加法的基础。换句话说,要想让学生掌握"想加算减"这种方法,学生不仅对20以内的加法达到脱口而出的熟练程度,还要会根据加法算式写出相应的减法算式,会熟练地求括号里的未知数,没有了这些基础,"想加算减"的方法就免谈。心理学家奥苏贝尔在他的代表性论著《教育心理学:一种认知观》一书的扉页中写到:"假如让我把全部教育心理学仅仅归结为一条原理的话,那么,我将一言以蔽之曰:影响学习的唯一最重要因素就是学习者已经知道了什么。要探明这一点,并应据此进行教学。"所以,我们在优化算法的时候一定要思考:优化的目标距离学生有多远?新知识的生长点在哪里?新旧知识的"支架"在何处?怎样准确定位学生的最近发展区等问题。就本节课而言,教师在课前对学生的20以内加法的熟练程度和求括号中未知数的掌握情况进行了解,并有针对性地进行训练和铺垫,夯实优化的基础,才能顺利完成算法优化的目标。

二问:是否守住了学生的"底线"?

教师出示挂图。(一年级上册)

师:我们先来仔细观察图,桃子是怎样摆的?

生:盒子里有9个,盒子外有4个。

师:要求一共有多少个桃?该怎样列式呢?

生:9+4=13

师:9+4=13,你是怎么想的?

生:拿一个桃子到盒子里,盒子里就有10个,10个再加上3个等于13个。

师:你用的是9找1变成10的方法。找到了10,算起来就很快了。简单的说,就是"凑十法",你真棒!其他同学听懂了吗?

还没有等学生回答,教师就说:那么,我们就用他的方法摆一摆,移一移桃子图,找找结果,好吗?

这种模式在很多的课堂上都是习以为常的,老师写出算式或刚提出问题后,只要有学生举手,教师就立即让举手的孩子来回答,一个或几个优秀的学生与教师产生互动完成了教学任务。其实,举手的仅是一部分学生,多数还是优等生,还有相当多的中等及中等以下的学生没有举手或者还没有来得及举手。另外,这些举手的学生真的经过独立思考了吗?真的经过自主探索了吗?这样的教学,一是直接导致了部分学生游离于教学活动之外;二是导致了学生严重的"两极"分化,成绩稍差的学生没有机会品尝到成功的喜悦;三是忽略了每人至少掌握一种算法的基本要求。

每个学生至少掌握一种算法,这是算法优化的"底线"。因为,只有每个同学都有了自己的算法,才能构成算法的多样化;只有出现算法多样化的局面,才能进行算法的优化。鉴于此,教师一定要舍得放手,相信学生,故意放慢教学的进程。首先,面对数学问题,要给学生充分的独立思考的时间,并提出要求:每个同学至少要想出一种方法,并把这种方法在脑海中用自己的语言说一遍,完成后才可以去思考第二或第三种方法。这样一来,好的学生能想起几种方法,思维得到了全面的展开和激活,实现了"吃好"的目标;中下等的学生也能有一种方法"保底",达到了"吃饱"的标准。其次,在小组交流的时候,老师要有意识的让那些学习困难的学生先发言,争取让每一个学生都能把自己的思维过程暴露出来。这样的处理,每个孩子都要认真思考,都要自主探索,都会积极参与到学习活动中来,"学困生"也能得到充分的展示,实现了好、中、差学生"同步走"的全面发展的目标,这才是"不同的人在数学上得到不同的发展"的理念的具体体现。

三问:是否为了优化而故意多样化?

二年级下册"一位数乘两位数的笔算"

教师出示情境图引导学生列出算式14×2后,安排学生自主探究解决的方法,然后组织全班交流。

生1:两个10是20,两个4是8,加起来是28。

生2:两个14加起来是28,所以14乘2是28。

生3:我是看图的,左面两个筐里是20个,右面筐里是8个,合起来是28个。

教师意犹未尽,继续问:除了乘法、加法、看图三种方法以外,还有别的解法吗?

等了半天,教师看见没有学生举手,唯恐"冷"了场,又抛出一个"技术性含量"很高的问题:刚才的三个学生非常聪明,能认真开动脑筋,想出了属于自己的解题方法。谁能超过他们?

过了一会,终于有学生举手了。

生4:14加10等于24,24加4等于28。

这个答案可能让教师始料未及,所以教师楞了一下,接着说:还有吗?

生5:4加14等于18,18加10等于28。

表内乘除法、对乘法意义的理解,在二年级上册已经学过了。本节课,主要是让学生掌握一位数乘两位数的竖式计算。而在上例中,教师却"跑题"了,距离本节课的教学重点--学会一位数乘两位数的笔算和教学难点--理解一位数乘两位数的算理却是渐行渐远了。仔细分析之:都是算法优化惹的祸。

算法优化为什么会惹祸呢?这是我们的老师对算法优化的误解,有些老师认为:算法多样化就是方法要多种多样,学生的解题方法越多越好,方法多了才能把学生的思维激活起来,方法多了才是算法多样化,只有达到算法多样化才能实现算法优化。正是在这样的理念指导下,教师才让学生尽可能的寻找算法,前三个学生的方法已经很好了,而教师还是认为方法太少不便于优化,于是继续引导,让学生说出了两种加法中的算法。因为本节课学习的是乘法竖式,所以这两种方法是属于低层次的算法,前面三个学生已经超越了这些算法,教师应该乘势而上,抓紧进入竖式的教学,而不是偏离主题,为了算法优化而故意设置所谓的算法多样化。实际上,并不是所有题目都要实现算法多样化的,教师不要为了对计算方法进行优化而让学生去机械地多样化,更不能在学生已经掌握基本算法的基础上去倒退学生的思维,逼迫学生找出低层次的算法,完成老师"凑数"的目的。

四问:学生是否具有了优化的意识?

请看课例:六年级上册的"分数除以整数"

学生列式后师问:你们会计算吗?

生:会。

师:你们先算算看,看谁的方法多?

学生练习后汇报如下:

生1:÷2=÷2=

生2:求÷2就是求的是多少?所以÷2=×=

生3:因为×2=所以÷2=

生4:我是用画图的方式求(走上黑板作图)

师:这些方法都不错,你喜欢哪种方法?为什么喜欢这种方法?同位之间先说一说。

在同桌交流后,教师指名回答。结果,有的说方法一好计算,有的说方法四看得明白,还有的说方法二约分起来方便,等等。众说纷纭,莫衷一是。

教师见出现了这种情况,只好指着方法二直接说:这种方法具有普遍性,有推广的价值,今后我们就用这种方法来解答分数除以整数的题目。可是学生们真的服气吗?课堂上仍然能听到有学生小声嘀咕说方法一更简便。

看到这样的课例,我们不禁要问:算法优化是告诉?是推荐?还是教师的"一厢情愿"?

建构主义认为,学习不是知识由教师向学生的传递,而是学生建构自己的知识的过程;学习者不是被动的信息接受者,相反,他要主动地建构信息的意义,这种建构不可由其他人代替。从这段理论中,我们可以很明显的感觉到,教师的"告诉"时逼着学生被动的接受知识,并不是学生主动建构的过程。虽然,在算法优化的过程中,我们不排斥教师的指导和引领作用。但是,一切要顺其自然,孔子强调:"不愤不启不悱不发",这就要求教师一定要创设一个体验的情景,让学生产生优化的意识,对算法优化的指导要适时、适当、适度,绝对不能"强行优化",逼迫学生去按照自己的意愿去选择算法,"瓜熟自然就蒂落",一定要等到时机成熟,学生有优化的冲动时再进行优化。针对上面的例子,教师可以安排学生进行计算比赛,通过比赛使学生主动去探寻落后的原因,思索自己所使用算法的优劣,产生需要对算法进行优化的内在需求,然后再组织学生讨论交流,让学生们说出喜欢哪种方法和为什么喜欢这种方法。在学生的讨论中,学生会因为方法四的麻烦和方法三思考的困难而将这两种方法淘汰,只剩下方法一和方法二。这样,教师就让学生无意识的排除了两种方法,达到了第一次优化的目的。然后,教师可以让学生再用自己喜欢的方法计算型如÷4=?÷5=?之类的题目,让学生在实际的计算中感受到方法一的局限性,再一次产生矫正自己思路的内需,筛选出适合自己的方法,从而达到自觉优化的境界。

五问:学生是否经历了优化的过程?

一个故事:有人发现已经裂开一条缝的茧中蝴蝶正在痛苦地挣扎,他于心不忍,便拿起剪刀把茧剪开,帮助蝴蝶脱茧而出。可是,蝴蝶却因为身体臃肿、翅膀干瘪,根本飞不起来,不久就死去了。省去了过程看似为其免去了痛苦,但结果却适得其反,忽略了过程,其结果是可悲的,学生的学习不也是这样吗?

三年级下册"两位数乘整十数的口算"

教师出示情境图,指名列出算式12×10,先是布置学生独立思考计算的方法,然后四个学生为一个学习小组进行组内交流讨论形成自己小组的解答方法(教师唯恐不能构成多样化的算法,还时不时的边巡视边提醒学生:尽量不要和其他小组的方法一样),最后是各小组代表汇报,教师板书:

生1:12×2=24 24×5=120。

生2:12×5=60 60×2=120。

生3:2×10=20 20×6=120。

生4:12+12+12+…+12=120。

生5:12×9=108,108+12=120

生6:10×10=100,10×2=20,100+20=120。

生7:10×4=40,10×8=80,40+80=120。

生8:12×1=12,12×10=120。

生9:12×5=60,12×5=60,60+60=120。

由于班级的学生数较多,还有几个学生跃跃欲试,老师急忙打住。夸奖道:同学们真棒,想出了这么多的方法。请你们用自己喜欢的方法计算下面三题。

27×10 30×23 50×30

通过课堂巡视可以看出,不少学生没有改变算法,继续使用自己刚才的方法进行计算。等到全班汇报交流的时候,老师让选择各种方法的同学分别举手,居然没有过半数的学生选择同一种算法。

反思:本节课上,既有学生个人的独立思索,又有小组的合作交流,既让每一个学生经历了算法的探索过程,又形成了丰富多彩的研究成果,既体现出新的学习方式,又让学生的思维得到了展开。但是,为什么最后的优化没有成功呢?原因就在于没有让学生参加算法优化的过程。

建议:在学生们汇报出多种算法以后,教师可以分成了这样的几个步骤:

第一步:让学生把9种方法进行归类。再一次给学生提供了独立思考和小组合作的机会,达成共识,形成小组意见,最后是全班交流。师生共同把各种算法的不同点进行比较并分为这样的几类:(1)学生1、2、3都是转化成连乘;(2)学生4用的是连加法;(3)学生5、6、7、9转化成两个两位数乘一位数,再把所得的积相加;(4)学生8是先和1相乘,再在末尾添上一个0。

由于前三种算法的算理很明显,所以教师着重向学生讲清最后一种方法计算的道理。

第二步:对归纳后的四种算法进行比较。安排学习小组进行讨论、比较这四种方法,找出自己喜欢的、自认为比较简便的方法,再指名汇报。

第三步:请你们用自己喜欢的方法计算下面三题。

27×10 30×23 50×30

第四步:前、后两次的解题方法进行对比。让学生仔细观察自己的练习作业,看看自己在解答12×10的时候用什么算法,现在做27×10、30×23、50×30的时候又用什么算法?然后思考:自己的计算方法前后改变吗?为什么改变或者为什么没有改变,并在小组内说说理由。

经过这样反复思考、对照、探究,一定会顺利完成算法优化的教学任务。

评析:没有比较,就没有鉴别;没有鉴别,就没有思考;没有思考,就没有感悟;没有感悟,也就没有了优化。前苏联教育家阿莫纳什维利说过:"儿童单靠动脑,只能理解和领会知识;如果加上动手,他就会明白知识的实际意义;如果再加上心灵的力量,那么认识的所有大门都将在他面前敞开,知识将成为他改造事物和进行创造的工具。"这就是说,在算法优化的过程中,学生们仅仅用眼观察、动脑思考还是不够的,还要加上动手和心灵的力量。学生在选择简便算法的时候,虽然也经过了观察和思考,但是对所有的算法没有一个整体的认识。教师让学生说出简便的原因和两种方法的比较,让学生的思路出现逆转,又一次把学生的思维过程暴露了出来,然后是动手操作--用自己认为比较简便的方法再次计算,最后是在动手的基础上再一次提升,用心灵去比较、去感悟,这时候学生的思考是是全面的,感悟是深刻的、系统的,顺利的把优化后的方法进行了内化,完成了探究→交流→观察→思考→选择→体验→比较→再选择→感悟→内化的完整链接,从而形成了较高层面上的认识。

该文发表于《中国教师》

【算法优化要五问】相关文章:

车辆优化调度算法研究初探11-05

几种现代优化算法的比较研究08-04

基于贪心策略优化欺负算法09-03

粒子群优化算法及其在结构优化设计中的应用07-23

基于多学科设计优化算法的再入轨迹优化设计07-25

基于拍卖算法的目标分配问题优化07-14

基于粒子群算法的翼型优化设计07-07

基于SMSA算法的网架结构优化设计07-14

为何要要优化网站 -电脑资料01-01