蔡荣华 高薇
摘 要 可视化编程工具已经被用于中小学计算机科学教学中。探究Scratch和Lightbot两种可视化编程工具对中小学生的作用,并考虑编程方法对开发计算思维的影响。
关键词 Lightbot;Scratch;可视化编程;计算思维
中图分类号:G652文献标识码:B
文章编号:1671-489X(2019)04-0074-04
Abstract Visual programming tools have been used in computer science teaching in primary and secondary schools. The purpose of this paper is to explore the Scratch and Lightbot two kinds of visual programming tools for primary and secondary school students, and consider the programming approach to the development of computa-tional thinking.
Key words Lightbot; Scratch; visual programming; computational thinking
1 引言
当前处在数字化时代,科技在人们的生活与工作中扮演着重要角色,计算机教育在世界各地的教育中受到越来越多的关注。儿童成为计算工具有效用户的需求已经引起对计算思维概念的重新审视。该术语最初由Papert使用,周以真将其描述为计算机科学家使用的解决问题的过程。她表示,应将其作为整个学校课程的基本技能进行教学。自从周以真重新引入计算思维的概念之后,计算思维成为国际上许多学者研究的热点。
编程工具被视为发展计算思维技能的手段,诱发了各种新工具的发布,如Scratch、Hopscotch、Kodable。Scratch仍然是儿童编程工具中使用最广泛的一种,它从建构主义和LOGO编程语言中获得灵感。Papert通过思考程序设计理论,使学习者了解思维过程,他相信这些技能可以转移到其他背景。Scratch通过基于块的编程提供了一个建构主义学习环境,学习者将指令块组合起来形成程序。在Scratch编程中,研究人员确定了不同的方法。
2 计算思维
Seymour Papert最先提出计算思维的概念,作为其研究儿童如何通过计算机编程发展程序思维的一部分。周以真重新引发了对计算思维的兴趣,认为“在阅读、写作和算术之外,我们应当将计算思维加到每个孩子的解析能力之中”。此外,周以真建议教授计算机思维,使孩子们能够以抽象和算法的方式学习与包括数学和科学在内的许多学科相关的思维。她继续将计算思维定义为“通过计算机科学的基本概念来解决问题、设计系统和理解人类行为”[1]。已经有许多努力来证明计算思维中涉及的内容。人们普遍认为,它包含计算机科学家通常用于解决计算问题的所有概念,但概念仍然需要讨论。
总结七个最常见的概念[2],为计算思维下一个工作定义:抽象和概括(从问题中删除细节并用通用术语制订解决方案);算法和程序(使用一系列步骤和规则来解决问题);数据收集、分析和表示(使用和分析数据来帮助解决问题);分解(将问题分解成若干部分);并行性(同时发生多件事);調试、测试和分析(识别、删除和修复错误);控制结构(使用条件语句和循环)。这个过程有助于确定个人概念并提供对计算思维的更深入理解。这是在其余工作中使用的计算思维的定义,并将用于评估两种编程工具的潜力,以开发计算思维技能。
3 编程工具
Scratch Scratch是为8~16岁的儿童设计的基于块的编程工具,可以让孩子们轻松创建短篇故事和游戏,字符可以添加到场景中,并通过组合指令块给出行为。Scratch还执行从左到右(读取英文语言的方式)的指令,有触摸屏使用的大按钮,并且可以在场景顶部叠加网格以帮助儿童计算距离。数字参数值的最大值为25,孩子们可以通过按下它们来执行单独的指令,以帮助他们探索每条指令的功能(见图1)。Scratch是根据几种适合年龄的设计原则开发的,上手更容易,但也为使用更复杂的概念(低地板和高天花板)提供了空间,允许探索的许多途径和风格,可通过实验(可修饰性)逐步开发创意,界面更加友好和好玩,可以用于广泛的学习成果(课堂支持)。Scratch旨在“通过修补和协作来支持自主学习”,并要求应用计算思维概念。
Lightbot Lightbot是一款益智游戏。玩家必须在有限的程序空间中安排一套固定的基于块的指令,告诉机器人该做什么(见图2)。目标是对机器人进行编程,将某个关卡中的所有蓝色块变成黄色块。这是通过将机器人导航到蓝色块并执行灯光命令完成的。玩家可以将一个关卡分解成不同的部分,然后一个接一个地解决,直到他们拥有完整的解决方案。一些较低的级别只能通过正确使用程序和条件来完成。对于程序,玩家可以在主程序下方的其他程序空间中使用特殊说明来调用,条件是通过使用涂色工具实现的。该工具为机器人着色,以便只执行该颜色的指令。Gouws、Bradshaw和Wentworth认为Lightbot对于练习计算思维非常有用,它专注于使用计算思维作为解决问题的过程,并且玩家会因为通过获得最佳解决方案而获得奖励。
4 案例分析
目的和假设 这是一项探索性研究,利用两种不同的编程范式来检验儿童的编程方法。尽管形成了一些假设,但该研究主要是为了确定可能成为未来研究重点的问题。根据现有文献形成三个假设:1)Scratch的编程接口会比Lightbot接口带来更多的“修补”;2)Scratch的编程接口可以改进解决问题的任务;3)更高能力的玩家将从Scratch的编程界面中受益更多。
研究对象 研究参与者包括年龄在十二三岁的20名男孩和20名女孩。
研究过程 为这项研究创建两个版本风格的游戏,一个使用Lightbot编程接口,另一个使用Scratch的接口(见图3)。可以将指令添加到程序中,除非链接到触发块(参见表1),否则指令将不会执行。游戏有15个等级,它从简单的级别开始,只需要前进和灯光指示;之后的级别会引入更复杂的移动和多个灯光级别。难度级数的设计是为了能够挑战目标年龄组中更有能力的孩子。
创建两组20名参与者,然后每个小孩在一间与儿童教室相连的小型阅览室玩一个游戏版本30分钟。两台笔记本电脑彼此背对背,这样每个小组的一个孩子可以在不知道自己的同班同学使用不同版本的情况下玩游戏。一起测试条件意味着任何无关变量(如一天中的时间)均会对两组产生影响。所有参与者都通过教程视频获得统一的游戏介绍。被用来探索参与者如何使用每个版本的游戏的一系列数据:1)程序操作,添加、移动和删除每次尝试的指示;2)参与者完成某个级别所需的尝试次数;3)每个参与者达到的最高水平;4)参与者每次尝试所花费的时间;5)参与者完成一个级别所花费的时间。
总体的表现使用每个参与者达到的最高水平来进行测量。这可以结合程序操作来探索这两个条件对整体性能的影响。还收集了其他绩效指标的数据,如参与者完成某个级别所需的尝试次数以及完成该级别所需的时间。这些措施可以用来显示这两场比赛是否与预期相似。
研究结果 编程界面是这两款游戏之间的唯一区别。对各组之间的整体表现度量进行独立的T检验(见表2)。平均而言,Lightbot玩家在30分钟内达到略高于Scratch玩家的水平,但这种差异并不显著,t(38)=0.54,p=0.59。Scratch玩家花费的时间比Lightbot玩家稍多一些(以秒为单位),再次差异不显著,t(38)=-1.12,p=0.27。最后,Scratch玩家比Lightbot玩家的平均攻击次数更少,这种差异并不显著,t(38)=.98,p=.33。
讨论 结果显示,这两款游戏的整体表现都相似,参与者达到相似的水平,在每个水平上花费了相似的时间,并尝试完成每个水平。鉴于编程接口是两个版本之间的唯一区别,也可以说游戏提供了一个合适的挑战水平,因为所有参与者至少完成了游戏的第三级,大约三分之一的参与者达到或完成最后一级。
通过添加、移动和删除指令来衡量,各组之间的程序操作量存在显著差异。Scratch状态的参与者每次尝试的操作次数比Lightbot状态中的参与者多1.9倍,他们平均花费1.4倍的时间来制定每次尝试。这些发现符合Scratch设计的建构主义原则,并与“以工作进行指导而不是停留在预先制订的计划”的观点相一致。
5 两种编程工具的比较
使用前一节中的定义(表3)分析这些工具对计算思维的支持,由此可以得出结论:这两种工具都鼓励计算思维,他们都使用第二部分中确定的几乎所有通用计算思维概念;唯一的区别是Lightbot不支持并行性。
尽管它们有相似之处,但在Scratch和Lightbot中使用的可视化编程范例之间存在特定的操作差异。在Scratch中,可以在程序空间中添加无限数量的块,除非这些块链接到触发块或单独按下才能执行它们,否则不会执行这些块。在Lightbot中,播放按钮根据主程序中的顺序执行。Lightbot还会根据当前级别限制程序中的指令数量。正是这种运营差异导致探索中小学如何使用这些工具,以及他们是否支持根本不同的编程方法。
6 结语
本文探究Scratch和Lightbot两种可视化编程工具对中小学生的作用,但仍然需要更多的研究来确定中小学生如何使用编程工具以及它们如何影响他们解决问题和计算思维能力的发展;还考察了计算思维的现有定义(和期望),未来研究更要侧重于计算思维中涉及的各个概念。研究编程工具是否可用于开发诸如分解、抽象和算法思维等概念,是今后探索的一个方向。
参考文献
[1]WingJM. Computational Thinking[J].Communications of the ACM,2006(3):34-35.
[2]BarrV, StephensonC.Bringing Computational Thinking to K-12: What is Involved and What is the Role of theComputer Science Education Community?[J].ACM Inroads,2011(1):48-54.
[3]朱丽彬,金炳尧.Scratch程序设计课教学实践研究:基于体验学习圈的视角[J].现代教育技术,2013(7):30-33.
[4]焦建利.可视化编程应用:让儿童快乐地学编程[J].中国信息技术教育,2014(7):16-17.
[5]陶媛.芬蘭启动新项目为儿童学习计算机编程提供机会[J].世界教育信息,2014(5):77.
[6]姚鹏阁,颜磊,杨阳,等.树莓派教育应用:儿童编程能力培养的新途径[J].现代教育技术,2015(10):113-118.