计算机编程是一项需求旺盛且欣欣向荣的事业, 所以这些日子父母们可能都希望他们的孩子长大后成为一名软件程序员。如果你先教你的小孩如何编程,该从哪儿开始呢? 可以尝试一下此列表中这些对儿童友好的编程语言以及工具。
1.Scratch(https://scratch.mit.edu/)
Scratch 是由 MIT 的终生幼儿园实验室(Lifelong Kindergarten Lab)开发的一个免费的儿童编程语言。该免费语言由入门教程、给父母们看的课程说明以及一个强大的用户社区组成。设置提供可以在没有计算机在身边的时候供你学习 Scratch 编程概念的卡片。
Scratch 利用了一个构建块形式的可视界面来给孩子们(以及他们的父母)创建一个更加系统的体验。你可以将诸如动作、事件以及操作这样的程序组件堆到一起。
每一个快都有一种形状,只允许其同与它的形状适合的对象结合在一起。 例如 " Repeat loops",是一个像“U”的侧面的形状,你一看到就会知道需要把块放到一个循环的开始和停止之间。
Scratch 可以拿来利用预先填充的图像以及字符或者是上传新的,来制作出真正的动画和游戏。Scratch 无需互联网连接就能为我们所用。孩子们可以选择将他们的作品共享到 Scratch 的在线社区。
因为 Scratch 是免费的且得到了不错的支持,所以它就是我们推荐的适合孩子编程方案的不二之选, 而且清单中其它对孩子友好的编程语言里,我们也很容易能看到 Scratch 的影子, 比如 Blockly。
建议年龄: 8-16
需求: 一台运行着 Mac, Windows, 或者 Linux 系统的计算机。
2.Blockly(https://developers.google.com/blockly/)
Blockly 是 Google 对 Scratch 使用相同的互锁构建块的重构,但它可以输出几种不同编程语言的代码。目前,这包括 JavasScript、Python、PHP、Lua 和 Dart。这使得 Blockly 更像一个可视化的编辑器,而不仅仅是一个儿童友好的编程语言。
事实上,在将块链接到一起之后,你可以在屏幕侧边看到代码,并且可以即时切换编程语言,以查看同一基本程序的语言语法差异。这使得 Blockly 成为理想的适用于多年龄段的学习的代码,包括年龄较大的孩子和成年人,他们可能不太欣赏年轻的歪曲的猫和卡通化的Scratch。
这听起来像是从 Scratch 的一个惊人的过渡,事实上,谷歌正在与 MIT 合作开发基于 Blockly 平台的下一代 Scratch。
Blockly 也用作 Android App Inventor 的支柱,可用于开发 Android 应用程序。MIT 已经接管了以前是 Google 的项目。
不幸的是,Blockly 并没有像 Scratch 那样完全开发 - 现在还没有那么多可用的教程。 因此,我们增加了推荐的年龄或建议增加家长的支持。然而,Blockly 作为一个适合所有年龄段的健壮的编程环境前途远大。
建议年龄: 10+
要求: 可运行 Windows, Mac OS 或者 Linux 的电脑
3.Alice(http://www.alice.org/)
Alice 是一个自由的 3D 编程工具,被设计用来教授面向对象编程语言的概念,比如 C++。它使用熟悉且容易获得的建筑积木让孩子通过编程控制摄像机运动,3D 模型,和场景来创建游戏或动画。
拖拽型的交互界面和简单的播放按钮比起草稿型的杂乱界面对某些孩子来说可以减少困惑。在 Alice中程序或“方法”能被转换传入 Java IDE 比如 NetBeans,因此学编程的学生能够从可视化的积木界面过渡到标准的编程语言。
Alice 是卡内基梅隆大学开发的,你必须去系统设置-安全和隐私-允许应用下载从:任何地方。(一旦安装完成你就可以改回你的安全设置)
建议年龄:10 岁以上
要求:运行 Mac,Windows,Linux 的电脑
4.Swift Playgrounds(http://www.apple.com/swift/playgrounds/)
Swift 是一种用于构建 iOS 应用程序的编程语言。Swift Playgrounds 是一款 iPad 游戏,旨在教孩子如何在 Swift 中编程。 该游戏可从苹果免费下载的,不需要任何先前的编码知识。
该应用程序包含了许多关于 Swift 不同命令的教程,举个例子,在 3D 世界中移动一个名为 Byte 的字符。虽然并不需要什么编程知识,但孩子们需要知道如何阅读教程,并有一些解决问题的毅力。拖放代码可以消除打字错误,但 Swift Playgrounds 没有使用联锁块界面。
一旦你的孩子精通 Swift Playgrounds,他们就可以开始用 Swift 开发了。
建议年龄: 10+
要求: iPad
5.Twine(https://twinery.org/)
对于那些对创建游戏和讲故事更感兴趣的,而不太喜欢编程技术细节的孩子,尝试下 Twine。
Twine 是一个免费的非线性叙事性应用程序,被所有年龄段的用户使用,包括大量的成年人和教育家。使用 Twine,你不需要学习任何代码。它的目的不是教用户如何编码,而是教他们如何组织、呈现非线性的游戏和故事。
Twine 的故事包括页面文本和图像,如网站类似。设计界面中显示了连接的页面,每个页面都可以使用文本、链接和图像进行修改。它特别适合“选择自己的冒险”类型的游戏,在其中每个玩家的选择都可以触发一个新的故事分支。
虽然这个应用程序不会教孩子编码,但它教了很多规划和设计技能,这些对游戏设计师和故事讲述者至关重要。该应用程序通过 wiki、教程和活跃的用户社区而取得了很好的支持。
你可以通过托管应用在线创建 Twine 故事,也可以下载用于离线编辑的应用。
建议年龄: 12+ (大量读者推荐)
要求: Windows、Mac OS 或者 Linux
6.LEGO Mindstorm Robotics (乐高头脑风暴机器人)(https://www.lego.com/en-us/mindstorms/downloads/download-software)
另一种学习编程的方法是模仿机器人。许多孩子积极尝试现实世界中编程性事物。这里有各种各样的机器人套件和语言,你可以使用它们来编程,而 LEGO Mindstorms 系统是拥有最大的用户社区之一,是儿童友好的可视化编程应用程序。你可以免费下载编程环境,但是你还需要获得 LEGO Mindstorms 工具包才能使程序运行。这并不意味着你必须购买一个。一些学校和公共图书馆有提供给学生使用的套件,或者您可能想在你附近找到一个First LEGO League(第一乐高联盟)。
LEGO EV3 编程软件可以在平板电脑和计算机上运行,它使用了一个构件块(一个乐高积木)的比喻,就像 Scratch 和 Blockly 一样,虽然 LEGO 版本更倾向于水平地构建程序,看起来更像一个流程图。学生门组合不同的动作、变量和事件来操纵他们的 LEGO Mindstorms 创作。编程语言对于年轻的孩子来说是很简单的,然而对年龄较大的孩子甚至成年人也算是一个挑战(我们曾经在一个面向程序员的技术会议上发现了一个 Google 赞助的 LEGO 编程活动。)
除了 LEGO Mindstorms 编程环境之外,LEGO 还使用一个开源的 Linux 内核,可以通过更传统的编程语言(如 Python 或 C++)对其进行修改和编程。
技术要求:EV3编程语言在Mac、Windows、Android和iOS上均可运行。
运行程序(而不是仅仅调试它们)可控制一个或多个乐高 EV3 机器人。(对于更复杂的程序,最多可以使用菊花链连接六台机器人。)
建议年龄: 10+ (年龄越小的孩子需要越多指导)
要求: 一台可运行 Windows 或者 Mac OS 的台式机或者运行 Android、iOS 的平板电脑。
7.Kodu(https://www.kodugamelab.com/about)
Kodu 是微软为 Xbox 360 设计的游戏编程应用程序。对应的 Windows 版本是免费的,但 Xbox 360 版本需要 4.99 美元。孩子们可以使用该应用程序在 3D 世界中探索和设计游戏。
Kodu 的图形界面很有吸引力,Xbox 版本的编程可以完全在游戏控制器完成。如果你有硬件支持它,Kodu 是一个更旧但仍然可靠的选择。
不幸的是,没有 Xbox One 版本的 Kodu,未来的发展看起来不太一样。 然而,Xbox 和 Windows版本是完全开发的,这就是为什么它是这个列表上唯一的“被遗弃”的儿童编程语言。
建议年龄: 8-14
要求: Windows 7 及其以下版本或者 Xbox 360
更多建议
对于年龄较大的孩子,你可能想直接学习标准的编程语言,如 Python、Java 或 Ruby。 完全不需要任何儿童编程语言。可汗学院和 Codecademy 都提供免费的编程入门的在线教程。
有动机的中学生和高中生可能想尝试他们的亲手制作 Minecraft MODs。 Minecraft 社区充满活力,并提供了很多教程,但也有主题露营和虚拟课程。
Unity 3D 游戏界面是另一个伟大的学习 3D 游戏编程的方式,有很多在线资源。 只要记住,编程本质上是充满挑战的。 它涉及大量的故障排除和验证和错误处理。父母能提供给初学编程的孩子最好工具就是耐心和决心。