基于计算思维培养的 Scratch 教学模式探究.docx
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于计算思维培养的 Scratch 教学模式探究
一、计算思维
计算思维是近年来信息技术教育领域普遍关注的一个热门词。
高中信息技术课程标准(2017年版)明确指出:计算思维是信息技术学科的核心素养之一。
可见,计算思维是未来社会所有人必须具备的一种思维能力,培养学生的计算思维势在必行。
什么是计算思维呢?2006 年3 月,周以真教授首次提出计算思维
的概念。
她认为,计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活
动[1]。
2011 年,国际教育技术协会(ISTE)联合计算机科学技术教师
协会(CSTA)提出了计算思维的操作性定义,即计算思维是一个问题解决的过程,该过程包括确定问题、分析数据、抽象、设计算法、选择最
优方案、推广等六大要素[2]。
二、Scratch 与计算思维
Scratch 是由美国麻省理工学院(MIT)研发的图形化编程工具,
主要面向 8-16 岁的少年儿童。
Scratch 符合儿童的年龄特点及认知
发展规律,以采用拖拽、拼接指令“积木”块的方式来搭建程序脚本,
将编程过程可视化呈现给学习者,学生容易入门,还能从枯燥的程序设
计语言的语法学习和“敲”代码中解放出来。
“想象——编程——分享”是 Scratch 的设计理念。
学生在Scratch 创作过程中,充分发挥自有学者想象,创造属于自己的作品等,培养了创造性思维;在编程解决问题的过程中,锻炼了逻辑思维能
力;在官网社区与他人的沟通交流中,体验了思维碰撞,实现了共享学习。
由此可见,开展 Scratch 教学,有利于培养学生的计算思维。
三、基于计算思维培养的 Scratch 教学模式
融入计算思维六大要素的程序设计课堂的教学流程[3],如图 1 所示。
图 1 基于计算思维的程序设计课堂教学流程
首先,要明确解决的问题,再将现实生活中的对象转变为计算机可以处理的对象,将一个现实问题转变为计算机可以处理的问题,即“抽象”。
然后,把要看似复杂的待解决问题分解为多个容易解决的小
问题。
其次,设计算法编写程序,编程中不断调试程序,排除错误,优
化算法。
最后,分享自己的解决方案,进一步改进和完善自己的作
品,同时“再创作”他人的程序。
根据程序设计课堂教学流程,结合 Scratch 编程工具的特点,通
过在教学中不断实践和反思,笔者总结出了如图 2 所示的基于计算思
维培养的 Scratch 教学模式[4],将课堂教学分为确定问题、场景角色
分析、绘制流程图、搭建程序、调试与优化、分享与再创作共六个步骤。
其中,“场景角色分析”对应程序设计课堂教学流程中的“抽象”
和“分解”,“绘制流程图”和“搭建程序”对应“设计算法”。
Scratch
图 2 基于计算思维培养的 Scratch 教学模式
采用此教学模式,学生在教师的引导下,能亲历解决问题的整个
过程:其中,“确定问题”能够让学生对问题进行整体思考与规划;
“场景角色分析”能够培养学生将现实问题进行抽象、建模、分解的
能力;“绘制流程图”和“搭建程序”能够培养学生的算法设计与分析;
“调试与优化”过程能够有助于学生掌握预测、修正问题的方法,发展学
生优化算法的能力;“分享与再创作”过程,有助于学生树立分享意识,
提升问题解决的迁移应用能力。
所有这些能力就是计算思维的核心概念。
因此,该教学模式能培养学生的计算思维。
四、基于计算思维培养的 Scratch 教学案例
下面以 Scratch 编程经典案例——“英文字母打字游戏”为例,阐述基于计算思维培养的 Scratch 教学模式的应用过程和策略。
1. 第一步:确定问题
解决问题的前提是明确要解决的问题,这样才能有针对性地找到
解决方法。
在“英文字母打字游戏”中,笔者先让学生试玩金ft打字通
中的“拯救苹果”游戏,学生在这个过程中,迅速了解到打字游戏的
基本功能和玩法,因此,能轻松地用自然语言描述出来:多个不同的英
文字母随机从屏幕上方出现并向下坠落。
坠落过程中,如果玩家按下相
应的字母键,该字母立即消失,并得 1 分。
游戏时间为 1 分钟。
通过将
现实中的游戏迁移到程序设计中,大大地激发学生创作欲望和编程兴趣。
2. 第二步:场景角色分析
场景角色分析,实质就是计算思维的“抽象”和“分解”过程。
由于Scratch 脚本的搭建是基于场景和角色的。
因此,“抽象”
和“分解”也应该面向场景和角色。
首先,需分析游戏中涉及哪些场景和角色。
然后,逐步分析各个场景、角色的状态及其动作属性。
最后,建立场景之间、角色之间、场景与角色之间的关联。
在“英文字母打字游戏”中,场景很容易确定。
游戏开始时,导入一张淡雅简洁的图片作为舞台。
游戏结束,则出现有“Game Over” 字样的背景。
在分析游戏角色时,学生产生了分歧:有的学生认为有 26 个角色,即 26 个英文字母;有的认为只需要 1 个角色,为其设置 26 个字母造型,通过造型随机切换和“克隆”技术就可以实现屏幕上出现多
个不同字母的效果。
当然,这两种做法均可以实现游戏的最终效果。
只不过第一种较第二种,虽然在搭建程序时不用考虑造型和角色的数量问题,但是脚本较冗余,不够精简优化。
确定场景和角色后,笔者再逐步引导学生分析场景、角色的状态
和动作属性,填写如表 1 所示的场景角色分析表。
表中需要描述场景
/角色需要实现的效果,并写出实现此效果所用到的指令模块。
表 1 场景角色分析表
最后,建立场景之间、角色之间、角色与场景之间的关联。
本游戏中,只有 1 个角色,因此角色之间的联系不予考虑;场景之间的联系容易建立:游戏开始时,切换到淡雅简洁的背景;游戏结束时,切换到Game Over 背景;此外,角色与场景之间几乎没有关联。
如果场景、角色的关联较多且复杂,笔者建议采用思维导图的形式来梳理。
经上分析,笔者已经引导学生将“打字游戏”这个复杂的“大”
问题转化为表1中易于理解和程序实现的“小”问题。
3.第三步:画流程图
通过第二步场景角色分析之后,学生对场景、角色、关联都有了基本的了解。
接下来,笔者再引导学生根据场景角色分析表,绘制流程图来展现编写程序的思路和结构。
流程图直观形象,易于理解,有利于转化为程序。
本游戏中,字母克隆体的流程图如图3所示。
图 3 字母克隆体的流程图
4.第四步:搭建程序
在第三步绘制流程图中,Scratch脚本程序已初具雏形了。
虽然绘制流程图和搭建程序是两个步骤,但由于Scratch模块化、积木式的搭建方式,绘制流程图实质上就是在搭建程序。
流程图画好后,只
需选择对应的积木指令模块进行搭建,与字母克隆体流程图对应的积
木搭建图如图4所示。
图 4 字母克隆体的脚本
5. 第五步:调试与优化
当编写完Scratch脚本后,运行程序,经常会遇到与预期不同的情况发生,此时就需要快速、准确地去寻找出错的脚本,也就是纠错、调试程序了。
笔者一般组织学生在小组协作中进行程序调试。
让学生在组内观察、记录其他组员出现的错误,描述错误现象,找出错误语句,组内相互讨论解决这些问题的方法,并填写在如图5所示的小组协作纠错表中。
作者再修改程序,重复直至程序完全正确。
在这个过程中,学
生需要阅读他人的脚本,不断地分析,进而找出他人的错误,同时亦要改正他人纠出的自己的错误。
表 2 小组协作纠错表
程序设计中,同一个效果可以有多种途径或方法来完成,如果在其中找出一种最好的或者最合理的方式,就是计算思维中的“优化”。
优化的前提是不改变程序运行的效果。
通过优化,程序会变得更加简
洁、易懂,便于修改和维护。
例如,打字游戏中,1 个字母角色的程序就是26 个字母角色的程序的优化,其脚本精简不冗余,后期修改和维护也更加便利。
6. 第六步:分享与再创作
在解决问题之后,将解决问题的思路和方法推而广之,迁移到同一类问题的解决中,形成一种内在的思维能力,这就是计算思维中的“推广”。
“ 推广”可以通过作品的分享和再创作,去内化和迁移计算思维。
学生可以将自己的作品发布至 Scratch 官方社区,以及国内一些Scratch 社区网站,如阿尔法营、中国少儿编程网、Scratch 魔法学校等,和世界各地的学习者分享 Scratch 作品。
学生还可以在 Scratch 课堂中展示自己的作品、与老师、同学一起交流想法、分享创意。
针对打字游戏,笔者在学生展示分享作品时,提问学生“如何增设游戏的难易程度?”“如果让你来实现这个功能,
你会怎么做?”“如何让用户决定游戏的时间?”“字母坠落至屏幕下方,说明玩家一直没有按下相应的键,你觉得用扣分吗?”“你觉得还有哪些方面可改进的?”……与学生交流功能实现的关键技术和作品改进的思路,目的是开拓学生解决问题的思路。
此外,笔者鼓励学生通过 Scratch 社区网站,对他人已设计好的作品进行“再创作”,改进他人的程序,同时加入自己的想法。
学生在“再创作”的过程中,既要读懂他人的作品,又要在理解逻辑结构的前提下进行改进,计算思维将得到极大地锻炼。
五、应用效果与反思
经过一学年的Scratch教学实践,学生的学习效率明显地提高了。
一是学生对编程学习的态度发生了较大的转变。
之前抵触、缺乏兴趣,现在积极主动性较高;二是学生的学习方式逐渐由“单兵作战”转向“团体协作”,形成了“有问题共商讨”、“互帮互促”的学习状态。
三是学生的计算思维得到了训练和提高。
从接到游戏设计任务时的不知所措、无从下手,到轻松应对、甚至游刃有余,一些学生已经习惯于用抽象、建模、分解等计算思维去解决问题。
在教学过程中,笔者也发现了一些问题:例如,学生在控制多个角色的协调运行方面较弱,归根结底在于对角色分析时,建立角色之间的关联这一环节没有拿下。
此外,部分学生对自己作品的分享意识不够强烈,对自有学者作品的再改进不够创新,对他人作品的再创作止步于不愿阅读他人程序等等,今后仍需强化角色分析的能力,留出更多的时间,提供更多的机会,让学生多参与到“分享和再创作”过程中
去。
六、结束语
计算思维作为适应未来社会必备的思维能力,需要长期地培养和训练。
本文提出的基于计算思维培养的Scratch 教学模式,希望能对培养计算思维教学提供一些帮助,也希望更多的信息技术教师关注学生计算思维的培养。