抽象是数学的基本思想之一,抽象在数学教学中无处不在,任何一个数学概念、法则、公式、规律、性质和定理等的推导,都要用到抽象概括[1]。抽象是有层次的,史宁中教授认为:“数学的抽象经历了两个阶段:第一阶段的抽象是基于现实的,是从感性具体上升到理性具体的思维过程;第二阶段的抽象是基于逻辑的,是从理性具体上升到理性一般的思维过程”[2]。算法即计算法则,其本质是一种用于计算的数学模型,其形成过程是一个抽象的过程,算法的抽象过程也存在一定的阶段性和层次性。
近期,笔者参加了多场计算教学专题研讨活动,在感叹授课教师对理解算理的重视及教法的创新的同时,深感一线教师对算法抽象的一般过程的忽视。算理与算法本来就是计算的一体两面,两者都很重要。因此,理解算法的抽象过程对一线老师来说具有十分重要的指导意义。现以苏教版《数学》三年级上册“两、三位数乘一位数(不进位)笔算”为例,谈谈笔者对算法抽象过程的理解,供大家参考。
一、直观表征算式,由感性具体到感性一般
综观苏教版小学数学教材,所有的计算教学都是安排在具体的生活情境中的,这不仅为学生探寻抽象的算法提供现实情境支撑,而且让学生感受到数学有用,这样的安排符合小学生的认知规律。但如果在具体问题中研究算法,有时会受情境所限,因为具体情境中的事物不具备数学的结构,不利于得到通用的、简洁的算法,所以需要通过初次抽象将现实情境转变为数学情境,并在数学情境中探寻一般的算法。初次抽象常用的方式是直观表征,通过直观表征,可以將生活中具体的数量变成具有数学结构的、抽象的数,初次抽象让算法的研究对象由感性具体上升到感性一般。
例如,“两、三位数乘一位数(不进位)笔算”一课中,教材提供的例题不仅有文字描述,而且有真实的计算对象:3队大雁,每队12只。学生根据情境图不仅能够列出乘法算式,而且能够直接数出或用加法计算出乘法算式的结果。但直接数或用加法计算具有一定的局限性,所以需要探寻一般的、简洁的计算方法。教材中首先让学生用小棒来表征算式(图1):
这是一个将生活情境抽象为数学情境的过程,这一步是很有必要的,因为小棒具有实际物体不具备的数学结构(十根捆成一捆),这是后面探寻乘法竖式计算一般方法的基础。相对于抽象的算法来说,小棒是直观的、感性的,但相对于大雁来说,小棒又是一般的,因为小棒不仅可以表示本题中的大雁,还可以表示其他物体。
直观表征算式的方式有多种,我们要根据教学内容选择合适的表征方式。如在整数加法、减法的计算教学中,常用半具体、半抽象的计数器来表征算式;在分数、小数的计算教学中,常用单位面积的正方形和单位长度的线段来表征算式;有些实际物体本身就具有数学的结构(如人民币),也可以用来直观表征算式。
二、自主探寻算法,由感性一般到理性具体
经历第一次抽象,学生得到了探寻一般算法的直观材料。由于直观表征算式的数学材料是有结构的,这种数学结构十分有利于学生借助已有的数学知识和思维经验去自主探寻算法。不同的学生由于已有的数学知识和思维经验的不同,会在直观表征中发现不同的计算方法。这些算法是具体的、理性的,与学生的已有知识和思维经验密切相关,带有明显的个性特征,这是学生理解抽象的一般算法的基础。在自主探寻算法的过程中,学生从感性的、一般的直观表征中得到理性的、具体的算法。
如上例,在学生用小棒表征算式后,让学生自主探寻算法时,学生根据已有的知识和思维经验会探索出多种不同的计算方法(图2):
这三种方法都是理性的、具体的,其中第一种方法是最原始、最本质的,在现实情境中也能得到这样的计算方法,后两种本质上是一样的,它们都脱离了现实情境,关注了直观表征中的数学结构,是建构乘法竖式计算方法的主要资源。
在自主探寻算法时,我们可以根据教学需要,先按照抽象的程度有层次地呈现具体的算法,最后再呈现一般算法,并让学生解释一般算法的算理,从而自然过渡到下一阶段的学习。
三、抽象一般算法,由理性具体到理性一般
第二次抽象是数学内部的抽象,其特点是符号化、形式化和公理化,这是从理性具体上升到理性一般的思维过程。在自主探索算法中,学生根据直观表征材料得到的算法是具体的、多样的、个性化的,如果任由其一直用自己的算法计算,会给后续的学习与交流带来不便,所以需要在学生自主探索算法后,引领学生借助理性的、具体的算法抽象出理性的、一般的算法,从而实现算法的第二次抽象。
上例中,当学生自主探索得出不同的算法后,教师引领学生学习用竖式计算的一般方法。教材是分两个层次进行的:先将根据摆小棒得到的算法反映到竖式上,得到初始的竖式(图3):
此时的竖式计算方法与上一环节的第二、三种算法是紧密联系的,这是一个计算方法,也是向学生展现用竖式计算12×3=36的算理的基本过程;接着,将初始的竖式进行优化,得到一般写法的竖式(图4):
这样的竖式是理性的、一般的,更是一个简化、优化后得到的一般算法。
由于教材是按照由易到难的顺序安排学习内容的,有时会导致学生初次学习一般算法时,无法体会到其必要性。如上例中,由于未涉及到进位的问题,所以初步列竖式计算时,有学生会根据口算的方法先用十位上的数与一位数相乘。此时,我们可以先引领学生学习并掌握一般算法,等后面算式中出现进位时,再次呈现两种不同的算法,并在对比中让学生感悟到一般算法的必要性,说明从个位乘起的合理性。
四、联结不同层次,由线性认识到整体认识
通过前面三个环节的学习,学生对算法的抽象初步完成。很多教师在此之后,会将前面算法逐步抽象的过程弃之不顾,立即安排多种形式的练习以巩固算法,其结果会导致抽象算法及理解算理的过程成为点缀。加强练习只不过是加深了学生对算法形式上的掌握,无法使学生获得对其本质更为深刻的理解。前面抽象算法的过程是一个线性的过程,各个环节之间层层递进,但这几个环节之间也不是割裂的,而是有紧密联系、相互映照的,所以最后我们还需要打通不同层次之间的联系,让学生对抽象的算法由线性认识上升到整体认识,至此,算法的抽象才算完成。
还是在上例中,在学生得出用竖式计算12×3的一般方法后,笔者让学生回溯式思考:竖式计算中的每一步在具体问题情境中、在小棒图中、在不同算法中分别表示什么,并且进一步思考不同层次中的每一个对象在其他层次中分别在哪里体现,这不仅使两位数乘一位数的计算方法的多重层次紧密地联系在一起,而且算理与算法之间也相互融通,最终形成对算法的整体认识。
在学生完成以上四个环节的学习活动后,教师还要引领学生回顾算法抽象的全过程,让学生对算法抽象的四个环节从整体上形成清晰的认识,从而掌握算法抽象的一般程序,并能使之迁移到其他算法的探究之中。在回顾中,学生能够感悟数学思想方法,积累数学活动经验,学会自主探究。
参考文献
[1] 王永春.小学数学与数学思想方法[M].上海:华东师范大学出版社,2014.
[2] 史宁中.数学基本思想与教学[M].北京:商务印书馆,2018.
[责任编辑:陈国庆]