以Scratch为本展计算思维之魂
2020-06-22杨海洲
杨海洲
计算思维是信息技术学科的核心素养之一,而Scratch软件是一款可以培养学生计算思维能力的编程软件。Scratch软件将指令模块化,学生在操作时以拖动积木块代替敲代码,可以避开繁杂的代码输入和调试,在提高学习兴趣的同时,能将更多精力放在问题求解上,更好地训练计算思维。
但受传统应用软件教学的影响,不少教师在进行Scratch编程教学时重模仿轻分析、重技术轻思维,学生在学习过程中只是将教材代码“搬运”或“模仿”到电脑中,对程序设计所体现的计算思维并不了解,计算思维的培养更是无从谈起。我以青岛版小学五年级信息技术教材中《声控小猫》一课的教学为例,就如何在Scratch编程课中渗透计算思维训练、培养学生的计算思维能力与大家一起探讨。
一、分析现象,确定模型
根据项目内容与教学目标,教师可以以学生熟悉且感兴趣的场景为素材,用视频、图片或文字等呈现这一场景,然后通过逐步引导、层层设问让学生慢慢接近问题的核心,完成由生活中的现象到计算机能够处理的问题模型的转变。在这个过程中,教师可以借助思维导图将思维形象化,让学生更直观地了解现实生活与计算机程序的联系,掌握将无形思维转化成有效导图的方法。
在本教学案例中,我用学生喜闻乐见的蹦床运动视频导入。在观看视频前,我提出要求:观察视频中运动员的运动过程是怎样的,学生在观看时很容易发现运动员先起跳,然后在空中翻滚,最后落到蹦床上,如此重复……接着,我发问:“如果用Scratch程序将这个过程描述出来,那么角色是谁?背景又是什么?本节课的标题是‘声控小猫,你觉得应该如何实现声控效果?能用聲音控制小猫的哪些属性?”学生经过讨论后确定:角色为小猫,舞台背景为蹦床,可以通过麦克风结合“响度”积木控制小猫的运动姿态、大小、形状、颜色等属性。
二、分解问题,理顺思路
有时一个问题中的角色非常多,学生很难在短时间内理顺各个角色的变化过程以及各角色之间的逻辑关系,这就需要教师引导学生化整为零,将大问题分解成一个个小问题来理顺关系,将复杂的任务变成简单的小任务,逐一击破。在分解任务时,可以按操作步骤分解,也可以按角色设计分解,结果可以用思维导图的形式呈现,也可以用WH表格呈现。
在本教学案例中,我引导学生对任务进行分解,用WH表格来呈现。
三、转换语言,训练思维
学生在自然语言与程序设计语言之间建立起桥梁后,就要让学生将自然语言转换成程序设计语言,在这个环节中,教师可以借助流程图引导学生对过程进行整体认知,并找出解决问题所需要的程序模块。
这个过程是编程课的重点和难点所在,也是培养学生计算思维的关键所在。要想让学生有深度思维,就要让学生进行有深度的活动,可以充分发挥小组合作的力量,让学生在共同问题的引导下,通过与小组成员交流和分享、合作与启发使问题分析不断深入,同时吸取他人的创意与想法,改进程序设计。
四、调试纠错,优化思维
学生编写的脚本在运行时可能会出现各种各样的问题,这就需要不停地查找原因并纠错,这个过程有可能贯穿课堂始终。在学生调试纠错时,教师可以用纠错记录表来帮助他们记录纠错过程。
分析纠错的过程是学生再反思、再总结的过程,不断地调试、纠错能引发学生更深层次的思考,也能激发他们的好奇心和斗志,甚至促使他们运用不同的算法来达到相同的效果。这不仅有利于学生完成对所学知识和技能的自我检验,还有助于培养学生的计算思维能力和批判性思维能力。
五、总结梳理,沉淀思维
通过前面几个步骤的学习,学生已经初步形成了计算思维,但这时的思维是碎片化的,在应用时不能随心所欲,这就需要对所学的方法和思维进行梳理总结,将碎片化的思维连贯起来,形成清晰联通的脉络。在本教学案例中,我通过知识树的形式帮助学生理清思维脉络。
不同于思维导图(用图表表现发散思维),知识树运用的是归纳思维。通过画树表现各角色、各操作之间的联系,这不但有助于加深对操作过程、方法以及计算思维的理解,还有助于形成知识链条,使事后从大脑中提取信息更轻松。
六、成果共享,迁移思维
如同数学中的公式是为了让大家应用一样,好的思维方式也是需要共享的。培养计算思维能力的最终目标是将已经获得的思维和方法迁移到其他类似的问题解决过程中,迁移的方式有两种,一种是自我迁移,让学生自己对已经解决的问题加以扩展和延伸;另一种是人际之间的迁移,教师可以指导学生把自己的作品发布到Scratch社区中进行分享,和更多的人进行思维的交流与碰撞,从而拓展思维,另外,还可以利用社区投票和评论功能完善和优化自己的作品与思维。
在本教学案例中,我就引导学生采用第一种思维迁移方式,让学生思考如何让小猫旋转的速度随着声音的增大而变快,随着声音的变小而变慢。
知识是思维之本,思维是知识之魂。在Scratch编程课中,问题解决的过程是思维存在的“本”,而计算思维才是一切活动的灵魂,教师应引导学生多些深入的思考,重思维少模仿,课堂就会活起来,培养计算思维、提升信息技术学科核心素养的目标就能落到实处。