2023 STEM儿童编程语言盘点
STEM是科学(Science),技术(Technology),工程(Engineering),数学(Mathematics)四门学科英文首字母的缩写,STEM教育是这四个领域中教学与学习的结合体。
STEM教育涵盖的内容相当广泛,社会上众多机构都打着STEM教育之名,开设各种教育培训课程。在各种形式的STEM教育中,儿童编程得到了广泛关注。
一方面,计算机编程是一种用途广泛的技能,父母可能希望自己的孩子尽早接受计算机编程训练,以其未来成为出色的软件工程师,为获得良好的职业发展奠定基础。另一方面,计算机编程是训练逻辑推理能力的良好工具,对于孩子更好的理解数学和物理原理有很好的启发作用。
那么,如果你想让孩子学习计算机编程,应该从哪里开始呢?应该选择哪些编程工具和编程语言呢?以下我们尝试对比和分析目前常见的适合儿童使用的编程语言和工具,供家长参考。
01 Scratch
优势
- 方块式、以一种有趣的讲故事的方式教授编码的基础知识。
- 由麻省理工学院开发,麻省理工学院是教学和编程领域的权威。
- 免费、开源。
不足
- 网站页面有点混乱。
- 社区所带有的社交功能方面可能不适合某些孩子。
Scratch是由麻省理工学院的“终身幼儿园”(Lifelong Kindergarten)实验室开发的一种免费的儿童编程语言。通过配套的入门教程、针对父母的课程说明以及强大的用户社区,为这门免费儿童编程语言提供了良好的支持。Scratch配有学习卡片,当孩子离开计算机时,他们也可以使用这些卡片来学习Scratch编程概念。
Scratch使用积木式视觉界面为孩子和父母创建类似搭建脚手架的编程体验。可以通过堆叠、组合不同编程组件块(例如动作,事件和运算符)来进行编程。
每个块的形状仅允许将其与兼容的对象组合。例如,重复循环的形状像是一个侧面的“ U”形,提醒编程者需要在循环的开始和结束之间放置其他功能块。
Scratch可用于使用预先设置的图像和角色或通过上传新的图像和角色来制作真实的动画和游戏。在没有互联网连接的情况下也可以使用Scratch ,孩子们还可以在Scratch的在线社区中分享他们的作品。
由于Scratch是免费的并且得到了良好的支持,它是对儿童友好的编程语言,也是我们首先建议尝试的儿童编程语言之一。另外,我们可以很容易看出Scratch在后文列出的许多其他对儿童友好的编程语言(如Blockly)中的影响。
- 建议年龄:8至16岁
- 环境要求:运行Mac,Windows或Linux的计算机
02 Blockly
优势
- 干净的块式编程方法。
- 可将块翻译成通用的编程语言。
- 由Google支持。
不足
- 除了将块转换为代码外无太多功能。
- 该项目的未来存疑。
Blockly是Google对Scratch 的改进,它使用了相同的互锁构建块映射,但它可以使用几种不同的编程语言(包括JavaScript,Python,PHP,Lua和Dart)作为输出代码的选择。这使Blockly成为可视化编辑器,而不仅仅是一种对儿童友好的编程语言。
将块链接在一起时,可以实时在屏幕的侧面看到代码,并且可以即时切换编程语言,方便查看同一程序功能在不同编程语言中的差异。这使得Blockly非常适合在各个年龄段教授代码知识,包括年龄较大的孩子和成年人,他们可能不喜欢幼稚的猫等Scratch中的卡通形象。
Google正在与MIT合作,基于Blockly平台开发下一代Scratch。
Blockly设计为Andriod的Backbone(Backbone:一套JavaScript框架与RESTful JSON的应用程序接口,也是一套大致上符合MVC架构的编程范型),可运行Android应用程序。
Blockly尚未像Scratch那样得到充分开发,并且可用的教程也不多。Blockly定位是为所有年龄段的程序员提供一个强大的编程环境。
- 建议年龄:10+
- 环境要求:运行Windows,Mac OS或Linux的计算机
03 Alice
优势
- 更直接的设计可以帮助更多的孩子学习。
- 由卡内基梅隆大学免费赞助。
不足
- 对于年幼的用户来说,推行“纯”编码可能太早了。
- 在关于页面,用了一半的篇幅解释项目的名称“爱丽丝”的来历…
Alice是一个免费的3D编程工具,旨在教授C++等面向对象的编程语言的概念。它使用熟悉的积木方法,使儿童可以通过视角移动、3D模型和场景变换进行编程来创建游戏或动画。
与Scratch凌乱的界面相比,拖放界面和简单的播放按钮对某些学生而言可能不会造成太多困扰。可以将程序(Alice中的“方法”)转换为Java IDE(例如NetBeans),以便编程的学生从可视的模块构建界面过渡到标准的代码编程。
卡内基-梅隆大学开发了爱丽丝。该网站可能看起来并不漂亮,但是该程序仍在开发和研究中。
- 建议年龄:10+
- 要求:运行Mac,Windows或Linux的计算机
04 Swift Playgrounds
优势
- 导航页面使用有趣的主题将Swift命令转换为类似游戏的操作。
- 由Apple开发和赞助。
- 免费。
不足
- 仅支持Swift,将孩子们锁定到iOS应用开发中。
- 仅在iPad上运行。
Swift是用于构建iOS应用的编程语言。Swift Playgrounds是一个iPad应用程序,旨在教孩子们如何使用Swift进行编程。它可以从Apple免费下载,不需要任何编程知识。
该应用程序包含许多有关Swift命令的教程,通过这些命令可在3D世界中移动名为Byte的人物角色。尽管不需要编程知识,但是孩子们需要知道如何阅读教程并具有一定的解决问题的毅力。拖放代码块可以消除拼写错误,但是Swift Playgrounds不使用互锁块界面。 一旦您的孩子精通Swift Playgrounds,他们就可以开始在Swift中进行开发。
- 建议年龄:10+
- 要求:iPad
05 Twine
优势
- 将重点放在构建故事的想法,而不是构建计算机程序。
- 免费且易于使用。
不足
- 由志愿者社区开发,可能得不到维护。
- 网站页面过时。
Twine适用于对创建游戏和讲故事感兴趣但对编程的技术细节不在意的孩子。
Twine是一个免费的非线性的讲故事的应用程序,各个年龄段的人都可以使用它,包括大量的成年人和教育工作者。使用Twine,您无需学习任何代码,它没有教用户如何编码,而是教他们如何构造和呈现非线性游戏和故事。
Twine中的故事由文字和图片页面组成,就像是网站。每个页面都可以使用文本,链接和图像进行修改,它对于角色扮演类型的游戏特别有效,其中每个玩家的选择都进入了故事的新分支。
虽然此应用程序不教编码,但它确实教了很多对游戏设计师至关重要的规划和设计技能。该应用程序有很多的教程,有活跃的用户社区的良好支持。
你可以通过在线创建Twine故事,也可以下载应用进行离线编辑。
- 建议年龄:12岁以上
- 要求:Windows,Mac OS或Linux
06 乐高头脑风暴EV3
优势
- 使用机器人技术使孩子参与数学和科学编程。
- 乐高的良好声誉。
不足
- 需要使用Mindstorms系统,必须购买该系统。
- 内部嵌入了一些产品推销。
学习编程的另一种方法是研究机器人技术。市面上有各种各样的机器人套件可以用于编程,但LEGOMINDSTORMS系统拥有最大的用户群体,也是最好的对孩子友好的可视化编程应用程序之一。
免费下载编程环境,但是您需要配合购买的LEGO Mindstorms套件才能运行程序。一些学校和公共图书馆提供供学生使用的LEGOMindstorms工具包,或者您也可以寻找附近的LEGO俱乐部来使用。
乐高EV3编程软件可以在平板电脑和计算机上运行,并且使用了构建块(LEGO积木)来编程,就像Scratch和Blockly一样。乐高EV3倾向于水平构建程序,看起来更像流程图。学生结合动作,变量和事件来操纵他们的LEGO Mindstorms作品。对于年幼的孩子来说,编程语言非常简单,而对于年长的孩子和成年人来说,这种编程语言仍然充满挑战。
除了LEGO Mindstorms编程环境外,LEGO还使用开放源代码Linux内核,可以通过Python和C++等传统编程语言对其进行修改和编程。
- 建议年龄:10岁以上(年龄较小的孩子可以在知道下使用)
- 要求:EVA3需要运行Mac OS或Windows的计算机或运行Android或iOS 的平板电脑。要运行程序需要一个或多个LEGO EV3机械手。
07 Kodu
优势
- 使用游戏设备学习编程。
- 易用的界面使学习变得有趣。
不足
- 依靠较旧的硬件。
- 该项目本身可能已经终止。
Kodu是Microsoft专门为Windows和Xbox 360设计的游戏编程应用程序。Windows版本是免费的,但Xbox 360版本是付费的。孩子们可以使用该应用程序来探索和设计3D世界中的游戏。
Kodu的图形界面引人入胜,而Xbox版本的编程完全可以通过游戏控制器完成。如果您拥有支持它的硬件,那么Kodu是一个较旧但仍然可靠的选择。
- 建议年龄:8至14岁
- 要求:Windows 7及以下版本或Xbox 360