APP下载

实体编程的教育应用与启示

2018-02-26章梦瑶

现代教育技术 2018年12期
关键词:编程实体学习者

傅 骞 章梦瑶



实体编程的教育应用与启示

傅 骞 章梦瑶

(北京师范大学 教育技术学院,北京 100875)

实体编程是一种特殊的编程形式,具有操作直接、编程简单、交互性强三个基本特征。实体编程在教育中的应用涉及编程与多个学科的融合以及对学生多元能力的培养。现阶段,国内外实体编程的研究都处于起步阶段,尚未成熟。文章通过对已有的实体编程教育应用案例进行分析归纳后发现,实体编程具有较强的易用性,可以较好地促进各类学科知识的学习、高阶思维能力的培养和协同建构能力的提升,但目前也存在产品教育属性不突出、实验研究缺乏、教育功能单一等问题。基于此,文章从产品设计、课程设计、研究设计和生态发展四个方面对实体编程的发展提出了自己的设想。

实体编程;教育应用;编程教育

引言

2017年8月,国务院印发《新一代人工智能发展规划》,明确指出在中小学阶段设置人工智能相关课程,逐步推广编程教育,鼓励社会力量参与寓教于乐的编程教学软件、游戏的开发和推广[1]。美国于2016年11月发布的《K-12计算机科学框架》将“算法与编程”列入计算机科学领域的五大核心概念之一,并致力于帮助人们理解编程是如何影响计算机之外的世界的,以及编程和数据是如何与数学、科学甚至是历史和艺术等学科产生互动的[2]。编程教育是计算机科学教育的一个重要部分,它对帮助学生理解复杂概念,培养学生高阶思维方式有重要作用。目前,在中小学开展编程教育已渐成趋势。伴随编程教育的发展,编程教学的软硬件形式变得更加多样化。编程教育在实践中与教育教学的需求不断磨合,形成了文本编程之外的另外两种编程形式:以Scratch、Mixly、Alice等编程软件为代表的图形化编程和以Programmable Bricks为代表的实体编程(Tangible Programming)。目前,图形化编程已为大众所熟悉,并广泛应用于中小学创新教育的课堂;而实体编程作为一种特殊的编程形式,尚未得到有效的了解和研究。

实体编程自20世纪60年代中期开始萌芽,并于1993年由日本学者铃木英之、加藤浩[3]明确提出。他们在一项研究中基于有形用户界面设计了一套特殊的编程规则,并将此称为“有形的编程语言”(Tangible Programming Language)。实体编程在图形化编程语言的基础上,将屏幕中的代码块实物化,封装到类似于乐高积木的实物模块当中。这些实物模块被赋予不同的属性或功能,如函数、变量、逻辑、传感器等。它们可以通过不同的堆叠方式表达程序逻辑,并对指令做出响应。这种基于现实世界的编程方式的出现,为教育者解开了诸多环境和工具上的限制,为低龄学习者的编程活动提供了更大的探索空间。当前,学术界对实体编程尚无明确定义。本研究基于相关研究成果,将实体编程视为一种以实物连接的方式表示执行序列并由对应装置产生交互结果的人机交互方式,即以实物操作方式描述一个程序的过程。在实际应用中,实体编程主要指通过操作现实世界中的物理模块,采用模块拼接的方式构建、表达计算机程序指令的运行过程。

一 实体编程的基本特征

相较于传统文本和图形化编程形式,实体编程的主要特征可归纳为以下三点:

①使用直接的物理操作。实体编程指令的物理形态主要为块、按钮和卡片,它改变了通过键盘输入代码和鼠标拖动图标的编程形式,避开了低龄儿童在计算机界面中的操作困难。实体编程工具更像是他们所熟悉的游戏形式——积木、遥控器和拼图,对儿童的动作技能要求很低,如堆放、打开开关、按下按钮、拼装拆卸,因而使编程成为了一种手、脑直接作用的活动。

②采用简化的编程语言。传统的文本编程甚至部分图形化编程规则中,依旧存在较多抽象的语法规则。实体编程将复杂的语法封装到编程模块中,尽量避免儿童与复杂编程语法的接触,仅使用少量简单的指令,如顺序性指令(“前进”、“后退”、“暂停”、“左转”、“右转”)和执行指令(“开始”、“停止”、“清空”)等。儿童凭借生活经验,可以在较短的时间内掌握编程规则,从而将更多的精力应用在创造性编程活动中。

③具有较强的现实互动性。实体编程构建了现实的互动环境,它使学习者有更多机会在更自然的教室环境中学习,如桌子或地板,而不是计算机屏幕前。在理想的情况下,这给了教师更多的灵活性来确定教室中编程活动的结构和时间[4]。实体编程不仅促进了学习者与现实环境的互动,也促进了他们与编程实体、与同伴之间的互动。这为同伴之间的合作与交流提供了极大的空间,使儿童在具体的合作编程过程中,可以直接指出、拿起自己认为存在问题的程序块,并将它摆放到合适的位置,由此激发他们自我表达和相互干预、相互评价的意愿,有助于引发学习者与概念之间的交互。

二 实体编程在教育领域中的应用实例

实体编程在教育领域中有多种多样的应用场景,并在不同场景中担任不同的角色。归纳和讨论实体编程在不同教育情境中的应用实例,能够更好地揭示其背后的教育教学理念和教学形式,为今后实体编程设计、开发、应用、实践提供指导方向。本研究基于文献分析,将实体编程在教育教学中的应用归纳为以下几个方面:

1 促进各类学科知识的学习

已有的研究成果显示,实体编程涉及与数学、自然科学、系统科学、艺术等多个学科的结合,其目的在于帮助学习者掌握学科知识,开展探索性的学习活动,培养学科素养。

在数学方面,实体编程被用于训练学习者的几何思维。最典型的代表是美国麻省理工学院MIT实验室开发的Logo语言和实体编程龟,以及MIT后来推出的Button Box、Slot Machine等编程工具[5]。学习者按一定顺序按下按钮、插放卡片,就能够控制编程龟在地板上进退、转向,利用编程龟的行动轨迹绘制图画,由此深入体会几何形状、线段长度、角度等概念。与编程龟相类似的实体编程工具Curlybot则可以通过手势动作控制小车行动轨迹绘制图形,Frei等[6]用它来向儿童渗透微分等数学思想,如控制小车分段绘制圆形,就体现了“无线分割”的思想。

在自然科学方面,MIT实验室的Resnick、Randy[7][8]等就实体编程如何辅助中小学生学习自然科学开展了大量的教育实验。他们以电子砖(Electronic Bricks)、编程砖(Programmable Bricks)、“蟋蟀”(Cricket)等实体编程模块为学习工具,组织学生进行简单的科学实验,从而发展其观察能力、问题解决能力和自主探索能力,如使用电子砖搭建机器生物来观察、模拟真实生物的行为。Resnick等[9]还将实体编程与物理知识结合,他们开发的比特球(BitBall)可以通过编程来控制在不同运动状态下的发光规则,并可以记录加速数据。基于这些功能,学生通过编程探讨与加速度(如重力加速度)相关的物理问题。

在系统科学方面,实体编程被用来帮助学习者讨论一些系统的结构和演进规律。学习者经常通过角色扮演的形式参与学习,对现象进行观察、归纳和总结。MIT早期的一些实体编程产品,如编程珠子(Programmable Beads)、思考标签(Thinking Tags)[10],为儿童了解系统理论提供了方便。编程珠子是一种彼此之间可以通讯的可发光珠子,在一定的通信规则下,不同的串联模式会导致不同的发光效果。教育工作者利用编程珠子指导儿童创建珠子发光的不同动态模式,从而了解去中心化系统现象。“思考标签”则被用在大学预科的学习中,利用该工具可以讨论流行病毒的传播模型和模因论,即思想在社会群体中的传播模式。

在艺术方面,实体编程主要用于音乐教育,它打破了乐器对音乐学习的限制,帮助学习者通过编程活动了解乐理知识,并完成自己的音乐创作。Garaizar等[11]开发了3DU积木,将传统玩具积木与移动设备相结合,学习者通过拼接积木(代表乐器和音符)再现简单的旋律。Tung[12]和Schiettecatte[13]等开发的机器人系统Musicbot、AudioCubes也采用了连接块的方式,支持学习者播放音乐,编写旋律,自主探索音乐的动态变化。

2 促进高阶思维能力的培养

实体编程不仅有助于具体的、良构的学科知识的学习,而且可以被用于培养学习者的高阶思维能力。实体编程对高阶思维能力的培养主要体现在对“计算思维”和问题解决能力的培养。“计算思维”实质上是问题解决的过程,它包括利用计算机和其它工具帮助解决问题、逻辑化地组织和分析数据、通过算法思想支持自动化解决方案等步骤[14]。随着2006年“计算思维”被提出,实体编程在算法思维、问题解决等思维能力的训练上得到了越来越多的应用。

编程学习对计算思维技能学习的重要性已经成为了一项共识。图形化编程、机器人编程相关的大量文献表明,编程教育与计算机科学之间存在着一种有机的联系,是计算思维学习的一项有效工具。Lee[15]和Sarıtepeci[16]均在其研究中发现,学生的编程自我效能感、计算思维技能以及计算思维技能发展之间存在显著的相关关系。实体编程使教师和学生避开复杂的电脑操作和文本代码的编写,将更多时间聚焦于实际问题向程序指令转换的思考过程之中,因而可以更加有效地培养计算思维的能力。在实体编程的相关研究中,Turchi[17]和王丹力[18]均提出了基于实体编程发展儿童计算思维能力的观点,Zaharija[19]提出在早教中使用实体编程和机器人编程来鼓励儿童发展深入的逻辑思维能力。

在教育实践当中,研究人员通过将实体编程与基于任务的学习相结合,从而开展一些测量、计算、策略制定教学活动。王丹力等[20][21][22]针对5~9岁的儿童开发了T-Maze等一系列基于迷宫游戏的实体编程产品,它们以迷宫为编程环境,学习者通过连接编程木块控制虚拟人物在迷宫环境内走动,通过完成路线逃离迷宫和自主设计迷宫等任务来发展他们的问题解决能力和分析能力。Resnick等[23]则针对小学五年级女孩设计了一个“巧克力步道”活动,女孩们手持实体编程工具Cricket前往甜品店,实体编程工具将记录女孩们不同行为下温度传感器感应到的温度,并在计算机中以图表的形式体现,以此来教会女孩们掌握一些收集、分析数据的关键概念。

3 促进协同建构能力的提升

许多实体编程产品都是以游戏产品的形式出现,它们不仅能够更好地吸引学习者的兴趣,还能构建真实的学习情境,增强学习者与环境、学习者个体间的协作互动,并通过这些互动作用获得直接、间接的学习经验,完成对外部世界的自主建构,从而实现个人与个人之间、个体与环境之间协同建构能力的提升。

在MIT的“实体编程火车”项目中,Martin等[24]使用一款通过摆放代码块操控玩具火车的编程产品,使得学习者在码放代码块的同时表述自己的想法,如创作一个故事,使编程与真实世界的生活相联系。T-Maze与木英之等[25]开发的实体编程工具AlgoBlock均为学习者构建了一个迷宫主题的学习情境,学习者将自身代入学习任务中的虚拟角色,进行协作会话和社会交互,基于真实的任务情境,使他们的计划和构建能力得以提高。Tarkan[26]采用实体编程的形式模拟烹饪环境,他们为7~11岁的孩子开发了一种编程语言Toque,它的使用场景是一个模拟的厨房,操纵游戏手柄可以在图形化的厨房制作虚拟菜肴。斯德哥尔摩大学的Fernaeus等[27]通过实体编程空间,使得孩子可以通过在地方上放置不同的编程卡片控制屏幕的物体和角色,从而构建想象中的城市场景——这个编程空间充分利用各种物理资源,为孩子们提供共享的、集中的活动体验。

三 实体编程教育应用的成果与不足

实体编程经过多年的发展,目前在产品的多样性和易用性上都有了较大幅度的提升。实体编程产品的数量、种类和功能不断增多,生产成本和教学推广成本不断降低,产品易用性不断增强,产品外观变得更加美观。如Tern和T-Maze产品使用了不包含电子元器件的轻便木块作为编程实物模块,通过摄像机拍摄编程块,向计算机传递语义和句法信息供其分析,有效降低了产品成本,并增加了调试功能,给使用者带来了更好的编程体验。

此外,实体编程在教育教学方面的有效性也得到了诸多研究人员的肯定。大量研究表明,实体编程活动可以激发低龄学习者的学习兴趣,提升学习效率,促进计算思维技能的培养。如Sapounidis等[28]在一项跨年龄研究中发现,相较于图形化编程,年幼的儿童在实体编程过程中能够更快地完成程序,且错误率更低,体现出了更高的探索精神。在其它教育实践中,研究人员同样发现,学习者能够很快学会实体编程工具的使用方式,并且表现出十分积极的学习态度。如Horn[29][30]在一项名为“恐龙与机器人”的夏令营研究中发现,实体编程界面可以使没有电脑使用经验的儿童独立完成程序块的连接,建立自己的项目。同时,对于女孩更能够提升吸引力,使她们获得愉快的编程体验。总体而言,使用实体编程实施编程教育能够使得儿童获得较好的学习体验,低幼儿童通过触摸理解传感器模块的事件触发,并通过编程活动与现实世界建立联系,更好地发展他们的抽象、观察、分析和创造能力[31][32]。

然而,从现有研究的内容、数量和质量来看,实体编程在教育领域中的应用仍存在较多不足。现阶段,实体编程教育研究的内容过于集中在产品开发上,缺少对理论研究、实证研究、教学资源开发的关注,与中小学校的教育实践存在较大脱节,面临的局限性可归纳为以下几点:

①实体编程产品的教育属性不够突出。以产品开发为主题的实体编程研究,其研究重点主要在于实体编程工具的设计标准(如可调式、可兼容性)和技术实现方式。实体编程工具被包装得越来越好,而实体编程的教学活动形式却并没有发生多少改变。如T-Maze与AlgoBlock问世时间相隔十多年,都是通过程序指令来控制虚拟角色在地图中行走,大同小异。

②基于实体编程的实证研究相对匮乏。大多数研究者只是进行了非正式的教育实验和产品测试,通过小样本的教育实验来证明研究者对实体编程教育功能的预设,或是通过对产品测试过程中被试行为、对话记录的分析,来完成产品的评价。非正式实验和测试的结果,并没有在大规模课堂实践中得到应用和推广。在教育研究领域,目前仅有少量研究者开展了基于实证的实体编程教育功能的研究。如Strawhacker[33]等关注图形化编程、实体编程、混合式编程等编程环境对幼儿理解编程概念的影响差异。然而,实体编程对不同阶段、不同场景下儿童计算思维能力、问题解决能力、协作能力等多样的综合素质能力提升效果,目前相关实证研究成果较少;在教育实践领域,对实体编程的教学目标、内容、策略和形式,不同年龄的学习者使用实体编程学习存在的认知差异,但这方面也没有得到系统的研究讨论。

③实体编程的教育功能趋向单一。越来越多的教师认为,实体编程的教育意义在于通过被简化的编程形式教会年龄较小的孩子如何编程,从而忽略了实体编程相较于其它编程形式的独特优势。如实体编程物理操作性的简易性和直观性更加有助于教师组织协作学习,增强学生之间的会话活动;实体编程工具与学生之间的强交互作用更加有助于教师创设具体的问题情境和教学情境,将学生引入教学内容。实体编程可与计算、识物、设计等认知活动进行有效结合,在综合实践类课堂、科学课堂、语言类课堂中均可以得到很好的应用。然而,广大教师对这些优势尚未形成深刻的认识。

四 总结与展望

本研究从已有文献出发,对实体编程的基本特征、教育应用案例和已有应用的成果与不足进行了归纳分析。实体编程在早期研究中主要被用于帮助低龄学习者进行学科素养的启蒙,养成良好的思维习惯;之后又被用于构建编程环境,支持幼儿、中小学生计算机程序设计的学习。整体而言,实体编程的教育应用研究还处于初步发展阶段,存在着重开发而轻实践的普遍趋势,但具有巨大的教育应用前景。本研究建议未来可从以下四个方面开展实体编程的教育研究:

①从儿童认知发展水平出发设计实体编程工具,根据不同年龄阶段学习者的心智发展特征,设计与之相应的交互功能,以满足特定的教学活动;②从课程标准出发设计实体编程课程,使学科知识与程序设计知识得到有组织的结合;③从儿童思维发展出发开展教学实证研究,即对儿童在实体编程教学中的知识能力获取和认知规律进行探究,并从中归纳教育规律,修正理论框架,为实体编程工具和教学资源的开发、应用和评价提供正确的思路;④从生态建设角度开展多方协作研发,形成校、企、个人多方参与、相互支持的有机生态系统,并在该生态系统中形成配套的软硬件产品、教学资源、理论方法,从而发展线上线下学习社区。

实体编程在我国的研究虽然还处于起步阶段,但已经迎来了较好的发展机遇。我国要想在教育领域开展实体编程研究,就应以前人为鉴,注重实证研究,加强校企合作,构建成熟的理论框架和课程体系,在未来发展出多样的实体编程教育方法和理念。

[1]国务院.国务院关于印发新一代人工智能发展规划的通知[OL].

[2]卢蓓蓉,尹佳,高守林,等.计算机科学教育:人人享有的机会——美国《K-12计算机科学框架》的特点与启示[J].电化教育研究,2017,(3):12-17.

[3][25]Suzuki H, Kato H. Algoblock: A tangible programming language, a tool for collaborative learning[OL].< https://www.researchgate.net/publication/242383829>

[4][29]Horn M S, Jacob R J K. Designing tangible programming languages for classroom use[A]. International Conference on Tangible and Embedded Interaction[C]. Baton Rouge, Louisiana, USA: DBLP, 2007:159-162.

[5]Mcnerney T S. From turtles to Tangible programming bricks: Explorations in physical language design[J]. Personal & Ubiquitous Computing, 2004,(5):326-337.

[6]Frei P, Su V, Mikhak B, et al. Curlybot: designing a new class of computational toys[A]. Sigchi Conference on Human Factors in Computing Systems[C]. New York, NY, USA: ACM, 2000:129-136.

[7]Resnick M, Martin F, Sargent R, et al. Programmable bricks: Toys to think with[J]. Ibm Systems Journal, 1996,(3-4):443-452.

[8][9][10]Resnick M, Martin F, Berg R, et al. Digital manipulatives: new toys to think with[A]. Proceeding of the CHI’ 98 Conference on Human Factors in Computing Systems[C]. Los Angeles, California, USA: DBLP, 1998:281-287.

[11]Garaizar P, Peña O, Romero J A. Montessori in the mobile era: Building new learning experiences through tangible user interfaces[C]. Valencia, SPAIN:INTED, 2013:5158-5164.

[12]Le V T, Hung P D, Ngo T D. Musicbot: Edutainment with a reconfigurable robotic system[A]. International Conference on Advanced Technologies for Communications[C]. Hanoi, Vietnam: IEEE, 2016:457-461.

[13]Schiettecatte B, Vanderdonckt J. AudioCubes: A distributed cube tangible interface based on interaction range for sound design[A]. International Conference on Tangible and Embedded Interaction[C]. New York, NY, USA: ACM, 2008:3-10.

[14]张学军,郭梦婷,李华.高中信息技术课程蕴含的计算思维分析[J].电化教育研究,2015,(8):80-86、107.

[15]Lee T Y, Mauriello M L, Ahn J, et al. CTArcade: computational thinking with games in school age children[J]. International Journal of Child-Computer Interaction, 2014, (1):26-33.

[16]Saritepeci M, Yildiz-Durak H. Analyzing the effect of block and robotic coding activities on computational thinking in programming education[OL].

[17]Turchi T, Malizia A. Fostering computational thinking skills with a tangible blocks programming environment[A]. Visual Languages and Human-Centric Computing[C]. Cambridge, UK: IEEE, 2016:232-233.

[19]Zaharija G, Mladenović S, Boljat I. Use of robots and tangible programming for informal computer science introduction [J]. Procedia - Social and Behavioral Sciences, 2015,(174):3878-3884.

[20]Wang D, Zhang C, Wang H. T-Maze: A tangible programming tool for children[A]. Adjunct Proceedings of theACM Symposium on User Interface Software and Technology[C]. New York, NY, USA: ACM,2011:127-135.

[21]Wang D, Zhang Y, Chen S. E-Block: A tangible programming tool with graphical blocks[OL]. .

[18][22][32]Wang D, Wang T, Liu Z. A tangible programming tool for children to cultivate computational thinking[OL].

[23]Resnick M, Berg R, Eisenberg M. Beyond black boxes: Bringing transparency and aesthetics back to scientific investigation[J]. Journal of the Learning Sciences, 2000,(1):7-30.

[24]Mcnerney T S. Tangible programming bricks: An approach to making programming accessible to everyone[OL].

[26]Tarkan S, Sazawal V, Druin A, et al. Toque: Designing a cooking-based programming language for and with children[A]. International Conference on Human Factors in Computing Systems, CHI 2010[C]. Atlanta, Georgia, USA: DBLP, 2010:2417-2426.

[27]Fernaeus Y, Tholander J. Finding design qualities in a tangible programming space[A]. Sigchi Conference on Human Factors in Computing Systems[C]. New York, NY, USA: ACM, 2006:447-456.

[28]Sapounidis T, Demetriadis S, Stamelos I. Evaluating children performance with graphical and tangible robot programming tools[J]. Personal & Ubiquitous Computing, 2015,(1):225-237.

[30]Horn M S, Solovey E T, Crouser R J, et al. Comparing the use of tangible and graphical programming languages for informal science education[A]. Sigchi Conference on Human Factors in Computing Systems[C]. New York, NY, USA: ACM, 2009:975-984.

[31]Papavlasopoulou S, Giannakos M N, Jaccheri L. Reviewing the affordances of tangible programming languages: Implications for design and practice[A]. Global Engineering Education Conference[C]. Athens, Greece: IEEE, 2017:1811-1816.

[33]Strawhacker A, Bers M U. “I want my robot to look for food”: Comparing kindergartner’s programming comprehension using tangible, graphic, and hybrid user interfaces[J]. International Journal of Technology & Design Education, 2015,(3):293-319.

The Educational Applications and Enlightenments of Tangible Programming

FU Qian ZHANG Meng-yao

Tangible programming is a special form of programming with three basic characteristics of direct operation, simple programming and strong interaction. The application of tangible programming in education involves the integration of programming with multiple disciplines and the cultivation of students’ multiple abilities. At present stage, the research of tangible programming at home and abroad is in primary stage and still immature. After summarizing the existing education application cases of tangible programming, it was found that tangible programming had strong usability, and could well promote the learning of various kinds of discipline knowledge, the development of higher-level thinking ability, and the improvement of collaborative construction capability. However, there are also some existing problems, such as unremarkably educational attributes, lack of experimental study and solely educational function. Based on this, our assumptions were presented from four aspects of product design, curriculum design, research design, and ecological development for the development of tangible programming.

tangible programming; educational application; programming education

G40-057

A

1009—8097(2018)08—0108—07

10.3969/j.issn.1009-8097.2018.12.016

基金项目:本文受中国科学技术馆科研项目“基于STEAM理念的现代折纸科学展巡回展览设计”资助。

傅骞,副教授,博士,研究方向为物联网技术及教育应用、创客教育,邮箱为fredqian@bnu.edu.cn。

2018年3月9日

编辑:小西

猜你喜欢

编程实体学习者
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
你是哪种类型的学习者
纺织机上诞生的编程
十二星座是什么类型的学习者
前海自贸区:金融服务实体
青年干部要当好新思想的学习者、宣讲者、践行者
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
两会进行时:紧扣实体经济“钉钉子”