小学数学整合编程的教学设计与实施

2022-05-30 10:48:04李利肖丽珍郭建芬刘海武
教学与管理(小学版) 2022年9期
关键词:模拟实验编程概念

李利 肖丽珍 郭建芬 刘海武

摘要 将图形化编程作为认识工具与数学学习结合,会对儿童的数学学习产生积极影响。在分析整合编程的数学学习优势的基础上,指出整合编程的数学教学设计要处理好编程教学与学科内容学习、学生探究与教师支持两大关系,其学习形式为促进概念理解和问题解决的模拟实验。相应的教学策略包括:减少直接教学,鼓励学生的自主探究学习,教师通过规范、引导、反馈等方法,维持、促进学生的学习。

关  键  词 小学数学 整合编程 模拟实验 自主探究 教学设计

引用格式 李利,肖丽珍,郭建芬,等.小学数学整合编程的教学设计与实施[J].教学与管理,2022(26):48-52.

用计算机学数学的构想,源自美国著名的计算机教育学家西蒙·佩珀特。他主张技术的真正作用在于充当学习者在建构知识过程中的“认知工具”,借助工具制作作品,以拓展学习者自身建构知识的能力。为此,他组织开发了LOGO教育编程语言,探索基于LOGO所创设的编程环境,帮助儿童通过动手操作,学习编程,在创作作品的过程中体验数学思想,学习数学的创新教学思想。作为佩珀特的传承人,雷斯尼克开发了图形化编程工具Scratch。他认为,儿童不是在学习编程,而是用编程学[1]。即将编程作为一种新的表达方式,使其成为儿童学习其他学科的媒介,通过创作编程作品,助力学生创新思维的发展。本文基于“用编程学”的理念,探讨如何将图形化编程作为认知工具与数学学习结合起来,帮助学生通过编程表达数学思想,实现数学思维可视化,促进数学概念理解和问题解决,从而发展数学思维和计算思维。

一、整合编程的数学学习优势分析

基于编程学数学,从学习内容来看,涉及到“工具的学习”和“数学学科内容的学习”两个维度,即编程工具的使用和使用工具表达数学概念、解决问题。显然,编程工具的简单易用是“用编程学数学”的前提条件。图形化编程无需用户编写代码,只需要将功能模块拖拽,组装,就可以实现编程,适合青少年学习。此外,编程中的变量和列表可见并可操作,使用者通过显示器可以看到过程性数据的变化情况。这一可视化的特点可以为学生理解抽象的过程性知识提供探索环境。

首先,数学学科的抽象特性决定了其真实实验的相对匮乏。可视化编程环境为数学学习提供了一种可以操作、实验的认知工具。在佩珀特研发的LOGO编程语言系统中,运动的小海龟承担的正是作为中介的认知工具的角色。小海龟成为学生身体认知的载体,学生借助于想象,通过角色代入自己的身体认知完成编程设计、操纵海龟运动;通过观察小海龟的运动效果,学生可以直接观测到反馈信息,从而将个人体验与抽象思维联系,帮助其更好地理解相应的数学概念。

其次,编程活动本身有助于与数学相关的抽象思维能力的提升。编程是一个“抽象问题和制定可自动化指向解决方案的心智活动”[2]。它“不仅可以帮助儿童整理思考逻辑,也可以帮助儿童了解自己的思考过程”[3]。这是一个可视化个体思维,并通过及时反馈迭代修正个体思维的过程。

二、整合编程的数学教学设计分析

1.编程学习与学科内容学习之间的关系

用编程学数学,首先需要处理好编程工具学习与数学学科知识学习的关系。Brennan(2015)认为,“实现关于工具的知识和对如何参与创造性设计活动的理解、使用计算机进行个人表达和解决问题之间的平衡非常有必要。”[4]要保持这种平衡,需要在处理“有关工具的知识”时,以计算思维培养为核心进行相应的编程训练。具体设计策略包括:基于计算思维的核心大概念(问题分解、抽象、算法、模块化等)进行与数学内容整合的设计;将计算思维的过程要素贯穿在教学活动的设计中。计算思维的过程要素[5],即提出问题、组织和分析问题、表征数据、自动化解决方案、分析和实施解决方案、迁移,直接指向问题解决,是融合数学解决方案设计的重要连接点。在此基础上对如何利用在编程环境中获得的知识促进数学思想和推理进行重点设计。

以英国伦敦大学学院知识实验室研发的面向5、6年级学生的ScratchMath(课程具体信息可参考网站:https://www.ucl.ac.uk/ioe/research/projects/ucl-scratchmaths.)课程项目为例,作为一个典型的整合编程的数学教学项目,该项目将课程分成两个阶段[6]。第一阶段是以Scratch编程教学为主,借助于有趣的項目主题设计,帮助学生学会使用Scratch,初步理解编程思想。同时结合项目任务,巧妙融入基本数学概念。如专题一“平铺图案”,通过由易到难、由简到繁的平铺图案设计,帮助学生体验、理解包括算法、模块化在内的编程核心思想,同时将旋转、角度、坐标系、对称、数列、平移、正数、负数等数学知识融入其中。基于这样的任务安排,学生初步了解了Scratch中基于角色动作的编程思想,习得了相应的算法,并经历程序设计、建构与调试的过程。第二阶段课程则基于Scratch“微世界”,创设数学思维实验场,聚焦数学概念的深度理解与应用。通过设计相应的程序作品,帮助学生全方位、完整地认识数学概念,同时深化计算思维的应用。如专题四“用数字构建”,通过构建计数器、秒表,进而设计换算游戏,帮助学生深度理解数学计算,强化四则运算以及估算等数学技能,提升推理和问题解决能力。循序渐进、巧妙融合、项目驱动的设计,实现了工具的学习与学科内容的有机整合。

2.学生探究与教师支持的关系

学生探究是指学生在教师为其创设的问题情境中,尝试通过对问题的分析,形成解决问题的方案,并在实践中试误、纠错,不断调试,以找出解决问题的方法。在这一主动探究的活动中,尤其是针对编程以及数学概念中涉及的算法等策略学习中,既要给学生一定的开放探索、试误的空间,又要帮助学生通过解释、交流等表达活动,促使其主动表达观点,厘清思路,并基于对不同想法的分享、质疑与讨论,激发对问题解决策略的深入思考,促进其理解。针对编程的及时反馈的特点,鼓励学生在运行脚本之前先对运行结果进行预测,与事先确定的目标进行比较,这一思维实验的方式,也是设计探究学习中的重要活动。

基于学生探究的更为开放和主动的学习建构需求,赋予教师作为指导者和支持者的角色。因此,教师的教学活动设计应聚焦如何提供教学支持,为学生创设相应的编程体验情境,以确保学生反思和理解相应的概念。具体而言,教师首先需要基于特定的教学目标,选择或创建相应的驱动性任务;基于任务的开展设计具有一定结构化的活动路径以支持编程体验;在具体的编程活动中选择试错、算法与路径规划建议、提供元认知提示、讨论错误与反馈等系列支持活动。值得注意的是,结构化的活动路径并不等同于完全固化的学习过程,而是为了帮助学生将注意力集中在相应的目标上而设计的必需的编程体验。相应的支持活动也指向帮助学生建立起编程与数学问题解决的关联体验。

三、整合编程的数学学习形式

由于数学的抽象性特征,一直以来,数学被认为是一门纯粹的高度抽象的演绎科学。也正是其抽象的特征,造成了数学学习中的认知困难。因此,数学教学离不开数学实验。所谓数学实验,即学生通过实践操作,在探究和发现中经历数学知识的发生、发展过程和数学结论(规律)的验证和运用过程,在习得知识的同时,掌握科学的态度和方法[7]。由此,数学实验是变革当前数学教学的重要载体。整合编程进行模拟实验,可以有效地融合具体与抽象,将原本抽象的概念进行直观形象的表达;更重要的是在设计程序,探索观念表达的过程中,帮助学生理解抽象概念,形成抽象思维。

1.通过模拟实验强化数学概念的理解

数学概念是数学学习的基础。目前小学数学中的概念学习往往通过具体实例与抽象结合下定义的方法进行。这一方法需要学生在具体感知的基础上进行本质抽象,其中的难点是对概念本质特征的抽象。针对“图形与几何”内容领域中的概念可视性强的特点,可以将编程教学的核心算法作为两者之间的连接点,围绕数学概念如何通过算法实现意义理解进行内容整合。例如,通过核心算法(移动定长旋转90°,并重复四次)绘制正方形,进一步改变颜色和线段的粗细(如图1),可以帮助学生理解正方形的本质特征和非本质特征。通过改变重复次数和旋转角度,绘制各种正多边形(如图2)。同样的算法在貌似不同的数学实例中被反复应用,通过不同的实例强化学生对正多边形这一概念的本质认识。进一步拓展,探索正多边形和圆的关系,可以帮助学生更好地建立多边形、圆以及旋轉、对称等数学概念。这样,编程的核心算法,就为学生的知识建构搭建了有效的概念框架。

2.通过模拟实验实现问题解决

数学问题解决,强调在具体的任务情境下,通过对问题中隐含的形式化概念和关系的发现与提取,建构相应的数学模型以解决问题。与传统的数学实验相比,整合编程的模拟实验,需要学生运用编程的语言去发现数学现象,“翻译”数学语言,从而生成数学理解。按照实验目的,可以大致分为探索型模拟实验和创作型模拟实验。探索型模拟实验是帮助学生以编程的方法对数学问题进行探究,从而抽象出相应的数学概念和原理。例如,通过编程实现对相遇问题的探究。以学生通过编程实现对动画对象以一定速度行进一段路程的时间记录为初始任务,使他们发现速度、距离和时间的关系,在此基础上,引导学生探索相遇问题的各类不同情况表征(如图3)。创作型模拟实验是以编程语言为中介,借助于作品创作的情境,帮助学生应用数学概念和原理,完成作品的问题解决过程。这一类模拟实验更具开放性,如下文中模拟钟表实验以及数学小游戏设计等。

四、整合编程的数学教学实施策略

整合编程的数学教学活动聚焦编程的“赋能”作用,旨在通过编程环境与相应的活动帮助学生深度理解数学概念,促进包含数学思维在内的高阶思维能力以及社会性协作、沟通等通用能力的发展。因此,教学的开展应当以此为指向。英国ScratchMath项目教学中采用了“5Es”教学方法——即Explore(探索)、Explain(解释)、Envisage(预测)、Exchange(交流)、BrigeE(连接)[8],其核心思想就是鼓励学生自主探索,并且通过自我解释、预测程序结果以及与同伴的协作交流等促进思维生成。结合我国教学的现状,本文提出以下教学实施策略。

1.减少直接教学,鼓励学生自主探究学习

教学中最重要的是突破教师讲授、学生模仿的范例教学,通过设计详细的学习单,帮助学生在学习单的指引下,以探究的方式自主学习。探究的方式可以是学生试误性地尝试操作新的编程模块,建立对编程模块基本功能的认知。更为重要的是,通过“学习经历”的设计,帮助学生体验分析问题条件、建立模型、预测结果、自我解释、拓展延伸等思维活动,从而在探究中促进促进深层思维的发展。因此,学习单的设计,需要充分凸显其“认知地图”的工具属性,让学生的学习过程“看得见”,具体可以从以下方面进行考虑。

(1)在学生学习过程中可能的疑难点、困惑处搭建支架。需要预估学生在探究学习中可能遭遇的疑难之处,通过列表、问题清单等细化学生的思维过程,并促进其自我解释,跨越难点。例如,探索正多边形与圆的关系是一个难点,在学生尝试改变重复的次数和旋转的角度,创造出不同的多边形后,通过列表,引导学生发现重复次数、旋转角度和总共旋转角度三者之间的关系,并进一步通过问题清单,促进学生清晰表达,起到了较好的支架作用(如图4)。

(2)通过分解步骤,帮助学生完成较高难度的挑战任务。在创作型模拟实验中,学生需要结合数学知识实现创意。例如,模拟钟表的实验中,画出钟表刻度是一个具有较高难度的挑战任务。为帮助学生完成自我探究,可以设计表1所示的系列活动。

步骤分解本质上是为学习者搭建探究脚手架的过程。在具体设计中要重视“不插电”的引导活动的设计,类似的活动可以是强调身体参与的活动,也可以是引发自我反思的思维活动,同时需要根据学生学习情况,适当调整脚手架的强度。

(3)提供范例或相关辅助信息,帮助学生建立知识联系,实现知识迁移。在引导学生自主探究解决问题时,范例或者辅助信息的作用是提供问题解决的线索,以帮助学生基于范例内含的思想,通过迁移寻找问题解决的方案。例如,时钟上的追及问题,通过模拟实验的方式,帮助学生感受秒针和分针的追及过程。学生会遇到如何监测出秒针和分针的重合这一困难。可以设计类似的“红绿相碰”Scratch范例作品,引导学生观察脚本及其运行,并尝试解释程序设计的逻辑,从而提示其寻找解决问题的方案(见表2)。

2.教师主要通过间接指导促进学生学习

通过学习单的设计,教师在一定程度上规范了学生的学习探究。在具体的教学实施中,教师要把教学重点放在通过与学生的个别互动进行个性化反馈,组织生生互动的交流探讨等活动上,从而引导、促进学生与学习单发生持续的、高品质的互动。从编程活动来看,儿童编程的特点是“可修补性”[9]。可视化编程的易学,使学生能相对容易地完成某一程序基础原型的创建,后续的迭代修改与不断深入、完善,成为促进学生深入思考、反思调整的重要抓手,也是教师指导活动介入的契机。此外,Scratch的编程实践尤其强调基于学习共同体的“计算社交”,即通过在共享开放的社区中,对作品进行持续地探讨、修改与完善,培养学习者社会性协作与沟通能力。教师的具体指导活动包括引导学生自我解释,及时记录对问题的思考,促进其清晰表达;帮助学生识别错误,及时反馈,指导其进行迭代修改;组织共同体成员基于对作品的评价、改进,促进协作活动等。

在儿童编程教育越来越受到关注的今天,研究已经证明,在学术知识、认知过程以及社交技能的方方面面,编程教育对儿童发展都会产生积极的影响。因此,从学科融合的视角出发,探索编程教育环境对学生学科学习产生的影响,应该成为一个重要的研究领域。本文探讨了编程环境下基于模拟实验的形式进行数学学科学习的设计与实施原则。后续将进一步通过案例设计,探讨更多数学内容领域与编程的整合方式和实施路径,并通过相关实证研究,探讨编程环境对儿童数学学习的影响因素和适用的范围。

參考文献

[1] Resnick M. Learn to code,code to learn[EB/OL].(2018-12-03)[2019-11-15].https://www.robofun.org/blog-1/2018/12/3/samplekids-technology-and-the-internet.

[2] Yadav,A.,Mayfield,C.,Zhou,N.,Hambrusch,S.,&Korb,J.T.Computational thinking in elementary and second-ary teacher education[J].ACM Transactions on Computing Education(TOCE),2014,14(1):1-16.

[3] 汪琼.儿童为什么学编程?——Mindstorms:Children,Computers,and Powerful Ideas一书的启示[J].现代教育技术,2020,30(02):122-126.

[4] Brennan,K. Beyond Techno centrism: Supporting Constructionism in the Classroom[J]. Constructivist Foundations,2015,10(03):289-296.

[5] 刘敏娜,张倩苇. 国外计算思维教育研究进展[J].开放教育研究,2018,24(01):41-53.

[6] 曾静,熊斌.英国ScratchMath课程项目评介[J].外国中小学教育,2019(04):30-37.

[7] 吉智深.数学实验在小学数学中存在的理由及价值[J]. 教育探索,2016(01):35-38.

[8] L Benton,C Hoyles,I Kalas,R Noss. Building mathematical knowledge with programming: insights from the ScratchMaths project. [EB/OL].(2018-05-27)[2020-04-17].https://discovery.ucl.ac.uk/id/eprint/1475523/1/The%20ScratchMaths%20Project%20accepted.pdf

[9] 孙立会,周丹华. 基于Scratch的儿童编程教育教学模式的设计与构建——以小学科学为例[J].电化教育研究,2020,41(06):75-82.

猜你喜欢
模拟实验编程概念
我家有只编程猫
我家有只编程猫
我家有只编程猫
我家有只编程猫
Birdie Cup Coffee丰盛里概念店
现代装饰(2022年1期)2022-04-19 13:47:32
幾樣概念店
现代装饰(2020年2期)2020-03-03 13:37:44
断块油藏注采耦合物理模拟实验
学习集合概念『四步走』
聚焦集合的概念及应用
输气管道砂冲蚀的模拟实验