APP下载

例谈图形化编程对学生计算思维的培养

2023-09-12王艳霞山东省邹平市第一实验小学

中国信息技术教育 2023年17期
关键词:图形化行人编程

王艳霞 山东省邹平市第一实验小学

●计算思维与图形化编程

2006年,周以真教授对计算思维给出了比较系统的定义,即运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。我们也可以把计算思维理解为,是把看起来复杂的问题分解成一个个简单、具体的问题,通过分析、联想等方法解决问题的过程。[1]计算思维不是独立存在的,而是在用计算机工具和计算机科学方法解决问题的过程中,体现出来的数学能力、设计能力、工程能力等多方面能力的集合。

图形化编程软件为学生提供可视化的编程与开发环境,学生不需要输入复杂难懂的代码,直接通过可视化的程序命令积木块拼接就可以实现程序的快速编写。图形化编程不是简单地让学生掌握编写的技巧,更注重的是培养学生在解决问题时综合运用逻辑操作、算法、数据结构等通用的工程方法和数学知识所表现出的关键能力。学生在学习程序编写的过程中需要理清各事件发生的先后顺序,理解所蕴含的逻辑操作,再在此基础上完成各个模块的搭建、修改,解决问题,从而提升计算思维。

●在图形化编程教学中培养计算思维

1.问题驱动

问题驱动是学生学习的兴趣源头和动力源泉。学习的目的是解决实际问题,而提出一个有效、有趣、有实际意义的问题恰恰是激发学生求知、探索的最好“引线”[2],因为基于解决问题的学习可以促使学生迅速调动潜能,积极融入创设的情境,从而主动尝试分析问题、解决问题。例如,在教学《安全停车有感知》一课时,笔者通过大屏展示了两位新手司机“停车入库”的视频。在学生观看视频后,笔者提问:“第二位新手司机是怎样快速安全地将车倒入停车位的?”学生通过观察回答:“第二位新手司机是通过倒车雷达和倒车影像成功将车倒入停车位。”笔者问:“我们可以用图形化编程软件来设计一个自动泊车程序吗?如果可以,我们应该怎样实现?”借此建立联系,让学生利用图形化编程软件创作自动泊车程序。

2.分析归纳绘制流程图

流程图可以很好地作为计算思维过程抽象表达的形式化工具,以有效展现问题解决的细节分解和过程演绎。例如,在《安全停车有感知》一课中笔者设计了一个简单的自动泊车程序,让学生先观察,然后描述汽车倒入停车位的过程:“汽车首先停在对准车位的位置,接着汽车缓慢倒车,在倒车的过程中,如果检测到白色停车线,则停车。”笔者接着引导学生分析完成这些操作,明确需要用到哪些积木并绘制流程图。学生通过分析归纳绘制流程图(如图1),找到解决问题的方法。

图1

3.搭建脚本

在绘制流程图后,学生尝试自主搭建脚本(与颜色有关的积木块在侦测模块,与执行次数有关的积木块在控制模块。要想让程序运行起来,还需要在事件模块中找一个触发积木块,将这些积木块依照逻辑顺序搭建起来)。在基本的脚本搭建完成后,学生进行调试,以保证汽车在倒库的过程中只有检测到白线(车库停车线)才停下来(如图2)。

图2

这个自动泊车程序基本实现了倒车入库的功能,笔者再次提问:“同学们觉得这个自动泊车程序是否已经很完美了?如果在倒车的过程中,有行人突然出现在停车位上,会怎么样?”学生通过运行调试发现,这个自动泊车程序还不够完善,当行人出现在停车位上时,小车会径直撞向行人。学生通过交流讨论找到了原因——缺少“侦测”行人的模块,于是又添加了“侦测”行人的模块(如图3)。

图3

4.拓展延伸

笔者继续提问:“同学们看看这个程序还有什么需要改进的地方?还有没有不合理的地方?”有的学生结合自己的生活经验得出:“司机应该看到行人提前停车,等行人离开后再继续倒车。”小组交流寻求解决问题的办法,最终得出:要添加“侦测”行人与车的距离模块,即如果汽车“侦测”到“到行人的距离小于一定安全距离”时提前停车,等行人离开后再继续倒车(如图4)。行人也要加一个“侦测”模块,即如果行人侦测到“到汽车的距离小于一定安全距离”时,离开停车位(如下页图5)。

图4

图5

5.评价分享

学生还可以在组内展示自己的作品,与教师、同学一起交流想法,分享创意。笔者鼓励学生通过图形化编程社区网站,对他人设计好的作品进行“再创作”。学生在“再创作”的过程中,既要读懂他人的作品,又要在理解逻辑结构的前提下进行改进,通过这样的过程,提升计算思维。

总之,在图形化编程教学中,通过问题驱动、分析归纳、脚本搭建、延伸拓展、评价分享环节,提升了学生分析问题和解决问题的能力,有效地培养了学生的计算思维。

●与其他学科有效融合提升计算思维

笔者认为,在小学阶段要想培养学生的计算思维,信息科技教师不应局限于本学科领域,而应有意识地与其他学科有效整合、有机融合,打破学科之间的壁垒[3],形成“信息技术+数学”“信息技术+科学”“信息技术+英语”“信息技术+阅读写作”等跨学科教学模式。

以“信息技术+数学”为例,无论是数学学习还是编程学习,都强调解决问题的逻辑性和思维方式的多样性,两者之间有着密切联系。因此,在图形化编程教学中,笔者将编程知识与小学数学知识结合起来开展教学,通过编程的形式解决数学中的问题,让编程成为解决数学问题的一种辅助工具。[4]例如,在“鸡兔同笼”这一案例中,笔者从数学问题出发,用“砍足方法”帮助学生理解这一数学问题中的突出元素——兔子和鸡的头和脚,并且梳理了各元素在等式中的运算关系:兔数=总脚数/2-总头数;鸡数=总头数-兔数。随后在编程软件界面中设置好变量,编写了计算鸡兔同笼问题的小程序,学生只要输入笼中动物头数的总和与脚数的总和即可计算出鸡兔各几只。笔者继续引导学生探索其他方法,学生通过小组合作探究,又找到了“假设法”,即假设全是兔子或假设全是鸡,在刚才“砍足法”的基础上再设置两个变量——假设都是兔的脚和假设都是鸡的脚,从而将抽象的“设……为x”的简单方程及其求解变为生动有趣的编程过程。

除了与数学学科进行整合,笔者还将编程教学与其他学科知识整合。例如,在学生学完图形化编程基本知识和技能后,笔者会提供一系列的跨学科编程项目让学生选择,如“颜色冷暖我知道”“智能读书小程序”“我是小小钢琴家”“根据天气来穿衣”等。通过完成这些项目,学生能结合相应学科知识利用程序的思路去分析具体问题、拟定对应流程、搭建相应程序,有效提升自己的计算思维。

猜你喜欢

图形化行人编程
毒舌出没,行人避让
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
纺织机上诞生的编程
路不为寻找者而设
LKJ自动化测试系统图形化技术研究
我是行人
运用图形化听写式复习,构建高效地理课堂
图形化地区电网无功优化软件开发与应用