随着科技在我们日常生活中的应用越来越广泛,掌握基本的计算机编程不再仅仅是进步家庭的一个聪明的、有远见的想法,而是成年人和孩子们的一个必要条件。事实上,儿童编程正成为一个越来越受欢迎的话题。
小时候,我对电脑非常感兴趣。我一直想知道他们是如何工作的,如何使用他们不仅仅是为了基本的乐趣。我早期的电脑经验让我相信,只要我学会如何充分利用机器的力量,即编写代码,我就能完成奇迹般的事情。
与我所处的时代不同(那时我是通过艰苦的方式学习编程的),现在学习基本的编码相当简单,并且有许多免费的资源可以帮助您入门。在几个小时内,任何人都可以掌握基础知识,并在一两个星期内,使用这些知识来构建功能良好的应用程序、游戏和网站。
今天,即使是幼儿园的孩子也可以学习编写代码的基本知识。在如此年轻的时候获得这些技能将极大地影响他们的全面发展,研究表明,编码可以加强其他学术领域,如阅读、拼写和数学。
掌握编码和编程逻辑的孩子会成长为更好的问题解决者,也会发展出更好的分析推理能力和更强的求知欲。
软件是我们这个时代的语言,教孩子们如何正确地使用它肯定会在以后的生活中派上用场。
然而,并不是所有的编程语言都是相同的。有这么多可用的语言,要决定哪一种最适合初学者是很棘手的。
1. Scratch 3.0
Scratch最初是为8到16岁的儿童开发的,是一种免费的教育编程语言,由米奇·雷斯尼克(Mitch Resnick)开发,并获得了麻省理工学院(MIT)终身幼儿园组织的专利。教孩子们用Scratch编程是很容易的,因为这个平台提供了一个直观的、易于使用的可视化块界面,为年轻的学习者消除了打字的挫折感。这是儿童编程的一个很好的起点。
Scratch是列表中最具视觉吸引力的儿童编程语言之一,但它真正闪耀的原因是它允许学生自由表达。其背后的理念是简化动画制作、游戏设计和互动故事的制作过程,这样任何人都可以从头开始。孩子们感觉就像使用Scratch的真正的游戏设计师,甚至完全的新手可以在几分钟内创建简单的,完全定制的游戏。
Scratch还拥有一个庞大的在线社区,拥有来自世界各个角落的1500万注册用户。 只要遵守MIT Scratch团队设定的友好和尊重的规则,任何人都可以成为会员。
Scratch平台及其社区的另一大优点是,您需要将项目及其代码存储在Scratch服务器上,这使年轻的学习者可以研究更高级的用户如何创建复杂的游戏。
2. Blockly
Blockly是一种针对儿童的可视化块编程语言,被广泛视为Google对Scratch的回应。隐喻地讲,它使用相同的构造块来帮助孩子掌握代码。唯一真正的区别在于以下几点:Blockly实际上是一种由几种预先存在的编程语言组成的编程语言。
Blockly是在Apache 2.0许可下开发的,通常被描述为用于创建可视化编程块编辑器的客户端JavaScript库。这意味着,它主要是为想要学习如何在自己的浏览器中在家或在学校编码的8岁以上孩子创建的。
Blockly带有一个“JavaScript库”,它基本上是一个集中的位置,在那里可以很容易地找到和访问预先编写的语言(如JavaScript、Python、PHP、Lua和Dark)。
Blockly具有一个特定的UI,类似于带有多个形状,多种颜色的积木的孩子的盒子。除此之外,还有一个工具箱,其中包含块,容器和实际编写代码的空间。
操作起来很简单。用户从工具箱中取出块(一次一个),按顺序排列,直到解决问题。完成后,程序会运行一个检查,查看已完成的操作,如果解决方案不正确,它会返回并再次分析代码,直到找到错误为止。
Blockly使任何人都可以开发出实际可用的Android应用程序。这不仅使这种语言成为孩子们的玩具,甚至成为帮助孩子编程的简单工具。孩子们可以通过将不同的块链接在一起,在屏幕的侧面进行编码。他们还可以轻松切换语言,从而使他们可以随时在同一基本程序中看到不同类型的代码。
尽管这是一个伟大的程序,但相比Scratch,Blockly还不是很完善。它不像它最大的竞争对手那样发达,也没有那么多好的教程,这使得孩子们很难独自学习。
Blocky已被Sphero的一些优秀设计师使用,并且我们看到许多其他公司正在使用该技术。我们期望未来会有美好的事情。
3. Python
Python与列表中的前两个条目完全不同,Python是一种功能强大的,基于文本的计算机编程语言,八岁以下的孩子可以轻松地表达自己的意思。这种特定类型的代码既可以充当掌握其他语言的起点,又可以充当足够强大的工具来进行认真的游戏/网络/应用开发和儿童编程。
在线上有许多基于游戏的自我指导课程,使学习Python(尤其是Python 3)成为孩子们独特,有趣且高度参与的体验。
Python是向孩子介绍编码的绝佳选择,因为这种编程语言坚持使用良好的代码布局。它还鼓励用户使用在线支持和广泛的Python库。
随着他们开始越来越多地使用Python,您的孩子将学习如何正确地使用列表、元组和映射等基本数据结构。在Python中掌握变量、循环和其他函数将为他们将来处理更高级的编程打下良好的基础。
他们还将克服在Python中控制不同结构带来的复杂性。使用Python turtle模块绘制形状和图案将帮助您的孩子克服有关动画和游戏设计的第一个障碍。他们很快就能为Mac,PC或Linux编写自己的应用程序。
4. JavaScript
对于孩子们来说,JavaScript是一个不错的选择,因为现在几乎所有内容都可以在这种编码语言上运行。Google Chrome,Mozilla Firefox,Internet Explorer –所有这些浏览器都使用JavaScript。如果您的孩子精通这种特定语言,他们将学习如何将简单的网络文档转换为出色的交互式应用程序和游戏。
但这还不是全部。JavaScript不仅仅可以构建web页面。你可以在网络服务器上运行它来创建全新的网站,甚至可以用它来控制其他类型的硬件,比如机器人。
JavaScript通常是那些已经有过用Scratch或Python编写代码经验的孩子的一种升级技能。通常情况下,我们推荐10岁以上的儿童使用JavaScript,但我们也看到过8岁以下的儿童使用JavaScript进行游戏开发。
JavaScript是一种包含很多元素的强大语言。在让您的孩子完全了解这种编码语言之前,先让他们了解变量、数组、对象、方法、循环表、函数和参数是非常重要的。
JavaScript本质上是网络语言,对于准备进行基于文本的编码的学生来说,它是一种出色的儿童编码语言。
5. Lua (Roblox)
Lua是一种脚本语言,非常适合向孩子介绍基于文本的编码。易于学习,使用和嵌入到应用程序中。Lua是一种免费,优雅,功能强大,可移植,可嵌入且对初学者友好的编码语言。
这种类型的语言引入了一些简单的概念,这些概念有可能成为平滑的产品,同时仍然保持它们的简单性、可读性和效率。Lua的优点之一是它可以为用户处理诸如内存管理之类的低级事务。
Lua与Python类似,它消除了许多使得孩子们很难编写代码的语法问题。但与JavaScript不同,在每行代码的末尾都不需要使用分号。
由于其速度和轻巧性,Lua非常适合对嵌入式设备进行编程。现在很多人也将其用于iOS和Android游戏以及应用程序开发。著名的游戏《愤怒的小鸟》就是基于Lua。
6. Java (Minecraft)
Java不是我们最喜欢的编程语言,坦率地说,它上榜的唯一原因是它是《我的世界》的语言。因此,《我的世界》的魅力为学生创造了一种有效的“胡萝卜加大棒”体验,它已经成为一种非常受欢迎的教孩子编程的方式。
自2011年发布以来,《我的世界》已成为全球许多儿童关注的中心。即使许多成年人仍然认为这只是另一种游戏,《我的世界》证明了自己的能力远不止于此。它是教孩子如何使用逻辑,解决问题并增强许多核心学术技能的极其强大的工具。
这还只是在基本用户阶段。一旦你的孩子开始真正超越start操作,他们就会明白《我的世界》是一个高度自适应的游乐场,可以定制。当孩子们开始真正喜欢这个游戏时,你可以向他们介绍“mods”。“mod是修饰的缩写,基本上是孩子们能在游戏中引入的所有变化。他们可以改变一切 - 人物的物品、风景、特定的特征等等。可能性是无限的。
为了向游戏中引入特定的mod,玩家需要编写一些代码。这就是事情变得有趣的地方。Minecraft在Java上运行,并且游戏的开放式体系结构允许用户访问Minecraft的Java源代码并进行游戏。在使用Java进行修改的同时,孩子们将开始学习如何创建简单的事物和复杂的事物,这肯定会使他们专注并致力于更多地学习这种编码语言。
7. C# (Unity)
Unity是一个流行的游戏引擎,它可以教孩子们如何编写代码,同时创建专业的高质量游戏。它是一个闭源、跨平台的游戏开发应用,用户可以在其中玩3D对象并添加各种元素。脚本可以用c#编写,这是一种非常类似于Java的语言。
C#是一个功能强大的程序,几乎可以用于任何事物。当然,它具有自己的特殊优势,Windows应用程序开发就是其中之一。由于具有.NET支持,C#现在已成为每个开发人员创建Windows桌面应用程序的首选。
学习如何使用这样一种语言在游戏之外是非常有用的。有了Unity,您的孩子将获得很好的编程技能,他们可以在以后的编码冒险中轻松使用。这是一个很好的起点,从这里可以诞生未来的高级程序员。
Unity有一个免费的版本,每个地方的每个人都可以使用。在官方网站上,用户可以找到许多免费的教程和课程,帮助他们学习如何导入、评估和管理游戏资源,以创建他们想要的任何东西。
资料分为两组:
1)学习引擎的课程;
2)学习服务和产品( Services and Production)的课程。
每个部分都有自己的一套按部就班的教程和主题,这些教程和主题被额外的课程划分,并充满了许多有价值的、面向细节的内容。有了这个信息丰富的库,您的孩子就可以开始构建游戏并将它们部署到各种平台上。
8. Go (Golang)
Go编程语言是一种静态类型化和编译的语言,是广受欢迎的最新语言之一。实际上,它是如此新,以至于它才刚刚使用了10多年(于2009年发明)。这种有希望的发展使其成为一门很好的语言,因此应该将其添加到有关儿童编程的任何课程中。
在Go首次实施的几年后,它已经传播到各种不同的行业。越来越多的《财富》 500强公司和大型公司都在强调其重要性和前景。Uber,Netflix,甚至美国运通卡都是Go的已知用户。
在结构上,Go与C非常相似。主要区别在于内存安全性,垃圾回收,结构化类型和CSP样式并发。然而,就儿童编码语言而言,它可能具有与C相同的整体策略和成功经验。
Go是一门值得了解的语言,原因有很多。最主要的原因是它在受欢迎程度上呈爆炸性增长,而且没有停止的迹象。预计在接下来的几年中,开发团队的不断更新只会促使其普及度,从而在各个行业中保持增长和扩展。
9. Swift (Swift Playgrounds)
Apple的Swift Playgrounds于2016年首次推出,是一种教孩子们进行编码的工具。Swift Playgrounds提供了许多基本的编码课程和游戏挑战,并具有紧密的界面和令人愉悦的图形化背景。作为iPad应用程序,Swift Playground非常适合在教室中使用iPad的学校。
我们对Swift Playgrounds的不满与语言的关系不大,更多的是因为它过于限制性的课程,就像许多其他的普通儿童编码资源一样,它没有给学生任何表达的自由,比如Scratch平台提供的自由。学生们被要求按照课程设计者所定义的严格路径来完成课程。我们发现这种体验对于有创造力的孩子来说很快就会过时了。
儿童编码语言:回顾
每个孩子都是不同的,没有一个适合所有孩子的编码语言的解决方案。
我们在这里评估的语言都非常出色,您可以考虑先从可视化块语言开始,然后在您的孩子证明自己熟练之后,再看看您的孩子是否已准备好使用某些基于文本的选项。