基于培养小学生计算思维的Swift Playgrounds 实践探究
2023-10-10卞玉昌刘丽媛安徽省合肥市屯溪路小学
文/卞玉昌 刘丽媛 安徽省合肥市屯溪路小学
学生是知识意义的主动建构者, 而不是被动接受者;教师是学生在学习过程中主动建构知识意义的帮助者,而不是知识意义的灌输者。21 世纪,计算思维将成为人们必备的一项基本思维。计算思维是一个“明确问题和制定解决方案的思维过程”,这个概念最初由美国卡内基·梅隆大学的周以真教授提出,她呼吁教育界要将计算思维作为与传统读、写、算同等重要的技能来培养。国外的计算思维研究总体较为成熟,研究范围包括了早期教育到高等教育的各个阶段,主要集中在K12 阶段。
在国务院于2017 年7 月20 日发布的《新一代人工智能发展规划》中明确指出:“在中小学阶段逐步推广编程教育”;《普通高中信息技术课程标准(2017 版)》中强调:“计算思维被列为四大学科核心素养之一,注重培养学生运用计算机科学领域的思想方法,在形成问题解决方案的过程中产生的一系列思维活动。”我国对计算思维的关注度日趋上升,教育部已将计算思维纳入我国人才培养计划。
计算思维的培养是利用启发式推理来寻求解答,指导学生运用计算机科学的基础概念去求解问题,探索计算方法并建立模型,使学生敢于去处理那些原本无法独自完成的问题。计算机语言的学习,有助于学生在观察世界和面对问题的时候,可以从更多的角度去解构,去分析,去求解,从而更加丰富思考的维度,多层次地锻炼逻辑判断能力,更加有利于培养学生计算思维。
目前,我国面向中小学编程学习的软件比较常用的有Scratch、C++、Python 等。而面对中低年龄段的学生,更多的是通过游戏的方式,或者通过制作简单动画,进行教学。在我校前期的编程教学实践中发现,学生更多停留在游戏的乐趣上,思维层面的锻炼不够深入,并不利于计算思维的培养。例如在小学阶段开设的Scratch 编程课,其编程模式停留在图形化的积木式拼搭上,因为Scratch 实质上是html5编写的框架,与真正的编程语言相比,更注重编程“启蒙”,包括很多中文代码,都淡化了真正的编程语言的“代码”。LOGO 语言面向更加低龄化的启蒙场景,对“代码”进行了更大程度的简化,C++ 语言和Python 作为被广泛用于商业软件开发的高级语言,更多的是作为生产工具而非教学产品。从编译的环境、使用的场景到开发方法对大多数小学生而言过于复杂,接近于拔尖式教学。C 语言,C++ 语言更多时候是出现在各类计算机奥数竞赛中,更适合具备了一定数学和英语基础的中学生。
面对教学实践上的挑战,我校多年来一直在积极探索。2019 年,在传统的C++ 科创教育基础上,引入Swift 课程,引入Swift Playgrounds 这一可视化编程工具,它拥有3D 模型下的游戏闯关模式,有详细的中文内容,也保留了Swift 语言原本的全英文代码构建方式、开发框架的结构,并且Swift Playgrounds 的开发者也积极加入了更多贴近商业开发环境的功能。借助该平台进行编程教学,有利于达到少儿编程教育“从启蒙到入门再进阶”的效果,也更符合我们从学习编程出发,“抬眼看世界”的育人目标。
一、Swi f t Pl aygr ounds 底层代码融合模块化编程易进阶、空间大
Swift Playgrounds 使用的是Swift 语言,诞生之初就着眼于面向零基础的学习者,而又不局限于青少年开发者,所以在内容设计上,以Swift 语言为核心,从简单入门的“命令”到“对象和参数”,从闯关游戏到传感器和机器人的编程控制,还有App 的开发,包含的学习内容体现出丰富的层次感和系统化,体现出“人人能编程”的目标。 Swift Playgrounds 的核心是Swift 语言,其语法与C、Java 有诸多共通之处,在学习其他高级语言时更容易融会贯通。Swift Playgrounds 教学内容涵盖了大部分编程启蒙和入门所涉及的技巧和概念,内含的众多学习模块,提供不同难度的进阶课程。
其中学习编程系列创设了一个游戏的主人公机器人Byte,需要学生编写代码帮助Byte 在虚拟世界里通过对各个关卡的任务目标和技术要求进行阅读理解和逻辑分析,合理地运用编程技巧,完成通关任务。这种3D 游戏闯关模式更适合小学阶段的学生进行编程启蒙学习。学生在游戏闯关过程中,可借助现学现用的方式学习命令、函数、循环、条件代码、逻辑运算符、算法等编程知识点,而不再仅仅是枯燥的概念记忆。
Swift Playgrounds 提供了清晰的学习目标和操作提示,不需要任何编程基础,通过点选代码模块就可以编写代码让Byte 执行动作,并且每一个关卡都不是只有唯一的标准答案,而是学生可以通过自己的分析,用不同逻辑去解构任务、编写代码完成,有一些关卡甚至有十几种解法,这大大鼓励了师生在教学中发散性思维,多角度多方向地思考。Swift Playgrounds 可以自动记录学习路径和各个知识点的完成情况,方便学生自己和教师掌握学生学习情况。由此可见,Swift Playgrounds 具有门槛低、可发挥的空间大、可拓展的特点。
二、Swift Playgrounds PBL 授课模式助力提升计算思维能力
在传统教学模式下,课堂教学呈现出教师单方面教和学生被动学,缺乏互动性的状况。每个人的记忆特点和思考方式不同,学生如果仅停留在对知识的机械记忆上时,很容易失去理解学习目标的好奇心,进而影响学习的动力。因此,我校授课团队在采用什么样的教学策略有利于培养学生的计算思维上大胆创新,将PBL 授课模式成功地引入课堂——基于问题的学习。PBL 强调把学习设置到真实的、有意义的问题情景中,通过以自由组队、小组内部分工合作的形式,每个学生按照自己的兴趣和能力选择自己擅长的任务环节,各自努力,共同解决问题,在锻炼个人能力的同时,培养学生的团队合作意识。同一问题的解决方案往往会有很多种,学生在质疑比较的过程中选出最优方案,从而使问题得到恰当的解决。在这一过程中,学生的计算思维能力发展日渐成熟。
以《让机器人来管理交通吧》为例:一日之计在于晨,美好忙碌的早晨也避免不了许多麻烦。合肥市屯溪路小学位于一个非常热闹的城市主干道附近,前有百脑汇、后有商场、左有医院、右有农贸市场。车水马龙、人来人往的交通既繁忙又混杂。每次经过通往学校的路口都让行人感到十分紧张,当警察不驻守在路口时,就会出现各种不遵守交通规则的行为。有时会遇到车辆之间产生擦碰,但更多时候是行人和车辆互相抢道。此外,还有不少非机动车停靠在绿化带、人行道上,让过往行人只能艰难地从空隙中穿梭。这样日复一日的混乱,不仅给师生上学和放学带来了不少烦恼,也会影响经过这个路口的每一个人的安全。
基于以上现象,合肥市屯溪路小学编程俱乐部的4C 小组成员李牧晓、王鲍梓宸、汪泽楷三位同学创想做一个以“礼让行人,文明交通”为主题的项目,希望能够改善天天都要面对的混乱的交通现状。十字路口情况比较复杂,大家没有办法解决所有的问题。因此在项目中,4C 小组决定从基础的交通管理开始,尝试用科技来解决生活中的问题。项目的整体思路是:在没有信号灯的路口,设计一个机器闸机来管理交通,如果有行人通过人行道就放下闸杆,如果没有行人通过就让车辆有序通行,从而实现车辆礼让行人、行人遵守交通规则的效果。项目选用了三台机器人:ev3_stopper、ev3_car 和一台程小奔。4C 小组共同拼搭完成了ev3_stopper和ev3_car。每台机器人都有各自的使命,ev3_stopper 用来模拟拦截车辆的机器闸机。闸机有一对长长的红色手臂,手臂的作用是在没有红绿灯的情况下,拦截需要礼让行人的车辆;ev3_car 用来模拟机动车道上行驶的车辆;程小奔则是用来模拟在人行道上过马路的行人。
机器人要完成以上任务,要解决的核心技术也是4C 小组整个项目的难点。“闸机”ev3_stopper要判断过马路的是行人还是车辆,同时要辨别行人行走的状态,根据不同的状态控制闸杆的抬放,还要做到排除其他数据干扰;“车辆”ev3_car 要满足检测到减速带和闸杆,实现提前减速、停车和正常通行这几种状态间的合理转换;“行人”程小奔则要解决行进速度和摩擦力导致的每次运行的效果都不同的问题,需要反复调试,做到在闸机ev3_stopper 的检测范围内行驶。4C 小组面对的传感器精度、数据过滤、阈值设定、栏杆抬放算法等一系列问题,对小学生而言是充满了难度的。项目从组建到完成,团队遇到的挫折不计其数,困难不会让4C 小组止步不前,只会让他们越挫越勇。
经过反复演练、测试、编写代码,时间和速度算法、判断算法这些难题被逐一解决。4C 小组终于充满信心地站在华东区的赛场并且以第一名的成绩进入决赛。之后大家更不敢懈怠、继续备战。通过三个月的精心打磨,深入研讨、优化代码,整个“礼让行人”项目更加完善。在决赛中,4C 小组现场答辩沉稳自信,大家熟练操作着各自负责的机器人,又相互默契地配合完成项目的运行,对突发情况处理游刃有余且淡定自如。整个团队表现可圈可点,评委老师连连称赞,给予“让机器人来管理交通吧”项目极大的肯定和鼓励。4C 小组一路披荆斩棘、突破重围,顺利进入全国总决赛,并且不负众望,获得了中国高校计算机大赛K12 组最佳作品奖。为学校赢得荣誉的同时,4C 小组自身也得到了锻炼,拓宽了视野、开阔了眼界。借助这个项目,大家能够充分体会到团队协作的重要性,每一次演练后,大家及时复盘、总结问题、调整策略,不放过任何一个可能影响整体项目的细小环节。因为4C 小组心里始终明白,要打的是一场“配合战”。
三、Swft Playgrounds 校本课程实践提升教师团队教科研水平
Swift Playgrounds 平台里不是所有内容都适合小学生学习,如何在Swift Playgrounds 平台中选择适合小学生的教学模块?通过教学实践,授课教师团队依托对学生作业、课堂练习等各方面的数据收集,并进行数据分析,依此判断所选教学内容是否符合小学生的认知规律,课时安排是否合理。通过组内公开课,打造优秀课例,收集教学资源建立资源库,为后期课程推广,积累经验。
学校组织骨干教师成立Swift 编程教研组,由教研组长带领教师团队从新班开课到组织校内学生联赛,从申请合肥市教育信息技术研究课题HDJ21015 到校本课程编写,Swift 编程教研组积极学习先进的教育理念,丰富自己的知识,开阔视野,认真上好每一节课,积极推广运用好课题研究的成果经验,提高课堂效率,培养学生的参与精神和创新思维能力。
为让更多家长朋友了解Swift Playgrounds,更大力度地推广Swift Playgrounds 校本课程,学校充分利用微信公众号的“家长学校”平台进行宣传。Swift 编程教研组撰写方案、出试题、组织监考、评选、颁奖,稳扎稳打,力求在这个新的领域中教学相长。
经过几年的历练,Swift Playgrounds 实践探究让参与学习的学生和老师在编程技术、语言表达和现场展示等方面都取得了明显的进步。Swift Playgrounds 项目学习团队的所有成员系统地学习了Swift 语言,学习如何写代码,提高逻辑思维能力以及做事的条理性和专注度,促进养成良好的学习习惯。部分老师也顺利成为官方认证的Apple Teacher。学生们开始习惯用细心严谨的态度去认识事物,在遇到难题时,会换个思路去判断,主动思考问题出在哪里,然后想办法去解决问题。这就是在培养小学生的计算思维。Swift Playgrounds 真是大有魅力,很多现实世界中无法完成的事情,可以通过Swift 编程得以实现。学生看到自己创造的成果,学习兴趣越来越高!
爱上一门学科容易,坚持下去却不简单。日新月异的数字化技术让人们的生活越来越便捷,越来越智能。科技兴国,科技强国,强国在少年,强国于现在!学问勤中获,学问探中得———屯溪路小学将不断奋斗,让莘莘学子用读、写、算和计算思维看世界,用科技开创更美好的未来!