问题自动化求解:数学教学中培养计算思维的探索

2024-04-29 00:00:00佘友军李志丹
关键词:跨学科学习计算思维小学数学

摘 要:问题自动化求解,是一种常见的在数学教学中培养计算思维的方法。数学教学中的问题自动化求解,指针对具体的数学问题,设计解决问题的计算方案,进行算法设计或程序编写,自动化求解数学问题。《平年和闰年》一课,让学生完成“判断平年、闰年”问题的自动化求解,促使学生抽象建模,建立并优化解决问题的算法,有效培养了学生的计算思维。

关键词:小学数学;计算思维;问题自动化求解;跨学科学习

本文系2023年度江苏省教育科学“十四五”规划重点课题“数学赋能小学数学跨学科主题学习的实践研究”(编号:B/2023/03/200)的阶段性研究成果。

计算思维是信息科技学科核心素养之一。而作为一种综合性的思维方式,计算思维的培养可以延伸到其他学科领域,如数学、历史、艺术和科学等。由此,我们尝试引入问题自动化求解方法,在数学教学中培养学生的计算思维。

一、问题自动化求解方法探析

问题自动化求解,指针对具体的问题,设计解决问题的计算方案,进行算法设计或程序编写,实现问题的自动化求解。具体到数学教学中,就是实现数学问题的自动化求解。在数学教学中运用问题自动化求解方法,首先要确定适合求解的数学问题,将数学问题定义为可以使用程序解决的形式。接着,设计多个解决问题的方案,并对这些方案进行评估(时间、成本、可实现性等),选择最合适的方案,然后设计算法进行计算机编程。最后,进行调试。调试对提升学生解决问题的能力很重要——学生需要高效系统地识别并纠正在处理问题过程中遇到的意外情况。教学中,不能仅仅满足于学生完成算法的设计、程序的编写。更重要的是,让学生经历解决问题的全过程,能将较大的问题分解为规模小一些的问题,经历抽象、建模、设计算法、程序验证的全过程,提升利用算法解决实际问题的能力,发展用数学的语言表达现实世界、将生活问题可计算化的意识。

使用算法、编程解决数学问题,能帮助学生加深对数学的理解。比如,传统数学课堂在教学一个数因数的个数时,教师往往通过一组例子演示如何实现因数的有序列举,然后让学生进行练习。在引入问题自动化求解方法后,学习任务由列出一个数的因数,变为设计一个自动列举因数的算法,以实现列举因数问题的自动化求解。学生要完成这样的任务,除了要具备传统的数学能力之外,还需要进行抽象与概括,将列举一个数因数个数的过程用流程图表示出来,通过小组成员之间的有效沟通与交流,设计出求解步骤并用流程图进行描述,从而发展交流能力和计算思维。

需要注意的是,在数学教学中运用问题自动化求解方法,程序只是学生验证算法正确与否的工具,不需要全部由学生编写,教师可以直接提供给学生进行验证,通过修改参数观测结果。培养计算思维的核心是设计算法,算法是解决问题的步骤。我们可以通过类似Flowgorithm这样的软件绘制流程图,将思维过程以可视化的形式展示出来,然后直接运行流程图得到结果,无须输入代码。这样能够极大地降低数学教学中算法设计的难度,凸显数学学科本质。

二、数学教学中运用问题自动化求解方法培养计算思维的案例

本文分享在数学教学中运用问题自动化求解方法培养计算思维的一则案例——《平年和闰年》一课教学。

(一)教学内容与教学目标

关于“闰年”,苏教版小学数学教材是这样描述的:公历年份数除以4没有余数的一般是闰年;公历年份数是整百数的,必须除以400没有余数才是闰年。这句话学生理解起来不大容易,即便是能进行相关问题的求解,也只是一种机械的模仿,没能内化建立一个抽象的认知结构。对此,考虑让学生完成“判断平年、闰年”问题的自动化求解,促使学生抽象建模,建立解决问题的算法,发展数学素养,培养计算思维。

基于对数学核心素养和信息科技核心素养的分析,确定本课的教学目标:(1)数学。会用数学的语言表达现实世界,构建判断平年和闰年的数学模型,实现判断平年和闰年问题的自动化求解,形成跨学科的应用意识,养成理论联系实际的习惯,发展实践能力。(2)信息科技。能利用流程图描述判断平年和闰年的算法,并通过程序验证该过程;能利用多种不同的方法解决问题,通过比较认识到不同方法之间的效率差别。

(二)教学过程

1.发布项目,明确任务

具体教学时,要设计学生感兴趣的问题,以问题解决为导向,将数学、信息科技学科的知识、技能、思维加以整合,实现跨学科知识的构建。跨学科学习给学生提供了富有挑战性的学习项目,通过项目吸引学生投身相关学科知识的学习和构建,在提升跨学科能力的同时,巩固学科知识,重构跨学科知识结构。

本课中,教师发布的项目是“实现平年、闰年判断的自动化求解”。要实现平年、闰年的自动判断,需要对判断的规则进行抽象建模,并用流程图将判断的过程描述出来。最后,还需要使用计算机程序对算法进行验证和调整。这样的思维活动更加高阶,这是常规的数学教学很难达到的。

2.布置体验活动,降低难度

学生直接完成项目任务是比较困难的,因此,教师需要设计一些学习活动,帮助学生理解项目任务,更好地构建解决问题的思路,体验算法。

本课中,教师发布项目任务后,组织学生同桌开展游戏:两人一组,A同学提前在纸上写好需要判断的年份(不能给B同学看到),B同学通过提问推断纸上写的年份是平年还是闰年,A同学只能回答“是”或“不是”(对应程序中的“真”或“假”)。通过这个游戏,帮助学生掌握推断的方法。接着,教师和学生一起提炼总结出判断的流程图,为接下来的算法设计打基础。

3.引导抽象概括,建立模型

要实现数学问题的自动化求解,必须设计出算法,而算法的设计离不开数学模型。

本环节,在前面体验活动的基础上,教师带领学生进行算法的设计,将判断方法用算法进行描述。学生两人小组用流程图描述推断过程,也就是对平年和闰年的判断方法进行数学建模。图1—图3是学生设计出的三种不同的流程图。

图1中的算法先判断年份数是不是100的倍数,再对结果的两种情况进行分类甄别:如果不是100的倍数,是4的倍数就是闰年,否则就是平年;如果是100的倍数,看是不是400的倍数,是400的倍数就是闰年,否则就是平年。图2中的算法是先判断年份数是不是4的倍数,不是4的倍数肯定是平年,是4的倍数还需要进行进一步判断是不是100的倍数,如果不是100的倍数,则是闰年;是100的倍数的话,还需要再判断是不是400的倍数,是400的倍数是闰年,否则是平年。图3中的算法先判断年份数是不是400的倍数。可以看到:流程图描述简洁明了,逻辑性强,相比自然语言描述,流程图不容易产生歧义。

4.指导算法设计,初步达成自动化求解在设计出流程图后,教师指导学生借助计算机辅助设计软件,小组合作将自己设计的流程图设计出来,将部分数学语言用计算机语言描述。

比如,年份是不是4的倍数,描述为“年份 mod 4 == 0”。在计算机科学中,“mod”是求余运算,“年份 mod 4”即计算出年份除以4的余数,“==”将两个等于号连写,是逻辑运算符号“等于”,用于判断年份除以4的余数是否等于0。如图4所示,在开始阶段,首先要声明一个整数型变量“年份”,然后将输入的年份值存储到变量“年份”中,接着,对年份进行判断。

设计好的算法能不能正确解决问题?是否需要进一步改进?这个环节,教师不对学生的设计加以评判,而让学生自己试错,通过自己的测试找到问题并改进。对学生而言,将流程图转换为代码存在一定的困难。对此,教师可引入简化的编程软件(如Flowgorithm),绘制好流程图后,就可以执行,从而对算法进行验证,无须进行编程。这样,学生能将更多的注意力集中在算法的设计上,从而更好地训练建模意识和建模能力。同时,教师可以指导学生利用软件的“步进”功能,观看算法执行的流程走向,便于查找和发现算法设计中的问题,在及时反馈中,逐步调整错误,完善程序。

5.组织展示交流,优化算法

在展示和交流环节,学生可以汇报自己的作品,邀请同学体验自己的算法,交流自己在设计过程中遇到的问题和得到结果的过程。

教师引导学生观察图4中的算法,圈出是闰年的两种情况,即年份是100的倍数且是400的倍数,或者年份不是100的倍数且是4的倍数。

经过充分的讨论后,学生对算法进行优化改进,最终得到简化后的版本。在这个过程中,学生使用多个不同的算法解决同一个问题,对多个不同的算法进行比较,通过对比感受不同算法的执行效率。最终优化的算法如图5所示(其中“!=”是逻辑运算符号“不等于”)。

在数学教学中融入计算思维的培养,促进公民数字素养的提升已成为发展的方向。数学教育者要审视时代赋予的学科教育使命,将数学教学的主题、内容、目标与未来社会的挑战和机遇相结合,为培养适应未来社会发展的新型人才发挥积极作用。

猜你喜欢
跨学科学习计算思维小学数学
STEM项目学习要重点关注什么?①
中小学管理(2018年3期)2018-04-16 15:32:54
创客课程开发的困境与突破
跨学科学习:真义辨析与实践路径①
程序设计课程中计算思维和应用能力培养问题研究
计算机教育(2016年7期)2016-11-10 08:16:19
民族高校C语言程序设计课程教学改革的研究
软件工程(2016年8期)2016-10-25 16:03:32
算法的案例教学探析
浅谈艺术专业学生计算思维能力的培养
农村学校数学生活化教学探析
成才之路(2016年26期)2016-10-08 11:22:10
培养学生自主探究能力的策略研究
成才之路(2016年26期)2016-10-08 11:18:41
体验式学习在数学教学中的应用研究
成才之路(2016年25期)2016-10-08 10:50:54