基于Blockly的儿童编程思维训练App设计

2018-12-19 12:44李俊德彭程姚琅权李啸宇彭佳汉林亭希赖晓晨
现代计算机 2018年32期
关键词:关卡代码编程

李俊德,彭程,姚琅权,李啸宇,彭佳汉,林亭希,赖晓晨

(大连理工大学软件学院,大连116000)

0 引言

随着“中国制造2025”战略的提出,软件作为交叉学科,在各个工业领域中的作用日益重要。为了适应社会的发展,从儿童时期即开展编程训练已经成为家长的重要选择之一。据Scratch统计的数据以及智研咨询的调查显示,2018年美国儿童编程渗透率为46.33%,市场规模达1409.2亿人民币;而中国儿童编程渗透率仅为1.06%,市场规模为105.6亿人民币。因此,社会迫切需要加强儿童编程的教育力度,以使儿童在将来的软件时代更具竞争力,能够更好地为社会发展做出贡献。

1 研究现状

目前,国内外市场推出了许多与儿童编程相关的App以及编程平台,例如使用了线下组班和线上直播这种教学营销模式的VIPCODE、实现了Scratch和Py⁃thon编程平台的极客晨星等。

这些平台目前所实现的功能有:

(1)采用开源的Scratch作为教学内容,提供课程给用户去进行学习。

(2)基于PC Web的编程平台,可以让用户在网站上实现可视化的编程,在完成编程后,用户的作品可以通过网络被其他人所知晓。

(3)利用Scratch实现制作动画、编写简单游戏等娱乐功能。

但是,目前研究仍有许多不足:

(1)平台较为单一。由于Scratch是基于网页实现的,所以大部分少儿编程产品是基于PC Web的编程平台,导致绝大部分少儿编程实现需要依赖电脑,不便于随时随地学习编程,很难深度绑定用户。

(2)课程质量堪忧。大多数硬件、软件产品偏娱乐,只能达到编程思维启蒙,难以真正教用户编程开发。各平台的讲师师资力量参差不齐,导致部分课程质量难以达到真正启蒙孩子编程思维的目的。

(3)教学成本较为昂贵。线上、线下编程教学课时费平均为80元,部分课程还有高昂的硬件购置费用,用户门槛极高。同时,即使支付了高昂的费用,也未必能达到预期效果。

针对这些空白及问题,我们开发出了一款适合于5-16岁用户的App,可以提高用户的编程思维能力并且帮助用户学习高级编程算法。该App采用Google前沿科技成果Blockly进行可视化编程,基于Android设计,解决了目前编程平台较为单一的问题。同时,App中引入了以编程启蒙游戏结合编程练习为主的教学内容,不仅可训练编程思维,而且可让用户真正开发程序,解决了目前市场上大部分课程质量堪忧的问题。编程游戏除了可以帮助用户学习到编程相关算法思维,还可以让用户学习到诸如三字经、古诗等国学经典以及英文单词。编程练习提供了所有常用的编程语法,可让用户创造性地编写自己的程序。最后,该App是从软件底层开发编程来引导课程,大大降低人工授课成本和硬件购置费,减少了教学成本。

2 系统设计

2.1 系统架构

本项目有以下三大主要系列:知识启蒙系列、编程游戏系列和编程开发系列,以及一份App使用指导。

图1 系统结构图

2.2 知识启蒙系列

如图2所示。该系列主要面向7岁以下学龄前儿童,系列分为知识笔记和知识闯关两个模块。该系列主要是通过吸引幼儿注意力的方式来促进儿童对知识的学习,并在闯关中进行代码块拼接使用思维和编程思维的训练。

图2 知识启蒙系列结构图

(1)知识笔记模块

此模块含英语、动物、古诗、三字经、名人事迹共5个子模块的具体知识的学习,通过图片、动画等能够吸引幼儿注意力的形式向儿童介绍生活中常见的动物、植物、日常用品、名人事迹等。与此同时,融入中国传统教育的诗词、三字经等3~4个知识系列案例,实现学龄前儿童的知识启蒙。

(2)知识闯关模块

此模块有5个子模块,包括包含英语、动物、古诗、三字经、名人事迹五个子模块的具体关卡的闯关训练。幼儿通过对Blockly拼图的操作来对事物进行分类组合、记忆。知识闯关模块与Blockly进行有机结合,在儿童学习知识笔记模块后进行闯关,从而实现学龄前儿童的知识启蒙。

2.3 编程游戏系列

如图3所示。此系列面向7~13岁的有一定思维能力的儿童,帮助在此年龄段内的儿童开拓智力,提高逻辑思维能力。该系列将设计并实现4个益智类游戏场景,包括小蝌蚪找妈妈、画图、吃豆人、推箱子四个模块,每个模块有10至17个关卡不等,难度依次递增。儿童在关卡中可以拖拽、摆放封装好的Blockly代码块,实现基础的积木式编程,用“代码”的方式来通过游戏场景中的关卡,在收获游戏乐趣的同时提高逻辑思维能力和解决抽象问题的能力。此系列也为后续第三系列的进行奠定一个思维基础。

图3 编程游戏系列结构图

2.4 编程开发系列

如图4所示。编程开发系列的功能主要是让儿童在了解了代码块拼接使用以及简单编程思维训练之后,使用逻辑性更强的代码块,进行简单的编程开发。编程开发系列包括编程乐园模块和编程训练模块。

图4 编程开发系列结构图

(1)编程乐园模块

该模块向儿童开放了所有的代码块的使用接口,儿童不再限于题目的要求,而是可以实现更加丰富的功能。该模块更加接近于IDE(集成开发环境),用户可根据需要使用Toolbox中相应功能的代码块,进行拼接,点击运行后,结果将显示在上方的文本框中。该模块还为用户提供一个代码保存机制,让编程更加便捷。

(2)编程训练模块

该模块根据编程中的常见内容,将此模块分为:输出文本、数学、变量、逻辑、循环、数组六个子模块。这六个子模块大致对应了App提供的Toolbox中的六个功能的代码块组。用户可根据自身需要,对相应章节进行学习。相应章节为用户提供了答案提示的帮助,可让用户对学习情况进行检测。

2.5 AApppp使用指导

除以上三个系列外,我们还编写一份App使用指导,告知使用此App的家长和儿童如何使用本App,从而更好的帮助儿童进行编程训练学习。

3.1 益智游戏的实现

本项目中各系列中包含的具体关卡的判断流程基本一致,下面以编程游戏系列中的“小蝌蚪找妈妈”子模块的闯关为例进行展示。图5(a)、图5(b)是App中“小蝌蚪找妈妈”游戏的第一关卡的实现效果,图5(a)是初始进入第一关时的App界面,图5(b)是该关卡下代码拼接后的效果图。用户进入相应关卡,在观察并思

3 系统实现

考如何通关之后,选择Toolbox中的代码块进行组合拼接,小蝌蚪将依照代码块的内容进行移动,移动结束后,进行结果判定,并弹出相应关卡评分界面如图5(c)。

图5

实现过程:

Toolbox中的每一个代码块都对应着JavaScript中的一段函数,例如 move_forward()、turn_left()、repeat()等,它们都是控制小蝌蚪进行相应运动的代码。同时考虑到代码块的拼接方式会有顺序拼接与嵌套拼接,便将每一个代码块的连接接口进行标识与判定处理,使其可以正确地区分处理顺序拼接和嵌套拼接的代码。当多个代码块拼接完成后,相应的代码段也将组合完成,从而形成一个逻辑上有先后循序的完整代码段。

执行代码时,将组合好的代码段提交给处理JavaS⁃cript的判定系统,该系统会根据当前模块类别、游戏类别、游戏关卡找到相应的判定机制,进行结果的判定,判定会依据关卡中内容的难易程度与用户完成的时间情况进行判定。最终再将判定结果回调给提交方,从而给出用户展示相应的对话框。

3.2 编程乐园的实现

为让儿童可以根据自身需要进行编程开发,而不是仅限于关卡的要求。App向用户提供了一个拥有功能齐全代码块的儿童编程开发环境,在这一模块中,Toolbox向用户提供了逻辑、循环、数学、文本、数组、变量与函数的代码块,用户根据自身需要将不同的代码块进行拼接,实现所需要的功能。可以利用App中提供的代码块实现许多经典的算法,例如冒泡排序、Dijk⁃stra算法、鸡兔同笼等问题。

如图6是编程乐园效果图,用户可以从Toolbox中选取相应代码块,进行拼接,运行之后,判定系统会将输出结果返回到界面上方的输出面板中,用户可进行检查。

图6 编程乐园界面

4 结语

基于Blockly的儿童编程思维训练App,根据儿童的年龄阶段划分出不同难度等级的内容,儿童可根据自身情况,对不同模块进行学习,让儿童完成从知识学习,到编程思维训练,再到独立开发程序的分步式学习过程。该App具有界面友好度高,功能完善,上手难度低,针对儿童等特点。将学习与闯关游戏有机结合,可以充分满足儿童,家长和学校对儿童早期编程学习的需要。

猜你喜欢
关卡代码编程
本期主题
——五月,是诗的样子!
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
疯狂冒险岛
纺织机上诞生的编程
神秘的代码
一周机构净增(减)仓股前20名
一行代码玩完19亿元卫星
近期连续上涨7天以上的股