基于STEM的初中学生算法思想建构的策略研究
2021-02-23浙江省杭州市清泰实验学校
浙江省杭州市清泰实验学校 陈 晓
一、算法思想构建的意义
算法思想是指按照一定的步骤去解决某个问题的程序化思想,即解决问题的一般方法,如界定问题、抽象特征、建立模型、判断分析、设计问题的解决方案。具备算法思想的学生能从复杂混乱的现象中跳脱出来,对过程与方法进行总结,并进行迁移。因此,激发学生对算法思想建构的兴趣和意识,对他们后续发展有着重要的意义。
二、STEM学习的优势
STEM 学习强调融合多学科知识去解决真实的问题。笔者在实践中引入虚拟机器人(以IRobotQ为例)和Scratch 这两块具有趣味性、跨学科性、协作性等STEM理念的内容,再结合浙教版教材的程序设计模块,总结出了“鼓励直觉思考,呵护算法思想的火花;挖掘教材思想,建构解决问题的基本步骤;引导迁移学习,习得算法思想的利器”这三个层次来帮助学生构建算法思想,提升他们解决问题的能力。
三、算法思想建构的策略
(一)鼓励直觉思考,呵护算法思想的火花
直觉思考能快速产生灵感,主要依靠想象、猜测和洞察力等因素。诺贝尔奖获得者马克斯·玻恩曾说:“实验物理的全部伟大发现,都是来源于一些人的直觉。”因此,直觉思考得到的方法和思路往往是有效的甚至是最佳的,也是具有创造性的。一般来说,知识经验越丰富,直觉洞察力和判断力就越强。因此,直觉思维是可以进行训练和培养的。
1.提炼算法思想。教师提供隐含算法思想的项目,请学生以自然语言的形式直觉概括解决问题的思路。如虚拟机器人教学中,不同任务中都会包含行进任务,如走轨迹、高架、城市道路、迷宫、盘山公路等不同路况。
2.诱导算法思想。直觉的生成需要相关知识的积累和特定情境的激发。笔者通过提问、矛盾或失败结果呈现等方法把学生表面、感性的“直觉”推向深入、理性和完善。如《神秘迷宫》项目,请学生把自己设想成机器人,闭眼沉浸在场景中思考走出迷宫的办法。通过追问“迷宫深处四周可能都有墙,辨不清方向怎么办?”他们恍然大悟:“始终沿墙走!”在“跟着感觉走”的过程中,他们的直觉思维得到了充分展现,在教师的诱导下得到了推进。这种模拟真实情景下的问题往往是未经洗净熨平的原生态问题,解决思路也是开放多样的,因此呵护、扶持他们直觉思考的积极性至关重要。
3.拓展算法思想。将不同任务离散再重组,提取隐含共同算法思想的子项进行拓展练习,既可巩固强化,也能激发学生新的思考,不断扩建他们原有的知识网络。如“巡迹踢球”学会了走黑色轨迹后,尝试应用到“跑道竞速”和“汽车总动员”项目,三个任务中因轨迹线、边界线和传感器相对位置不同,或边界线有连续性的差异,“始终走在路中间”这个基本的算法思想虽然可借鉴,但还不足以解决后两者的问题,这时教师要适时介入引导学生重新审视,帮助他们搭建思维的“桥梁”,逐步开辟新思路。
(二)挖掘教材思想,建构解决问题的基本步骤
浙教版《信息技术》对计算机解决问题的一般过程作了阐述,在课例安排时按任务分析、设计界面、编写代码、调试运行四步骤进行编排。教学时,注重教学内容这条明线的同时,鼓励学生去发现、模仿、实践教材安排所体现的思想方法暗线,帮助学生习得解决问题的基本方法与步骤。
1.问题分析。通读审视问题,聚焦关键词或特征,忽略无关信息,暂时隐藏细节,把问题简单化、清晰化。
2.项目分解。将大项目分解成已有经验可解决的单个小项目,逐步细化、模块化,为结构化编程思想打下基础。
3.算法设计。结合算法的基本要素进行设计:(1)数据对象的运算和操作;(2)算法的控制结构;(3)匹配教材中涉及的算法。编程涉及要素(1)时,关注运算符选取、格式书写、边界条件及取值范围等内容,减少语法错误及严谨性问题;涉及要素(2)时,建议先画流程图,重点分析分支结构的判断条件或循环结构的循环变量、循环条件,再选择合适的结构;涉及要素(3)时,根据不同算法的特点和已有条件,逐个匹配和排除。教师提供如下表1,帮助学生搭建解决问题的思考支架。
案例一:求两个数的最小公倍数。学生直觉思考后,易得出方法a:根据数学思路,最小公倍数肯定能被两个数都整除,因此,从1开始每次循环增加1,往大找最小公倍数。
4.优化改进。进行头脑风暴,集思广益,在原有基础上进行算法迭代,获得思维进阶。上述案例改进方法如下:方法b:最小公倍数肯定大于等于两个数中的最大值,从最大值开始每次循环增加1,往上找最小公倍数,减少了循环次数,节约了执行时间。方法c:最小公倍数肯定大于等于两个数中的最大值,并且一定是最大值的整数倍。因此,从最大值开始,每次循环按最大值的倍数增加,循环次数更少,时间更省,算法更优。
简析:在教师引导下采用了问题分析、项目分解、算法设计、改进优化的四步操作法,深入探讨了最小公倍数的问题,给学生示范了解决问题的一般方法和步骤。分析问题时,我们应聚焦关键词,明确求解的问题。项目分解时,厘清公倍数的概念以及它们所隐含的条件,再把问题细化为:(1)如何验证n是a和b两数的倍数;(2)如何确定求得的n是所有公倍数中的最小的。算法设计时,应鼓励学生用自然语言描述解决方案。自然语言是日常语言,使用熟练,排除了对编程语言不熟悉引起的干扰而回归到解决问题本身,通过填写表格来明确算法的基本要素,为后续编写代码做好铺垫。
(三)引导迁移学习,习得算法思想的利器
迁移学习是指用某个问题中获取的知识和经验去解决另一个不同但相关的问题,有归纳、类比、演绎等不同方法。笔者在教学中发现,用类比法来比较源问题与目标问题的异同,分析两者的结构框架和相关特征,会因易于掌握而被学生接受。
表1“求两个数的最小公倍数”算法设计
1.结构相似迁移。面临新问题时,引导学生分析源和目标问题之间的结构异同,建立新旧问题之间的关联,从而利用已知去解决未知。教材课后的习题,基本都是本课内容的巩固性和拓展型练习,在结构上和例题有相似之处。使用这些练习时,教师可指导学生把练习和例题结合起来分析它们的相似性,从结构上进行类比迁移。
2.特征相似迁移。特征是指问题外表或形式上独特的标识,比结构更易被发现,因此,学生更乐于利用特征相似性进行迁移学习。如“跑道竞速”和“金字塔漫游”路面情况基本相同,都有两条连续边界线,只是路面颜色不同,因此,面临“金字塔漫游”时,脑海中马上会浮现已有的经验,传感器的选择和安装位置等方案的迁移也就水到渠成了。
四、结语
经过教学实践,笔者所带学生在近三年的省、市、区各级的机器人、Scratch 编程比赛中有20 多人次获奖,可见教师有意识地引导学生构建算法思想,对提升他们解决问题的能力有较明显的效果。