APP下载

算法、算法化思维及其对数学教学的启示

2022-12-28袁立新

教学与管理(理论版) 2022年8期
关键词:工具信息技术算法

袁立新 吴 玉

(1.扬州职业大学师范学院,江苏扬州,225013;2.扬州市育才小学西区校,江苏扬州,225013)

当前,重视信息技术与数学教学的深度融合已成共识。事实上,人们早有借助于计算机学习数学的研究与实践,如西蒙·佩帕特教授指导开发了LOGO过程性语言,目的就是通过有趣的简单操作,培养儿童严密的算法化思维,体验创造或再创造过程。罔森博和教授在其著作《数学教育与计算机》中,认为数学教学中使用计算机的首要目标就是“利用计算机培养学生有步骤的思考能力”。后来,这样的能力被提升到“计算思维”层面,并抽象为一种公民必备的思维方式。这表明,在计算机出现之后,学会有条理地思考和解决问题是不可或缺的数学教学目标。但是,当前的数学教学,一方面只关注信息技术的表层功能,如作教学演示或说明书式的操作工具之用,而忽视其本应具有的“文化”气息:开发、设计、创新要素;另一方面片面强调数学的思辨性,而对于数学与信息技术蕴藏的算法特性重视不够。因此有必要在数学教学过程中加强算法的了解,以及算法化思维的培养,特别是重视基于现代信息技术的算法化思维能力提升的教学处理。

一、算法

广义上讲,算法就是解决某一特定问题或一类问题的过程。算法既是一个程序化的过程,也是一个过程凝固、外化后的数学结果。数学教学涉及的“算法”大致有三个理解角度。一是解决某个数学问题的计算过程或方法。即“运用运算法则或公式,通过计算的形式来解决数学问题”的过程或方法就是算法。这事实上就是“数学运算方法”,是与培养数学运算能力相对应的数学活动。如小学数学中“乘数中间有0的乘法计算”。二是数学领域专门为解决某一类问题给出的过程或方法。这类“算法”具有普适性和数学问题解决价值,如求最大公约数的辗转相除法、高次方程求根的算法等等。三是基于以计算机为代表的信息技术工具的问题解决过程或方法。这是所谓的现代意义上的“算法”。这类算法与特定计算工具相关联,无论是抽象、分解、建模,还是自动化处理都是与工具的功能相匹配。第二个层面的算法大部分都可以用现代的信息技术工具实现。一方面信息技术的发展,可以产生更多的与算法相关的新兴的数学学科门类。另一方面各类算法的创造与革新也催生计算工具更加智能化。事实上,早期的一些计算工具,如算盘、自动计算尺、甚至后来的“图灵机”等等都有相应的算法或算法的设想。珠算口诀就可以看作是基于算盘的算法。目前基于计算机的算法更是琳琅满目,功能更为强大。随着人工智能技术的不断发展,算法概念的外延不断扩大,“可计算的”变得更加难以界定。同时,算法变得更加抽象。它已不仅是简单的计算过程,而是方法论意义上的概括性更高的一般性方法。而且算法与演绎不再对立,而是相辅相成。正如荷兰数学教育家弗莱登塔尔所说:任何思辨的新生事物都在其自身中包含着算法的萌芽,这是数学的特点。算法化意味着巩固,意味着由一个平台向更高点跳跃[1]。所以,在信息化社会,我们非常关注第三个层面的“算法”。总之,算法就是解决某一特定问题或一类问题的过程或方法,特别是利用计算手段结构化、自动化、机械化地求解问题。信息工具不断智能化,使我们对算法的理解可以更加接近现实世界。所以从数学教育的角度,学会算法化地思考相对于学习算法本身更为重要,就像学习数学目标是学习如何数学化一样。

二、算法化思维

数学思维就是用数学的观点去思考问题和解决问题。数学教育就是数学思维的教育。强调算法化,就是强调算法化思维,这是一种重要的数学思维形式,即能按照算法的要求,有条理、符合逻辑地思维和行动,同时,具有把复杂问题的解决转化为一系列有序的、有限的、前后相依的步骤意识与能力[2]。算法化思维的结果就是形成算法化思想。数学教学要让学生不满足于探求数学问题的形式解,而是努力构造解决问题的算法,这也是一种思维方式的转变。

自从2006年计算思维概念被提出以后,人们对此做了更多、更深入的探讨。事实上,计算思维的本质就是算法化思维。首先,计算思维的提出是信息技术发展到一定阶段的产物,与基于信息技术的现代意义上的“算法”一脉相承。从计算思维最初的界定以及后来学者们的拓展、泛化、抽象,都表明这一点[3][4]。其次,从行动的角度,计算就是执行一个算法的过程,与算法密不可分。2011年,国际教育技术协会和美国计算机科学教师协会明确提出计算思维的操作性定义,与算法化思维一样,计算思维也是面向问题解决过程,包括问题确定、数据分析、抽象表示、算法设计、方案评估、概括迁移等六个环节。另外,计算思维是一种数学思维(当然是人的思维而非机器),是众多数学思维形式中的一种,其本质就是抽象和程序式系统。它是算法化思维的相同或相近表达。更为重要的,尽管目前人们对计算思维有各种各样的理解,但是其独特性仍体现在算法化、自动化方面。为了能使理论与实践研究联系更紧密,在将一个概念抽象过程中,它的独特性不要轻易地被舍弃。计算思维虽不能简单以机械程序化认知,因为它与其它数学思维形式交错通融,不可分割,但泛化为把其它数学思维形式都纳入到“计算”当中,不利于对数学教学实践的指导。犹如数学项目学习、探究学习、合作学习等都属于“深度”学习讨论范畴,但项目学习的产品性、探究学习的方法特点、合作学习的共同体理念等都是各自特有的,也应该分别探索才能彰显它们的价值。所以,以下讨论都是基于算法化思维的,实践性更明显。

三、基于算法、算法化思维的数学教学建议

1.教学目标:重视算法化思维培养的综合性

数学教学内容的算法化能促进学生数学思维的整体发展。算法化不是单调化、刻板化的代名词。人们常常对算法思想有偏见:算法就是外显的、固化的解题步骤,算法化根本无法提升数学思维能力。事实上,算法本身就是创造性思维的产物,并且蕴藏丰富的“算理”,弄清楚算法的过程就是一个严谨的逻辑思维的过程,是一个“讲道理”的过程。所以算法思维的学习与其它形式的思维是相生相依的。因此,强调算法化的教学,对目前的数学教学是一个有力的补充。

算法还能增强学生学习数学的信心,增加对数学的情感表达。算法本身就能满足人的游戏天性,通过有限的构造或者操作就能展现新的结果;改变算法结构还可能有新的发现和创造。例如学生可以自己改变参数或设置命令组合,“随心所欲”地通过信息技术与学习内容互动,以表达或验证自己的想法。有了各种猜想和验证,便自然有证明的愿望和信心。

某些数学问题经过模块化、程序化处理还能够降底数学学习的难度,促进数学学困生的转化。许多学生学习数学之所以出现困难,就是缺乏条理性训练,缺乏有步骤地思考与执行的能力。将复杂的数学问题分解为关联的简单问题可以帮助学生展现解题的“算法流程”,避免“一步到位”式思考所导致的思维困难。也就是说教学需要力求从生成和归纳的角度帮助学生学习。从这个角度说,算法化思维是一种归纳思维。相对于演绎,更容易被接受和理解。

2.教学内容:展现算法的功用

首先要让学生了解数学中常见的算法及其功能。与公理-演绎体系不同,我国古代数学是问题-算法体系。以《九章算术》为代表的一系列数学著作中记载了大量的很“神奇”的算法。如与欧几里得辗转相除算法功能相同的“约分术”(即后来的“更相减损术”)、开方术,甚至还有分离系数法解方程组的方法(这事实上已类似利用系数矩阵和增广矩阵解方程组的方法了)。还有像中国剩余定理、秦九韶算法等等都能展现古代中国的算法数学成就,一直沿用至今。这些算法在计算工具发展到一定程度之后,“老树新花”,更能展现其价值。其次,要让学生体验基于计算机算法的独特性。如要验证π是无理数,用高级算法可以计算到小数点后几十亿位(当然证明它是无理数只需一页纸,这也说明了“头脑编程”的高级所在,以及计算机的不足),再如某些方程无法求出根式解,则可以求出数值解。另外,要让学生从文化的高度重视算法的价值。算法不仅能体现古今中外数学发展的差异与差距,在信息社会,它也是与信息技术打交道、增加解决问题手段、培养创新能力的重要途径,否则会陷入新时代“文盲”的尴尬境地。因此,某种程度而言,数学的机械化就是数学现代化。

3.教学方法:突出算法化思维训练的层次性

数学教学中,算法化思维培养有三个层次。第一是数学知识层次。如解决鸡兔同笼问题,常用“假设法”,但计算机擅长的“列举法”也有必要让学生掌握。数学问题求解既要追求演绎方法得到的形式解,也要重视基于计算的数值解,不可偏废。“四色”定理的证明就是它们相得益彰的范例。在计算工具越来越强大的今天,将数学问题转化为以计算工具可理解的“算法”是必要的,也是可行的。如用迭代法求方程的根。第二是解题的认知策略层次。如波利亚的“解题表”是典型认知策略的算法化。认识策略算法化不能被机械理解为瀑布式解题策略,而是各种思维活动的算法组合。对认知策略的认知角度不同,其算法特征的理解也有差别,如既有解题策略的行为性算法:阅读、分析、探索、计划、实施、检验等[7],也有策略性算法,如观察(纷繁复杂的客观世界)、抽象、探索(直觉、类比、归纳、联想、推理等)、猜测(可能的规律)、论证(依据定义、公理、定理等逻辑推理)、揭示事物的内在规律。第三个是元认知及直觉层次。对认知策略的监控、数学的直觉等有时也认为是有程序和固定模式偏好的,即是算法思维的高度缩减。总之,在教学时,我们要力求让学生把思考的重点放到对数学问题的整体抽象形式的理解和规划步骤上,即抽象的“算法”上,而不是重复的技巧性强的计算上。

4.教学技术环境:制作或选用与算法化匹配的思维工具

这里所说的思维工具是指那些便于学习者呈现他们的学习内容而采用或开发的基于计算机的工具和学习环境。这里所说的思维工具是一种认知工具,如概念图、动态建模工具、可视化工具等等。学生不深入思考就无法使用这些工具,所以思维工具应该是一种“促进思维的工具”。数学课堂上,技术环境至少是能使师生与计算机做一些可探究的、开放的交流,包括具体数据、符号(包括图形)的解释表达和运算;预测用某种算法可能带来的结果;根据具体数学学习内容构造性的选择操作;制造适合自己的学习情况的规定和规则;表达自己数学教学思想(对师范生而言)等等。

“算法化”在不断泛化过程中,其“初心”即关键属性不能丢,即有条理、有步骤地思考。同时,它在与数学的联系上更不能被割断。数学教学中培养算法化思维是“近水楼台”,是自然的,也是必要的。算法化思维在培养学生的解决问题能力和创新能力中起着独特的作用。当然,任何一种数学思维过程都不是单独存在的,所凝练出的数学思想都应该是算法的、形式的、直觉的统一体。同时,算法化思维具有普适性,教育的最终目标也必须由课内推及课外,并逐渐重新脱离信息技术的束缚,融入学生的日常生活中,引导他们寻找更加美好的生活策略,并能切身体验到“算法之美”[5]。

猜你喜欢

工具信息技术算法
新一代信息技术征稿启示
新一代信息技术征稿启示
新一代信息技术征稿启示
波比的工具
波比的工具
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
“巧用”工具
一种改进的整周模糊度去相关算法