让“计算思维”的种子在Scratch教学中发芽
2019-01-06陈强华
陈强华
【摘要】《江苏省义务教育信息技术课程指导纲要(2017年修订)》指出,计算思维是信息技术学科核心素养之一。小学生通过学习信息技术课程,掌握了信息技术的基础知识,有相应的想象与创新能力,但对于编程教学中蕴含的算法思想、计算思维还需进一步培养。小学编程以Scratch教学为主,应该从单纯以语法、算法为主的编程教学,向培养学生计算思维和解决问题的能力转变,从而进一步提高学生的信息素养。
【关键词】信息素养 计算思维 Scratch教学
2006年,卡内基·梅隆大学的周以真教授对计算思维进行了解说:计算思维是运用计算机科学的基本概念,涵盖计算机科学领域的一系列思维活动,包括问题解决、系统设计和人类行为理解。在Scratch教学中,不能只要求学生学会如何编写程序,更重要的是让他们系统化地分析,富有创造性地思考,从而有效地解决问题。
2013年,南安普顿大学的Cynthia Selby博士和John Woollard 博士提出,计算思维包含五个要素:抽象(Abstraction)、分解(Decomposition)、算法思维(Algorithmic Thinking)、评估(Evaluation) 、概括(Generalisation)。编程与计算思维不同,但编程教学是培养计算思维的关键手段。
一、抽象思维,建构问题情境
在现实生活中,我们面临的问题往往是混乱和复杂的,这要求我们从计算机可以处理的问题中抽象出这个问题。所以,教师要根据教学内容与教学目标,基于真实的问题,有目的地建构问题情境。
例如,在教学《穿越迷宫》一课时,通过情境模拟在有障碍的教室中进行穿越。
师:同学们玩过迷宫游戏吗?今天我们把教室当成迷宫,请一名同学在10秒内从教室前面穿越,绕过最后一个同学的座位,回到讲台位置。
随后提出问题:(1)迷宫怎样得来?(2)障碍物如何得来?(3)谁来穿越迷宫?
生:(1)通过背景绘制得来。注意迷宫通道的大小,并根据独特的通道添加一些环路来混淆视线。(2)通过绘制或添加角色设置障碍。(3)注意穿越迷宫时角色的大小设定。
建构问题情境是抽象思维重要的一环,在激发学生学习兴趣的同时,也可以引导学生感悟编程方法。
二、分解任务,厘清编程思路
分解任务是把整个看起来比较复杂的问题进行合理的划分,将一个总问题通过分解,进而引导学生一步一步去解决。经过任务的分解,将难点、重点进行抽丝剥茧,厘清编程思路,从比较大的任务负荷中解脱出来,切实有效地解决问题。
例如:在教学《穿越迷宫》时,分解任务后发现,角色控制和障碍判断是编写程序的重点。
1.角色控制
师:同学们都玩过游戏了,一般电脑游戏靠什么控制呢?
生:鼠标或者键盘控制。
师:Scratch可以使用鼠标移动来控制角色的移动,或者使用键盘的按键控制其移动。你觉得这里用什么控制比较方便呢?
生:让角色跟随鼠标移动。
师:如何用鼠标进行角色控制呢?
……
随着讨论的不断深入,学生的思考也不断成熟,问题也被层层分解,从而找到解决的途径。
2.障碍判断
如果角色在移动的过程中,碰到舞台通道边缘的黑线,使用条件判断(如果……那么……)碰到黑色,从而通过具体坐标位置使其返回出发点;如果碰到设置在通道中的障碍物,则要使用条件判断碰到角色,使其返回出发位置。
三、游戏互动,渗透算法思维
算法思维是将一些较为复杂的问题,抽象成具体的可执行指令或规则,这样就可以由计算机通过模块化来解决问题。玩游戏一直是学生的天性,吸引他们的是游戏中人与计算机的互动。因此我们在教学时,要引导学生在编写游戏时注重“可玩性”。通过不同的舞台背景、角色设置、难易程度等模块,以算法思维激发学生的想象力与创造力。
例如,在教学《穿越迷宫》时创设情境,能不能10秒内穿越教室,这就是在编程时加入的计时器模块。编写时可设定在规定的时间内,成功穿越迷宫,将获得惊喜,还可以设置不同的舞台背景来设置不同的关卡,可以在迷宫中放置加分角色或减分角色,碰到加分角色可以使游戏难度低;碰到减分角色,则反之。也可设置不同的出入口,来实现多人竞赛。
四、纠错评估,不断优化程序
评估的作用是确保编程的最优化。很多情况下一个算法不能完美地满足所有的条件,这时候就要纠错,进行综合考量,不断优化程序。纠错评估是编程的重要环节,始终伴随着学生的整个学习过程。当学生进行程序调试时,要引导他们能像计算机解决问题一样去思考,并能理解执行的每个环节,与实际结果进行比对。在评估过程中发现结果与预想不一致时,就要进行纠错,采用其他算法来实现。这样反复纠错评估,不仅能使学生在算法上有所突破,更能提升学生计算思维的能力。
1.读懂脚本,主动纠错
在信息技术教学时,往往把“读”忽略掉了,其实在编程教学中,这是卓有成效的方法。在教学时,学生看到程序有问题,运行一直出错,却找不到头绪。教师引导学生“读”脚本,一边读一边理解含义,这是一种主动纠错行为。
例如,在教学《穿越迷宫》时,学生的条件语句(如果……那么……)已经使用,可程序却没有去判断,学生感觉到很无奈。这时将这个脚本进行展示,请大家一起来集体纠错。先由这个学生去“读”这个脚本,并说出每一步的含义,再由其他同学一起进行纠错。发现问题原来是少了重复执行命令,程序只能判断一次,不能一直判断。
2.有效合作,不断优化
合作学习,首先要明确解决的问题,是不是有合作的必要。对于那些简单的、学生能独立完成的任务,就不太适合合作学习。唯有那些学生个人不能解决的、并能在很大程度上让学生优势互补的问题,才是能使程序更优化的有效合作,才是有意义的合作。其次,在合作学习中我们要注意明确分工,让小组中的每个学生在一起工作时都要做一些事情,这样每个人都有机会在优化过程中表达自己,他们可以成为合作学习的小主人。第三,要适时引导。学生按小组进行合作学习时,不确定因素会增多,教师要参与其中,并通过指导、提示等形式,让学生少走弯路,使程序調试最优化,提高课堂效率。这样不仅是小组合作的“优化”,更能保证程序设计上的不断“优化”。
例如,在教学《穿越迷宫》障碍判断时,布置小组合作学习时,首先明确小组分工任务,一个学生负责观察角色碰到障碍时的反应,一个学生负责记录,所有组员都要讨论、分析,为什么碰到障碍不能返回起点。找到原因后,进行修改,找到程序设计的最优方法。
五、概括归纳,迁移解决方案
概括是在之前已经解决的问题上,将其归纳为通用的解决方案,并将此迁移到更广泛的问题情境中。有了前面步骤的积累,学生的计算思维慢慢“发芽”,如果要茁壮成长还需教师的引导,让学生借助概括归纳,巩固和强化学习成果,迁移问题的解决方案。
例如,在教学《穿越迷宫》时,在学生电脑桌面上发送了一个“挑战一下”的文件夹,放入难度不一的三个半成品,请你自己选择,看看你达到哪个级别。
“胜利大逃亡”——高手!
“大鱼吃小鱼”——高高手!
“通过今天的学习,能自主设计其他小游戏”——大师!
通过概括归纳从而进行迁移,学生可以根据自身实际情况接受更高一层的挑战任务,对所学知识进行深入的分析和灵活的运用,进行作品的创作。
南师大李艺教授在报告中说,计算思维是围绕“人”进行的,是科学思想引起的,它关注的是描绘人的内在品质的概念,并把它们视为核心的主要部分。在Scratch教学中,编程的相关知识学生一般都能很好地掌握,在教学中要将重点从编程语法、规则转移到培养学生计算思维能力上来,不断融入计算思维的理念,让“计算思维”的种子在 Scratch教学中“发芽”,从而“遍地开花” ,促进学生信息技术核心素养的养成。
【参考文献】
[1]江苏省中小学教学研究室.小学信息技术教师教学用书[M].南京:江苏凤凰科学技术出版社,2014.
[2]李峰,王吉庆.计算思维:信息技术课程的一种内在价值[J].中国电化教育,2013(8).
[3]王荣良.计算思维对中小学信息技术课程的影响初探[J].中国教育技术装备,2012(27).