算法多样化,一个美丽的误导
2021-11-05郑大明
郑大明
義务教育数学课程标准和与其配套的教材,为了突出问题解决的策略性知识的学习与掌握——解决一个问题不限于一种思路或者一种办法,提出了“算法多样化”。但在 “新课改”和“三课四学”的实践中发现,“算法多样化”这个说法给师生带来了许多的误会和纠结。特别是算法“多样化”与“优化”的争论,算理与算法的混淆,使得一线教师十分苦恼。
一、问题的提出
1.关于“算法多样化”的研究
为了把研究学生学习计算的算理算法的状况搞清楚,笔者先在中国知网上输入“算法多样化”这个短语,出现了333条结果(如表1);再在百度上输入“算法多样化”这个短语,搜索到119 000条信息。看来,学术研究上明显不足,一线教师的关注度更高。
最早一篇关于“算法多样化”的文章是北京师范大学刘坚和张春莉老师在1999年2月以数学课程标准研制小组名义发表在《教育研究与实验》上面的《关于我国数学课程标准研制的初步设想》,该文提出了“重视心算,加强估算,淡化笔算,引进计算器,算法多样化”的主张。往后的文章就是专家和一线教师围绕“算法多样化”进行的解读或者实践研究的经验介绍,也有很多人提出了算法“多样化”与“优化”的讨论。
2.课程标准关于“算法多样化”的主张与删减
《义务教育数学课程标准(实验稿)》关于“算法多样化”的主张如表2所示。
此外,在教学方法多样化、问题解决策略多样化、评价多样化等方面,还给出了较多的提示和建议。
《义务教育数学课程标准(2011年版)》删除了“算法多样化”主张。教学实施建议第七条“教学中应当注意的几个关系”中,关于“面向全体学生与关注学生的个体差异”的条文中提到:“在教学活动中,要鼓励与提倡解决问题策略的多样化,恰当评价学生在解决问题过程中所表现出的不同水平;问题情境的设计、教学过程的展开、练习的安排等要尽可能地让所有学生都能主动参与,提出各自解决问题的策略,并引导学生通过与他人的交流选择合适的策略,丰富数学活动的经验,提高思维水平。”这里没有出现“算法多样化”的字样,只在“解决问题”和“教学评价”中,适度使用了“多样化”等词语。
因此,在新修订的数学课程标准中对“算法多样化”的处理方式应引起高度重视。
二、问题的表现
课程标准中 “算法多样化” 的删减没能引起教师的注意,但是“算法多样化”给课堂教学带来了深远的影响。以北师大版教材为例,不少教师存在混淆算法与算理的问题。
【案例1】北师大版教材一年级上册“有几瓶牛奶·9加几”(如图1)
很多教师都认为,学生要通过教材这个例题掌握以下几种算法。
1.摆小棒法:(1)一根一根地摆,摆出14;(2)9根加1根,合成10根,再与4根合并为14根;(3)5根与5根合成10根,再与余下的4根合成14根。
2.圈图法:9根与1根圈在一起得到10根,再与4根合成14根;5根与5根圈在一起,先得到10根,再与4根合成14根。
3.数数法:从9后面接着数,10,11,12,13,14,连续数5个数。
4.凑十法:把5分成1和4,1和9凑成10,10加4得14。
5.计数器法:个位上先拨9个珠子,再拨1个,变成10个;满十向十位进一;再在个位上拨余下的4个珠子,得14。或者看教材上画的圈珠子图片,个位上14颗珠子,圈出10个向十位进一,余下4个珠子,得14(与计数器上不一样,学生无法操作)。
6.讲述法:把5分成4和1,9和1凑成10,10加4是14。
对于教材中编排的“智慧老人问:‘还有别的方法吗?”,教师和学生都毫无头绪。
【案例2】北师大版教材二年级上册“回收废电池·两三位数加法”(如图2)
很多教师都认为,学生要通过教材这个例题至少掌握四种算法。
1.口算法:先加整十数,122加70;再加个位数,192加7,得199。
2.数线图法:先画出122加70,再画出192加7,得199。
3.计数器法:先拨122,再拨77,得199。
4.竖式法:先写122,相同数位对齐,写上149,然后依次从个位加起;个位满十的要向十位进一,得271。
【案例3】北师大版教材三年级下册“队列表演·笔算两位数乘法”(如图3-1、图3-2)
三年级的两位数乘法是非常重要的知识,但是教师认为这样教给学生的算法太复杂,学生很难把握,所以普遍教学以下算法。
1.数点子法:按排数,12排;再按列数,14列。即每排14个,一个一个地数,得出12个14的总数是168。
2.分点子数法:(1)将其中一个数分成两个一位数,用原有的方法算出答案。如把12排分成2个6排,数出6个14是84,2个84就是168。(2)把14列分成2个7列来数,7个12是84,2个84是168。(3)把12排分成10排和2排来数,得到一个整十数140与2个14,和是168。(4)把14列分成10列和4列来数,得到整十数120与4个12,和是168。(5)横竖先各取10个点子,分成4个点阵来数。第一个点阵,10个10是100;第二个点阵,2个10是20;第三个点阵,4个10是40;第四个点阵,2个4是8;四个点阵的数合计168。
3.拆数法1:把两位数拆成两个一位数的积。(1)14×12,把12看成6和2的积,14乘6得84,84再乘2得168。(2)14×12,把14看成7和2的积,12乘7得84,84再乘2得168。
4.拆数法2:把两位数拆成整十数和一位数的和。(1)14×12,把14看成10与4的和,10乘12得120,4乘12得48,120加48得168。(2)把12看成10与2的和,14乘10得140,14乘2得28,140加28得168。
5.拆数法3:把整十数拆分出来先算。14×12,把14看成10与4的和,把12看成10与2的和。10乘10得100,2乘10得20,4乘10得40,2乘4得8。100加20,再加40,再加8,得168。
6.口算法:14×12,14×10=140,14×2=28,140+28=168
7.表格法:
100+40+20+8=168
8.竖式法:
从以上三个教学案例可以看出,教师的准备和教学十分认真,但是给学生讲完这些算法后,学生的感觉完全可以想象。
三、问题的解决
因为“算法多样化”的误导,计算教学产生了“后遗症”:教师怕没有落实“新课标”的要求而造成了什么损失,于是就糊里糊涂地教,学生就糊里糊涂地学。下面给出一些对策,也提出一些思考。
1.糊涂的算法“优化”,解决了不需要全部掌握的问题
有些教师想出了一条妙计就将其归为“算法优化”。课堂上就常常听到 “这么多算法,你喜欢哪一个?”,学生总会找一个自己喜欢的、最简单的算法。于是,教师就说:“你们真聪明!那就选一个最喜欢的方法来计算吧!”这样,教師就如释重负:因为他们既落实了“新课标”提倡的“算法多样化”精神,也了却了自己的心愿——尊重学生的选择。但是这样的教学效果非常差,中下水平的学生基本上是晕乎乎的,只是按自己喜欢的“竖式”“口算”去解题,那一大堆的小棒以及数线图、点子图就成了学生最不喜欢的“算法”。更有一些教师只在公开课摆摆小棒、拨拨计数器、画画图,平时就直接教学生“口算题”和“竖式题”。家长和教师都认为:算对就好,简单就好,别把孩子搞得“鸡飞狗跳”的。
2.创新的“拓展”设计,解决了计算教学讲不清算理的问题
为了计算教学既生动活泼,又能把算理说明白,有些教师创造性地设计了许多分清计算中的“理”与“法”的办法:巧妙地使用现实情境,先讲“理”再讲“法”;学生先自己看书讨论,等有“法”了再来讲 “理”……效果都不错。
(1)文字法讲算理:如214+35。214是由2个百、1个十和4个一组成的,35是由3个十和5个一组成的, 所以先把4个一与5个一相加得9个一, 再把1个十与3个十相加得4个十,最后把2个百、4个十和9个一合并得249。
(2)图形法讲算理:选一个典型的算式,引导学生画数线、圆圈、点子图……
(3)工具法讲算理:与学生一起摆小棒、拨计数器、打算盘……
(4)情境法讲算理:设计现场、运用实物、讲故事、画绘本、演课本剧……
好的教师都是说:“你们真聪明,用了这么多办法说明为什么要这样算的道理。”而不是 “看,这么多计算方法,选一个自己喜欢的方法做题吧!”相较之下,学生的感受高下立见。
3.真正的“专业”化理解,解决了计算教学的困境问题
为什么要“专业”化理解呢?就是要从数学教学的理论与实践的角度来研究算理与算法的本质,把握好计算教学的尺度,既要学会计算本身,也要掌握解决问题的策略。
首先从知识分类学来研究,搞清楚计算教学中三个关键问题:
(1)什么是算理?
算理,就是计算的道理。按照知识分类学理论,算理属于陈述性知识,是用来回答“为什么”的。与其相联系的还有一个回答“是什么”的陈述性知识,即常说的算式的“意义”。回答“为什么”之前,往往先回答“是什么”或者“怎么样”。比如:
教师问:“3只猫加上4只猫,是几只猫?”
学生答:“用加法算,把它们合起来数,结果是7只猫。”
教师问:“那3只猫加上4只狗,是多少呀?”
学生甲说:“不知道。”
学生乙说:“还是用加法算,把它们合起来数,就是7只动物。”
教师表示很奇怪:“怎么有人说不知道,有人又算出是7只动物了呢?”
学生甲说:“我不知道加起来是猫还是狗呀。”
学生乙说:“我也不知道是猫是狗,但是老师没有问是什么,我觉得它们都是动物,就把它们合起来数,得到7只动物了。”
教师很高兴:“大家觉得他们说得对吗?该不该鼓掌?”全班掌声雷动。
教师说:“看来无论算得出还是算不出都有道理。只要大家开动脑筋,就不会做错题了。”
那么,专业上提到的算理是什么意思呢?算理,就是用来解释为什么可以这样计算的一种事实、规则或者规律。
案例1中,在解释为什么“9+5=14”时,教材所用的方法有“数小棒”。第一种数法是从9接着数5个数,正好得14;第二种数法是先从5里面数出1根,和9根凑成10根,还余下4根,再合起来就得14根。算完了,算对了,这就是用摆事实的方法说清楚了为什么“9加5得14”。
计数器主要是解释为什么“满十要进一”。计数器每个数位上都有10个珠子,个位上的1个珠子表示1个“一”,十位上的1个珠子表示1个“十”。当这个计数规则确定后,就能说明“9+5=14”的道理了。个位上有9个珠子,再数1个珠子,个位就放满10个了,还有4个珠子没地方放。于是就规定用十位上的1个珠子来代替个位上的10个珠子,另外的4个珠子就可以放到个位上去了(注:新修订的一年级数学教材的处理方式破坏了这样的规则)。这样一来,无论是“9+7”还是“8+6”,都可以解释“满十进一”的做法了。因此,算理是可以“以此类推”的,没必要每道题都讲一遍。
案例2和案例3的数线图、点子图、表格等主要都是用来说明计算“122+77=199”“122+149=271”“14×12=168”等算式的计算道理的,但不是每道计算题都必须使用这些方法才可以算出得数。
低年级常用的这些讲算理的方式和思维方法,专业上叫作“实物直观”“几何直观”“情境直观”等。高年级的计算中用来说明计算道理的除了这些“直观”方式,还有“五大定律”“商不变的规律”“等式性质”等。
(2)什么是算法?
算法,就是计算得出结果的做法。按照知识分类学理论,算法属于程序性知识,是用来回答“怎么做”的。计算是一种行为过程,它既包含思考过程也包含观察过程和操作过程,需要在现实计算活动中总结出怎么做的程序、步骤与方法,即先做什么和怎么做,后做什么和怎么做,然后按照这个程序、步骤、方法就可以完成所有类似的计算。比如案例1的算法就是“接着数”和“先数1个凑成10,再把余下的数相加”两种算法。算法都可以在图和计数器上表示出来,也可以用小棒摆出来,从而说明道理。
案例2的算法就是“相同数位对齐,从个位加起,满十进一”,可以用画数线图、拨计数器等方式说明这种算法正确的道理。
案例3的算法有两层意思:第一层是先用两位数乘两位数的其中一个数,用拆分为“两数的和”或者“两数的积”的方法,转化为“两位数乘一位数”和“两位数乘整十数”的连乘或者乘加混合的算式,然后用学过的方法计算;第二层是采用“竖式法”记录前面部分算法的计算过程,这样更容易看清楚计算的过程,从而提高计算正确率。因此,教材主要使用点子图、表格等介绍与展示这些不同算法的合理性。
(3)算法真的多样吗?
算法是可以多样的,但不是教师理解的那么多。算法的多样,源于解决问题的思维起点的多样化。比如案例1中的“接着数”和“先数1个再凑10”就是不同的思维起点,虽然都是数数,但是数数的方式有差异,也就是说两种算法有所不同。
如果教师把用来讲算理的方法全部当成了用来计算得数的方法,那很多学生就不愿意去摆一摆、画一画、演一演,这样,学生的思维能力、积累活动经验能力、实践能力和创新能力等就得不到相应的培养。
因此,教师需要认真研究教材中的算理与算法,正确地把握计算教学的本质,教给学生解决问题的策略性知识,从而提高数学教学质量。
(责编 金 铃)