刘立勋 龙华金 蔡悦
摘要:本文介绍的可面向软件或硬件的编程工具在图形化编程中,以其明显的简洁性和“类似玩具”的特性,培养了青少年对编程的兴趣,为进入人工智能、计算机编程时代做好准备。
关键词:青少年;图形化编程;编程工具
中图分类号:TP319 文献标识码:A 文章编号:1007-9416(2019)05-0208-03
0 引言
少儿图形化编程是一种新兴的编程模式。它并不是要求青少年学习如何编写高级开发语言例如C语言、Python语言的文本代码,而是通过一些具有简易文字的图形模块来编程,在软件方面可以制作一些有趣的小游戏、动画,以此进行游戏编程启蒙;在硬件方面可以通过电子元件连接制作一些趣味小项目,动手开动想象发挥创造。图形化编程的编程形式是图元模块。图形化编程是指将传统的文本程序代码经过封装成一个个图元模块,使用者只需将封装好的图元模块进行拼接即可完成图形程序的逻辑设计。图元模块拼接相当于传统文本编程的流程图,两者的逻辑思想是一致的,区别只是其表达形式存在根本差异。既可基于软件游戏,也可基于硬件电路,图形编程门槛低、操作生动简单、界面美观、便于实践,适用于各个层次使用者学习[1]。
本文首先现对图形化编程软件系统进行简单介绍,其次到面向6岁以上儿童的少儿编程工具——Srcatch,最后简述面向12岁以上的青少年、可供硬件编程工具——Mixly。
1 图形化编程的软件系统
图形化编程的使用者主要是儿童、青少年而并非是专业的编程人员,他们没有任何的编程基础,故易于使用、简洁明了是图形化编程软件的首要目标。而且编程软件的界面需美观,要有更好的交互性,界面的布局需要合理,颜色的使用要符合儿童、青少年的审美,达到真正的易学易用。图形化编程的软件系统主要包括软件界面设计、图元模块的封装、图形程序编辑设计、图形程序编译和通信扩展[2]。
(1)软件界面:主要包括图元模块库栏、程序编辑窗口、菜单栏、工具栏、C语言生成窗口和输出状态窗口等。界面设计主要使用Java语言代码设计,Eclipse的插件为界面运行提供支持。(2)图元模块的封装:图形化编程软件中的一个图元模块对应着传统文本编程的一句代码、一个底层调用函数,通过对传统文本编程的代码、函数等进行封装后变成可供使用的简易文字图形化模块。其封装过程使用C++语言,以模块形式封装的编程元素和表示不同數据结构、功能之间关系的代码,通过对不同功能函数和代码段的封装来定义图元模块的功能。(3)图形程序编辑设计:图元模块可以进行复制、移动、删除、创建和参数修改。对于编辑图元模块,主要是鼠标的操作;鼠标的按下、松开和移动。图形程序设计部分主要是在程序编辑窗口完成,进行程序设计时是对在图元模块库中且具有各种功能的图元模块根据所需实现的功能效果进行拼接。拼接的方式即类似于积木的堆叠,把多个图元模块拼接在一起以创建一系列程序命令,图元模块像拼图积木一样拼凑在一起呈现着凹陷和凸起。(4)图形程序编译:该图形化编程系统的平台编译是C语言的编译环境,当完成图形程序的编写后,点击“编译”按钮后,首先系统会自动检测并将图形程序中的简易文字,转换成C语言,并对该C语言代码执行必要的语法检测,根据其逻辑关系生成相应的sub.c文件进行保存、编译。C语言程序的编译过程主要分为四个步骤:A、将.C文件进行预处理;B、将.C文件编译成.O文件,此过程调用相应的编译器;C、将.O文件链接生成.elf文件,此过程调用相应的链接器;D、将.elf文件转换成.hex二进制可执行文件,并将该文件下载运行。(5)通信扩展:该部分主要是面向图形化编程硬件下载,支持并完成多端口数据通信。简单来说就是将图形化程序下载到硬件主控板上,运行其图形化程序要实现的功能。图形化编程软件系统和需要连接的硬件主控板之间的信息交换即由图形程序编译翻译而来的代码和转换的底层硬件系统识别的目标代码识别通信。
2 面向软件的图形化编程——Srcatch
2.1 Srcatch
面向软件制作软件小游戏的图形化编程软件有很多,例如有Makeblock、linkboy、ArduBlock、blockly、WeMake等等,其中一款开源图形化编程软件——Srcatch,是由麻省理工学院设计和开发的。Srcatch软件由2006年开发,现已被翻译成40种以上的语言,超过150个国家在被使用。该软件可以说是面向少儿和青少年图形化编程软件的鼻祖,是学习少儿编程起步的最佳选择[3]。Srcatch主要针对6岁以上的儿童,通过游戏编程启蒙,以玩的形式来学习编程,从而培养孩子的逻辑思维、提升孩子的专注力。
如今,少儿编程越发火热,各种图形化编程软件层出不穷,选择使用Srcatch,主要是因为Srcatch简单易学而且其功能强大,可制作游戏、动画、绘画、音乐、数学、科学、动作,且编程界面美观、颜色鲜艳明丽、封装好的简易文字模块简单易理解。
2.2 Srcatch编程实例分析
基于Srcatch,制作一个小游戏——迷宫如图1所示。下面就以该游戏进行分析,游戏中一共有6个角色,分别是老鼠、汉堡、幽灵、甲虫1、甲虫2、甲虫3。迷宫的形状是根据对游戏设计的要求,自己在画布上绘制。在进行游戏制作的时候,对每个角色都会有不同的编程要求,如图2所示为角色老鼠的图形程序。该游戏的游戏规则是老鼠在迷宫中吃汉堡,汉堡若是5秒内还没有被老鼠吃到,便会自动切换位置。老鼠吃汉堡期间要躲避甲虫1、甲虫2、甲虫3,还有随时随地会突然出现的幽灵;幽灵出现后,若是5秒内没有触到老鼠,便会自动消失10秒后再次出现;而且老鼠不能碰到迷宫的,只能在迷宫中间行走;若是老鼠被甲虫、幽灵触碰到,即游戏结束。
少儿编程利用图形化这种特别生动形象的方式,将传统文本编程知识用呈现出来。在图形编程的过程中,传统的文本代码隐藏在一个个封装好的模块中,只需将模块连接就可以完成一个小程序、做出一个小项目,编程变得具象化。而且,程序都是简易文字模块,并不涉及真正的复杂代码,这样的形式使得孩子有更多的空间进行创造。通过这种玩的方式学习,更能得孩子的欢心。毕竟喜欢玩是孩子的天性,传统的教育方式将知识强行灌溉,这种少儿编程的方式更能吸引孩子的兴趣。
3 面向硬件的图形化编程——Mixly
可面向硬件的图形化编程软件也同样有各型各色的软件,就如前面的Srcatch也同样可以面向硬件编程,但是经过综合分析比较,最终选择米思齐(Mixly)。Mixly同样作为开源软件,其开发性在同类的图形化编程软件中更好而且不断的在优化升级,更新迭代[4]。
3.1 Mixly
(1)Mixly中文名为米思齐,是一款由北京师范大学创客教育实验室开发的图形化编程软件。Mixly软件并不同于Srcatch可以制作基于软件的小游戏、小动画,其主要是面向硬件连接硬件电路。Mixly主要针对12岁以上的青少年,如果说Srcatch是少儿编程的入门,那么Mixly则是进阶,晋升为青少年编程。(2)Mixly与Srcatch等其它图形化编程软件的区别主要在于,Mixly在图元模块的封装上很大程度保留了传统文本代码的结构,并不像其它软件那般经过简化以便于少儿更好的理解。由于Mixly模块上的文字具有文本代码的结构,所以在学习之前,最好是有了面向软件Srcatch编程的基础;在学习面向硬件Mixly后,也可为以后学习更复杂、更专业的高级编程语言做好准备。(3)Mixly面向的硬件主要是Arduino。
3.2 Arduino
Arduino是一款便捷易上手的开源电子原件平台,其软件硬件均为开源,兼容性和扩展性强,开放而优秀的品台,一直是创客们的优选。Arduino自身的Arduino IDE软件可编程,但是利用Mixly基本可以完全代替其IDE进行图形化编程。如今,Arduino硬件已经有了十数种不同类型的主板,有Arduino Yun、Arduino nano、Arduino mini、Arduino uno等等,这次将使用Arduino UNO并对其进行分析,如图3所示。Arduino UNO有14个数字输入/输出引脚、分别有一个USB、DC、ICSP接口和复位按钮;具有多种通信接口,可以通过数据线直接和计算机通信。
3.3 Mixly编程实例分析
下面就以Mixly图形化编程设计的一个交通灯。该交通灯是两组交替交通灯,模拟真实的交通灯的亮灭。其亮灭情况如表1所示。
使用的硬件主要有一块Arduino UNO板、杜邦线若干、led灯6个、面包板一块。硬件电路连接,选取多个数字输出端口,例如将第一组和第二组的LED红灯、LED黄灯、LED绿灯的正极分别接至不同的數字输出端口,而所有的负极都连接到Arduino的GND端口。硬件原理图如图4所示,程序框图如图5所示,交通灯的图形程序图如图6所示。
针对青少年的、面向硬件的Mixly图形化编程,在进行程序设计时,可通过该模块中保留的代码结构进一步了解真正的编程语言编写流程;在进行硬件电路连接时,可学习简单的电子电路连接,提高青少年的动手能力、思维的严密性。
Mixly的出现大大降低了传统文本代码编程的入门门槛,从跟文本代码编程有着相似的语序结构的图形化编程、简单的硬件电路连接学习中,激发了青少年的创意。Mixly的使用人数不断增多、使用人群不断扩大,从中小学生、教师到大学生、编程爱好者等。
4 结语
随着国家对于人工智能、智能教育的大力推进和人们对智能化、计算机的重视,基于培养计算机思维的图形化编程发展前景良好。青少年可以通过图形编程软件培养计算机逻辑思维、编程思维,通过硬件可以学习电子电路基础原理知识,来了解、适应人工智能的时代。Srcatch可以作为图形化编程的入门,Mixly则可以当作Srcatch的进阶,若是对编程有着浓厚的兴趣,可继续学习更深层次的高级编程语言,否则也可在图形化编程Srcatch和Mixly的学习中培养了编程思维、提高专注力和动手能力。图形编程教育在国内虽是涌现了大批的培训机构,但是其效果并不显著。希望少儿编程可以快速且稳步发展,并为STEM教育做出贡献。
参考文献
[1] 王荣良,万璟.走近儿童编程教育[J].中国信息技术教育,2017(21):4.
[2] 李煜卉,彭勇刚.工业机器人通用图形化编程软件的研究[J].机电工程,2016(4):502-506.
[3] 潘一佩.面向教育机器人的图形化编程模块设计及优化[D].华南理工大学,2017.
[4] 施晓军.每个人都应该学习编程[J].中小学信息技术教育,2014(Z1):158-160.