从“模仿”走向“探究”:让计算思维融入编程教学
2022-12-16吴敏娜江苏省苏州市吴江区程开甲小学
吴敏娜 江苏省苏州市吴江区程开甲小学
《义务教育信息科技课程标准(2022年版)》(以下简称《新课标》)中明确提出信息科技课程的核心素养由信息意识、计算思维、数字化学习与创新、信息社会责任四个要素组成,进一步明确了计算思维的培养在信息科技教学中的重要作用。计算思维是指个体运用计算机科学领域的思想方法,在形成问题解决方案过程中产生的抽象、分解、建模、算法设计等一系列思维活动,它是一个问题解决的过程。小学信息课堂中的图形化编程软件,则是让计算思维落地生根的一个良好平台。学生通过简便的积木式指令模块的操作,学习程序组件,掌握分析问题、解决问题的思维方法,进而发展计算思维,这对信息科技核心素养的培育很有必要。
● 问题审视:计算思维面临效率的教学“缺位”
首先,空——只有操作,没有思考。为了追求任务的完成度,大多数教师会选择采用“教师演示,学生模仿”的方法来展开教学,并没有引导学生思考、探索,而是直接将知识教授给学生。
其次,略——只有任务,没有指导。有的教师认为,完成一个完整的编程任务很难,因此会选择将大项目分解为小任务的方式来开展教学。但教师会认为小任务已经很简单,无需再讲解或指导,于是放手让学生自己去完成。学生凭借个人感觉进行实操,缺乏具体的、系统的编程方法的指导。
最后,虚——只有结果,没有过程。大部分教师认为,编程课堂上的学习内容,无非就是为了完成某一个具体的编程任务,但在这个过程中,会产生大量无法预估的“错误”,而当这些“错误”产生的时候,他们都避而远之,急于改错为对。这些宝贵的“错误”,一旦被忽视,学生将错失计算思维培养的好时机。
● 解决路径:小步切入,逐层进阶
1.项目分解,化繁为简
《新课标》指出,要以真实问题或项目驱动,引导学生经历原理运用过程、计算思维过程和数字化工具应用过程,建构知识,提升问题解决能力。以项目作为驱动开展教学,不仅能够培养学生从应对和解决驱动问题发展到利用团队合作的力量去创造性解决问题,还能够培养学生主动发现问题的素养。
2.问题导向,逐个突破
教师在利用真实情境激发学生的好奇心后,有针对性地及时提出与情境相关的核心问题,引导学生对问题进行讨论与分析,让学生主动融入到情境中。通过设计层层递进的问题链,驱动学生不断思考和主动建构,逐步地将计算思维的培养融入其中。
3.化用“错误”,思维进阶
不论是在生活还是在学习中,我们总是在追求“对”“好”,对于那些“错”“差”,总是避而远之。但在编程过程中,“错误”是无法避免的,正是有这些“错误”的存在,才能让学生碰撞出思维的火花。在错误中找寻正确,在正确中找寻错误,可以帮助学生在错中思辨,逐渐建立起强大的算法思维。
● 支持策略:助力计算思维拾阶而上
1.由“直”转“曲”:设计完整的学习经历
小学生编程主要是以观察、分析、模仿为主,如他们看到打地鼠游戏好玩,就想自己编程实现,但是,这么复杂的游戏,自己怎么编呢?首先,得从观察、分析开始。观察是一种有意识的智力活动,不仅仅是用肉眼去看,更多的是要动脑筋,要用心去感受。观察力是对周围事物的内心“敏感力”,在编程学习中,一定要具备一颗爱观察的心,通过有针对性的训练,由易到难、循序渐进地磨炼观察的敏锐感与想象力。
(1)从整体到个体
教师要引导学生,在观察时,既要观察程序的整体面貌,也要观察其中的部分或个体的独特之处,这些与众不同的地方,需要观察得更加细致入微。例如,在《花朵缤纷》一课中,整体观察,满屏的鲜花盛开很美丽,学生觉得程序肯定很复杂。仔细观察,所有花朵长得一样,只是位置不同罢了;每一朵花由五个花瓣组成,这五个花瓣又一模一样。所以,只需掌握一个花瓣的制作,即可获得“整个花园”。
(2)从静态到动态
静态的事物可以反复看,如一个长在树上的苹果,它的位置永远是固定的。但动态的事物,稍不留神,你就看不清它的活动过程,前一秒它的坐标值还是(X:0,Y:0),后一秒,它的坐标就变成了(X:0,Y:-145)。虽然动态的坐标值转瞬即逝,但仔细观察,便能发现规律。
(3)从虚拟到现实
图形化教学中的很多案例,灵感都源于生活中的实际问题。例如,在讲解《赛车游戏》一课时,学生利用已有的知识储备能够很快地完成赛车的前进功能,但当赛车遇到弯道时,问题出现了:如何才能让赛车自动识别前面的障碍物呢?这对于初次接触的学生而言有些困难,那么不妨回到实际生活中来思考。在现实中,汽车如果快要碰撞到物体,会有什么反应?学生很快能够想到“滴滴滴滴”的警报声。那么,汽车是通过什么设备感应的呢?这样将现实和虚拟对比,虽然学生对“设备”的概念可能依旧是模糊的,但至少在回到虚拟的编程世界中时,他们能够想到,也要借助一个“设备”让赛车自动识别障碍物。由此,本堂课的难点得以突破。
2.聚“散”为“整”:形成深度的计算思维
(1)从模糊到清晰,用自然语言表述详细功能
在图形化编程教学中,教师在正式授课前,通常会展示优秀的作品供学生欣赏。那么,如何将它转换为学生自己的作品呢?首先要进行分析,分析的过程是对学生进行有意识的引导,旨在培养学生在“动手做”之前先要“动脑思”。学生将头脑中“思”的结果转化为描述性语言的过程,实际上就是形成利用编程思想解决实际问题的意识的过程。
例如,在讲授《防疫助手卡达鸭》一课时,最终要呈现的效果是:卡达鸭自动地不停出示健康码和行程码。如何做呢?教师引导学生在操作前先分析,并将分析的结果用自己的语言表述出来。这一过程,实则是在对算法进行简单的描述。算法的形成会经历一个从模糊到清晰的渐变过程,“说”可以加速这个进程。因此,算法教学要重视“自然说”的过程。
(2)从自然到规范,借助流程图探究编程过程
学生通过观察、分析、表达,在软件中找寻与自然语言一一对应的控件,许多不完整的、零散的控件已经逐步呈现。那么,如何将它们进行有效、准确地拼搭,从而实现预期的功能呢?绘制流程图是促进学生理解程序逻辑关系的有效手段。
例如,在教学《防疫助手卡达鸭》时,教师引导学生:大家已经找到了许多零散的控件,如何将它们拼搭起来呢?请大家按照找到的零散控件,将流程图补充完整。通过控件之间有效的组合、拼搭,学生能一目了然,并清晰地知道,要完成任务,应先用到哪个控件,再用到哪个控件。学生脑袋里的抽象想法,在“流程图”的助力下,一下子就有顺序、有目的地外显出来。
(3)从基础到创新,在交流分享中碰撞思维火花
在教学中,教师可以通过开放性和挑战性的主题任务,激发学生的创造潜能,培养思维品质,形成创新意识和能力。
例如,在教学《防疫助手卡达鸭》时,教师提出如下问题:①电子版的卡达鸭有什么缺点?②如何解决?有的学生提出利用3D打印软件,自己设计一款真实的卡达鸭;有的学生建议可以加上一些硬件作为辅助,如加上舵机,让它的手能真的动起来,还可以加上一些传感器,让它的功能更丰富,等等。通过生生互动、师生互动,学生的探究兴趣被大大激发,学生认识了同伴、认识了自我,从而激发了学习主动性和积极性。
3.重构个体的心智模式
在教学中,教师要将“错误”作为重要的教学资源,合理并充分利用,要让“错误”发挥最大的功效,促进学生学科素养的发展。
(1)“错误”的经验反思
在程序的调试过程中,总是会遇到各种各样不同的“错误”,当这些宝贵的“错误”产生时,学生需要不断地思考更新解决问题的思路,进而不断优化自己的程序。在程序的优化阶段,学生可以不断优化自己的流程图设计,以此发现最佳的问题解决方案。在这一阶段,学生会反反复复修改自己的设计,这一方面呈现了他们抽象和优化问题的思维过程,另一方面也为下一步实现方案的具体程序开发提供指导。
(2)“思维”的交互生成
图形化编程教学具有一定的开放性,非常适合开展合作学习活动,能够给学生提供更多质疑、讨论的机会,促进学生形成批判性思维品质。
(3)“认知”的结构重建
《新课标》在计算思维第三学段(5~6年级)目标中提到:“通过生活中的实例,了解算法的特征和效率。能用自然语言、流程图等方式描述算法。知道解决同一问题可能会有多种方法,认识到采用不同方法解决同一问题时可能存在时间效率上的差别。”因此,教师可以通过师生融合互动的“学习共同体”,把图形化编程的过程变成师生共同创造、丰富、整合课程资源的过程,促进师生之间的交流互动,建构和发展学生学科核心素养,促进师生共同成长。
● 结语
计算思维是信息科技核心素养的关键要素,它不是靠教师“教”出来的,而是靠学生踏踏实实、认认真真“做”出来的。计算思维的培养也不仅仅存在于信息课堂或编程教学中,它渗透在人们工作、学习、生活的方方面面,只要有需要解决的问题,就有计算思维的参与。从这一角度看,对学生计算思维的培养有着不可估量的作用与价值。