什么叫算理?什么叫算法?这是进行口算教学必须首先搞明白的问题。算理就是计算过程中的道理,解决“为什么这样算”的问题。算法就是计算的方法,解决“怎样算”的问题。如何认识口算中算理与算法的关系,下面谈一些想法。

“有”与“无”

对于小学生的口笃来说,核心的内容是基本口算。所谓基本口算主要指20以内加减法和表内乘除法。除了这些基本口算,要求学生掌握的还有简单的两位数加、减法及百以内的乘加、乘减、除加、除减等;在小数、分数四则计算中,也有相当数量的口算内容。那学生在学习这些口算时,是否都是理解算理、掌握算法,并在理解算理的基础上掌握算法的呢?

先从最简单的加法说起。3+2,怎样算?为什么这样算?就这两个问题,我访谈了大学教授、小学数学教研员和小学数学教师,但他们没有一人能做出解释。其实不难发现,我们往往脱口而出3加2等于5,我们的策略是“直接提取”,也就是说,3加2等于5,我们成人已经形成了“计算自动化”,在我们的头脑中已经有了现成的答案.我们可以迅速地从长期记忆中提取有关数学事实。

那我们在一年级教学时,又是如何处理3+2的呢?一种常见的教法是借用数的组成想得数,即想:5可以分成3和2,3加2等于5。我们知道,在学习3+2=5之前,已有相当一部分学生知晓3+2=5;我们也知道,有学生最初就是用“数手指”的方法数出来的,之后,又由数手指发展为数数,即接着3之后数两个数:4、5,所以,3+2=5。这样的算法,我们也许觉得很幼稚,但这样的算法,恰恰最接近加法的定义。在递归算术中,自然数的加法可以用求继数的运算来定义。如,求3+2的和,就是求3的继数的继数,即在自然数中,从3往后数2个数所得出的5。

毋庸置疑,一段时间之后,学生在算“3+2”时也都形成了“计算自动化”,3+2等于5,都储存于记忆中。这时,算法已经脱胎于算理。学生学习基本口算就是在头脑中

构建一个“数学事实库”的过程,继而完成从构建事实到提取事实的转化。

我们是否可以这样理解:最初,学生在口算时,可能有算法而不知算理;后来,知算法而且知算理;再后来,又是有算法无算理。也就是说,在学生学习口算探索与掌握算法的不同时段,他们计算时是否具有算理,经历了“无——有——无”这样一个过程。

由此推想,不同的口算内容,算法与算理是否也表现出像这样脱离、融合、脱胎的不同阶段之分呢?

在口算教学时,学生不理解算理,教师需要引导,否则学生的计算只是停留于形式化地计算,他们只是机械地掌握计算程序,知其然,而不知所以然;但理解算理之后,教师却不要太多地纠缠于算理。

“一”与“多”

在学习口算两位数减两位数44-25时,学生独立思考之后交流了各自算法。

算法1:44-5=39,39-20=19——把减数分成5和20,从被减数中依次减去。

算法2:40-25=15,15+4=19——把被减数分成40和4,先从40里减去25,再把所得的差与4合并。

算法3:40-20=20,5-4=1,20-1=19——个位上4减5不够减,还差1,就从十位上减得的差20里去掉1。

算法4:44-24=20,20-1=19——把减数分成24和1,再从被减数中依次减去。

算法5:30-25=5,14+5=19——把被减数分成30和14,从30里减去25得5,再把14和5合并。

算法6:14-5=9,30-20=10,10+9=19——竖式计算

算法7:十位上,30-20=10;个位上,14-5=9;得数是19——先算十位,再算个位。

算法多样化是学生独立思考后自然生成的。细细分析各种算法,算法1和算法4的算理是一样的,都是把减数分成两部分,从被减数中分别减去;算法2和算法5的算理是一样的,都是把被减数分成两部分,其中一部分减去减数后再与被减数的另一部分合起来;算法6和算法7都是在头脑中构建竖式,算法6从个位减起,算法7从十位减起。由此可见,就算题本身来说,算法是多样的,但算理可能相同。

再说一例。学习小数乘法,一组口算练习之后,反馈时发现,有几位学生在口算20×0.4这一题时出错了。教师指名一位学生口述算法:先算20乘4等于80,再点小数点:8.0,化简得8。学生采用的是“类似笔算的口算”,即在头脑中想20×0.4的竖式并算出得数。教师在学生口述算法的过程中板书:

 

教师如上板书,是让学生理解其算法的算理,即应用了乘法中因数变化引起积变化的规律进行口算。一位学生举手:我是这样算的:20×0.44=2×4=8。教师追问:你为什么这样算呢?学生回答:20×0.4=2×l0×0.4=2×4=8。不难发现,这位学生交流的是“分解因数、运用乘法结合律”的方法进行口算。

又一位学生举手:我也是这样算的:20×0.4=2×4=8。我想的是,一个因数除以10,另一个因数乘10,积不变。如果完整写出这位学生的算法,就是:20×0.4=(20÷10)×(0.4×10)=2×4=8。

后两种算法,如果不去追问思维过程,我们也许会做出“算法相同、算理相同”的判断,然而,看似相同的算法,其实并不同,但算理却是相同的。当我们看到的是 “一”,也许仅仅是表面形式的相同,其内部蕴含的可能是“多”。学生的思维过程是丰富多彩的。口算教学中,存在着的一种现象是,教师重结果、轻过程,只满足于口算正确,不愿花时间去分析学生的思维过程。我们要注意克服这种不良倾向,在口算时,鼓励学生“用你的脑子去算”,而不仅仅是“在你的脑子里算”。

“有用”与“无用”

对于算理与算法,学生在实际口算时往往更注重算法,因为按其操作即可算出结果。教师关注的焦点是学生要算得对、算得快,至于“为什么这样算”,往往不够重视。那算理是“有用”还是“无用”呢?

有一次意外事件。由于制作试卷的疏忽,在五年级学习小数加、减法之后的单元测试卷上出现了这样一道口算题:3.6×0.5,这道题原本应是3.6+0.5。显然,这样的算题如何计算学生还未学习。我想了想,决定不改题,看看学生能否独立探索解决“未学过”的问题。为了解学生具体的思维过程,我让学生在试卷上写下口算3.6×0.5是怎样想的。结果发现:全班47位学生参加测试,有25位学生正确算出结果。其中有10位学生的算法是写出竖式,用笔算的方法算出结果(对这样的算法,我又找几位学生进行交流:为什么积是1.8?学生的回答是:3.6的一半,应当是一点几;36乘5得180,结果是两位小数,化简后是1.8);有14位学生根据3.6×0.5的意义算出结果,他们的算法是:一个数乘0.5,得数是这个数的一半,3.6÷2=1.8;还有1位学生运用乘法分配律的方法算出结果,他的算法是:先用3×0.5=1.5,再用0.6×0.5=0.3,再用1.5+0.3,就等于1.8。

学生为什么在未学的情况下能算出来?尽管正确算出得数的25位学生未必都理解算理,但可以发现,如果他们理解了算理,那么他们基本上就能正确算出算题。算理有助于学生探索算法。有算法时,不一定能说清算理;但有算理,可以转化成算法。

又一则例子。口算整百数乘一位数400×2,学生一般的算法是:先算4×2=8,再在8的后面添两个0。为什么在8后面添两个0,学生解释不清楚。教学时,教师要让学生给自己的算法找一个合理的解释,在学生解释的过程中引导学生理解:4个百乘2,得8个百,也就是800。由此,学生可进一步在理解算理的基础上计算像4000×2、40000×2这样的算题,而不停留于“照葫芦画瓢”式的模仿计算。

综上所述,算理不是没有用,而是教师在教学中是否发挥其作用。不要把算理、算法作为“两张皮”。算理为计算提供了正确的思维方式,保证了计算的合理性和正确性,算法为计算提供了快捷的操作方法,提高了计算的速度。算理往往是隐性的,算法往往是显性的,它们相辅相成,算理的探讨有助于学生探索算法、掌握算法。当然,在口算学习过程中,也要注意避免程式化地叙述算理,对算理的一味推崇容易让学生陷入空洞抽象说教的泥潭,不过,对算法的过度操练也容易让学生走向机械重复练习的窠臼。