如何开始孩子编程的建议

45

对于一个刚开始学习编程的年轻人,您认为应该使用哪些语言和工具呢?

我们中的许多人都是从专有的BASIC(基础程序设计语言)开始的,它们并没有给我们带来长期的伤害 :) 但是,鉴于您此后的经验和对领域的了解,是否存在更好的选择?

这个问题还有相关的查询,比如“教初学者编程的最佳方法?”和“一条建议”,涉及到面向成年人的编程起步,我都已经提交了答案,但是儿童可能需要不同的工具。

声明:选择这样的问题的“正确”答案真的很难,因此在几天内获得最高分数的人将获得我的“最佳答案”标记,基于社区的选择。

46个回答

43

我建议使用乐高机器人,它提供了一个直观的可拖拽界面进行编程,而且它还配备了硬件,让孩子们可以触摸到实体。另外,因为它是“乐高”,孩子们可能会认为这更像是一款游戏,而不仅仅是编程练习。


+1:这就是我10岁时的开始。 - Callum Rogers
这些东西也能让你开始使用硬件——你不仅仅是在屏幕上打印东西……你还可以在物理空间中移动物体,这太棒了! - Utkarsh Sinha

24

我的日常工作是在一所学校,过去几年中,我见过或教过(或尝试教过)各种数量和不同类型的孩子编程课程。

孩子们都是不同的 - 有些学得快,有些则不是。特别是,有些孩子的读写能力比其他孩子好,这绝对会影响他们掌握编程的速度。我敢打赌,我们大多数人作为专业计算机程序员,以及那些为了乐趣而阅读和发布论坛帖子的人,小小年纪就学会了阅读。对于那种孩子来说,如果是你自己可以一对一教学的孩子,你可以使用JavaScript - 它的优点是你可以立即用它做真正的事情,并且编辑-测试循环只需在浏览器中点击“刷新”按钮即可完成。当你开始遇到JavaScript如何异步执行所有操作并且难以调试时,事情会变得混乱,但对于一个受到密切指导的聪明孩子来说,这些问题是可以克服的。

乐高Mindstorms绝对是最好的之一。现在大多数学校都用超级胶水把积木粘在一起,创建预制模型,这些模型不能被拆分。但在家中这不应该是一个问题。在英国每周教育报纸的网站上(教育补充时报论坛),“哪种编程语言最适合孩子?”这个话题经常出现。那里有很多关于推荐Scratch作为Mindstorms替代品的建议 - 比Mindstorms更自由,对于那些聪明的学生来说可能更好,他们还可以使用焊铁。

我发现,即使编程环境是“图形化”的Mindstorms,学习速度较慢的学生仍可能会遇到问题——屏幕上仍有很多东西要做,需要记住的也不少(这是旧版本,没有尝试过新版)。根据我的经验,最好的编程入门教材可能仍然是LOGO——实际上是一种比大多数人认为的更强大的语言。LOGO最初由Seymour Papert撰写的 Mindstorms 书籍(与LEGO无关)是教授编程作为“思维技能”以及学习中建构主义概念的标准参考。

我们曾经让7或8岁的孩子们学习LOGO编程语言。请注意,我们的目标并不是让他们成为“软件开发人员”,这是他们可以在16岁后选择的职业道路。在年幼时,我们试图让他们将“计算机编程”视为另一个工具——如何设置需要计算机解决的问题,就像他们可能使用思维导图帮助他们组织和记忆考试材料一样。任何可怜的孩子都不应该被坐下来钻研特定语言的细节和用法,他们应该被放任自由地探索和学习。


13

我支持Geoff的建议,推荐使用Phrogram (曾用名KPL)Alice

我唯一的其他建议是Lego Mindstorms NXT。NXT的编程语言是拖放式的,非常易于使用,一旦学会,可以执行一些非常复杂的任务。而且年轻男孩通常喜欢看到东西动起来。:)

我已经与一些年轻孩子一起使用过Alice和NXT,并且他们非常喜欢它们。


10

只是想补充一下,我们现在有两个年级在使用Scratch,效果非常好 - 他们正在掌握循环、子程序等全部内容。 - David Hicks

10

完全透明:我是发明儿童编程语言之一的人之一,现在它已经成为http://www.Phrogram.com,其他人在这里推荐。让我添加一些面向程序员的信息。

它是一个代码IDE,而不是拖放或基于设计师的。这是我们故意的 - 我们想使真正基于文本的编程特别是编程游戏和图形易于而有趣。这是我们与Alice和Scratch之间的根本区别。你选择哪个取决于孩子、他们的年龄和能力、你的目标。如果你按照同样的初学者顺序使用它们可能是一个很好的方法 - 如果你这样做,我建议Scratch、Alice、Phrogram的顺序。Phrogram最适合12岁及以上的人使用,但我知道有6岁孩子用它教他们的父亲,也知道有10岁孩子自学使用它。

这门语言尽可能地像英语,而且也尽可能地简洁。我们的秘诀在于基于类的对象层次结构,它非常简单、直观,并且也和英语一样。对象层次结构经过了优化以适用于游戏和图形。3D模型和2D精灵都可用。支持使用屏幕坐标进行绝对移动或LOGO海龟式的相对移动-Forward(x),TurnLeft(y)。

集成开发环境带有100多个示例,其中包括一些语言示例(循环),一些学习示例(数组),还有一些功能完备的游戏和模拟程序(乒乓球,导弹指挥,生命游戏)。

为了让您感受到我们如何高度利用语言和IDE:只需27条指令,您就可以用键盘控制一个3D飞船模型在3D天空盒中飞行。同样的,对于一个2D精灵,只需要12到15条指令。

我们正在开发与Blade兼容的Phrogram版本,使程序可以在XBox 360上运行。是的,就是在你的大电视上玩XBox。这是一个引人入胜的方式来激发孩子的兴趣。

Phrogram包括支持基于类的编程,具有方法和属性-但那只是封装,不是继承或多态。

提供教程和用户指南,

我的电子书“Learn to Program with Phrogram!”在亚马逊和其他在线平台上有售,可以帮助初学者通过编写经典的乒乓球游戏入门编程。

Jerry Lee Ford Jr.的《Phrogram编程入门》也可在亚马逊等地方购买纸质版。


8
对于孩子们,我建议使用Alice。任何孩子都会喜欢Alice所使用的拖放交互方式,而不是试图记住如何拼写和标点符号编程语言。他/她将学习基本的编程结构(条件,循环等),并体验构建动画程序的乐趣,可以向家人或朋友展示。

当地社区大学的初学者CS课程实际上使用Alice以一种独立于语言的方式来教授编程。它为日后转入特定语言(或几种语言)的编程提供了良好的基础。


7
我最近看了一场关于GreenFoot(一个针对儿童的基于Java的学习环境)的演示,它看起来非常棒。如果我有孩子,我会试一试。 演示链接 这是一个非常有趣的环境,你可以从非常基本的方法开始。孩子们学会以面向对象的方式思考(你不能实例化一个动物,但你可以实例化一只猫)。而且他们进步得越好,你就能为他们揭示更多的Java知识。

7

我会选择Scratch,以下是一些相关点。

  • 这是一种图形化编程语言。它不是基于文本的(这可能是正面或负面的)。它使得儿童(7岁及以上)更加直观和容易上手。
  • 它实际上是高度对象化的。你编写这些图形脚本的对象有代码附加,并且可以被重复使用和移动。
  • 非常重要:快速而令人印象深刻的结果。孩子们需要快速上手并取得成果,以便着迷。

我想指出,尽管我们中的许多人在年幼时开始使用basic或logo等语言进行编程,并因此成为程序员,但这并不意味着这些语言是好的起点。我认为今天的孩子们有更好的选择,比如scratch或Alice。 基于文本的语言(如python、ruby、basic、c#甚至c)依赖于外部库和工具(编辑器、编译器),而像Alice或scratch这样的东西则是全包含的,并将教授儿童(而不是青少年)编程概念。之后他们可以继续扩展学习。


6

6
我会说:给孩子一个真正的C64,因为那是我开始接触编程的方式。但是,今天...我会推荐Ruby,但是Ruby有点混乱。长远来看,BASIC可能更好。Processing易于学习,基本上就是Java。
我之所以推荐C64,是因为它是BASIC语言,但如果想做更高级的东西,你仍然需要学习某些与计算机相关的知识,如内存模型、像素、字符、字符映射、换行符等等。此外,如果你的孩子觉得无聊,你就知道他对编程没有兴趣了。

英国至少有一所学校这样做了——从二手市场购买了一堆C64并将其用于编程课程。可靠的老BBC微型计算机在多个地方仍在使用。 - David Hicks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接