39

我 7 岁的孩子想学习,如何编程?(他的想法不是我的,而且他在外面的世界里做事。所以,从这个角度来看,我并不太担心。他竟然从我的办公室里拿出一本游戏编程书在睡前阅读。 ) 前几天我们坐下来写了一个非常简单的猜数字游戏(你选 8 就对了,其他都是错的)。

一切顺利,但他根据语言的语法提出了许多问题。(我碰巧选择了 Java,因为当时我打开了 IDE。)我教中学后的入门编程课程,所以这让我大开眼界(大多数高中毕业的学生都不愿意问问题)我真的不得不弄清楚,如何向 7 岁的孩子解释语法?

显然,任何 C 类型语言都会有同样的问题,大多数“语言”也是如此。我看着吱吱声,但决定不使用它。我查看了 Alice 环境,但也不喜欢它。

从物理的角度来看,他对键盘/鼠标感到满意,并且可以相对轻松地组装乐高套装(因此,遵循具有有趣结果的指示对他有用)。我可以使用 Lego NXT,但他仍然有点年轻(即使使用提供的图形环境,也需要很长时间才能看到工作结果)。

理想情况下,我希望这些经验可以帮助他建立对数学和逻辑的信心(如果 7 岁的孩子有逻辑:-)。

我记得小时候使用海龟图形/徽标。我倾向于这个,但想知道是否还有其他想法,或者是否有人可以推荐一个好的标志环境?

编辑1:

徽标效果很好。我需要教他角度的概念(90 度、180 度)。不幸的是,他们在学校还没有真正做除法,所以角度可能很有趣......

首先画一个正方形:

FORWARD 50
RIGHT 90
FORWARD 50
RIGHT 90
FORWARD 50
RIGHT 90
FORWARD 50
RIGHT 90

稍后我将进入循环:

REPEAT 4 
[
    FORWARD 50
    RIGHT 90
]

然后变量:

make "length 50

REPEAT 4 
[
    FORWARD :length
    RIGHT 90
]

这非常有效。几乎没有语法,对于 7 岁的孩子来说很容易记住词汇和即时反馈。

编辑2:

嗯,这是成功的,因为他能够在我不在房间时编写一个简单的程序(还没有循环)。实际上效果很好——我们出去拿了方格纸和量角器,我们计算出 90 度角,然后他做了一堆正方形,把正方形变成了矩形,然后看看他哪里出错了如何调试它。我会向对编程感兴趣的 7 岁儿童推荐这种方法。我想我也会向我的大专学生推荐它(!)

4

31 回答 31

23

Javascript 中实际上有一个基于浏览器的 Logo 解释器。

http://logo.twentygototen.org/

于 2009-02-27T19:14:45.277 回答
23

我非常不同意那些说七岁孩子很难学习新语法的人。这完全是倒退。尝试向七岁的孩子和三十多岁的非英语母语者教授猪拉丁语。或尝试与您的孩子在国外旅行。看看一个月后谁能和当地人流利地聊天(提示:可能不是你)。

与我们白发苍苍的孩子相比,孩子们掌握任意语言惯例的速度要快得多。

于 2009-02-27T19:26:26.933 回答
12

我在 10 岁时就按照您教儿子的方式学习了如何 编程。我爸爸使用我们 AT&T PC6300 附带的 GW-Basic 解释器,我们编写了一个游戏,电脑问你一个问题,你必须回答 A/B/C。GW-Basic 中语法的一大优势是您没有多行语句。你可能想尝试类似的东西。Java,带有花括号,可能有点难。

示例代码:

10 PRINT "What color is Big Bird?"
20 PRINT "A. Blue"
30 PRINT "B. Green"
40 PRINT "C. Yellow"
50 INPUT$ ANSWER$
60 IF ANSWER$ = "C" THEN PRINT "Good Job!" ELSE PRINT "Oops, wrong answer!"

我花了几个小时使用该语法的各种排列并编写自己的“游戏”。它让我想了解更多......可能会有所帮助。

于 2009-02-27T20:27:02.187 回答
9

告诉他解析器。您只需要为事物存在的原因添加上下文和推理。花括号是为了让读取代码的机器知道事情从哪里开始和停止。

我发现只要你解释它们的目的,包括孩子在内的大多数人都很容易拿起东西。这就是为什么学校对我来说是一个可怕的失败,没有人解释过学习一半东西的意义。

于 2009-02-27T19:23:19.233 回答
6

我认为 Python 可能适合您的需求。众所周知,它比许多其他语言更容易学习,交互式解释器允许程序员立即看到执行一段代码时会发生什么。随附的 IDLE gui 易于使用。它还有一个通过 TKinter 的海龟模块。

https://docs.python.org/library/turtle.html

于 2009-02-27T19:13:55.763 回答
6

划痕是另一个。在麻省理工学院开发,专门用于向儿童教授编程。

于 2009-02-27T20:15:32.090 回答
5

从发展的角度来看,一个七岁的孩子即使在口语中也不太可能掌握语法的基础知识。

无论您使用哪种语言或环境,我都建议您专注于将编程作为游戏的想法,而不是编写实际程序的能力。为此,您可以从命令行运行并立即查看结果,例如 Python,或者为了获得更多图形体验,Silverlight 可能是最好的。

于 2009-02-27T19:15:25.667 回答
5

微软有一些有趣的努力似乎很合适:

  • popfly: http: //msdn.microsoft.com/en-us/devlabs/cc950523.aspx ---“Popfly 包含一种创建和与朋友分享游戏的简单方法。从各种内置模板中选择或开始从头开始创建横向滚动游戏、2D 射击游戏或许多其他游戏。最重要的是,您无需编写一行代码即可开始“......我认为这真的有助于激发动力:)

于 2009-02-27T19:20:32.690 回答
4

试试Small Basic,它有一个 mini-BASIC 语言并且为年轻的人群简化了。

于 2009-02-27T19:27:49.753 回答
3

逃离爪哇!尝试为教学设计的东西,例如从头开始、LOGO 或PLT 方案

于 2009-02-28T03:50:14.647 回答
2

为什么不回到 QBasic 的时代呢?那是我学的第一门语言(实际上是 GW-BASIC,但这无关紧要)。

语法更容易理解(尽管变化无常,有时令人沮丧)。它没有教任何面向对象的东西,但无论如何这可能在他的头上,因为它本来是我的。

这个网站可能也很有趣。

于 2009-02-27T19:21:37.430 回答
2

我会说使用visual basic,或者类似的东西,你不必担心语法、花括号等。我在 7 岁时编程,但它是在 LOGO 和 C64 Basic 中的。我讨厌 LOGO……这让我非常沮丧,以至于你能做的“大”事情之一就是绕过一只愚蠢的乌龟。然而,C64 Basic(对我来说)很棒……一旦我把它弄下来(几年),我就很兴奋地学习 C 甚至 C64 汇编程序。

于 2009-02-27T20:32:50.503 回答
2

想到了两个想法:

  • 我 3 岁的儿子喜欢和我一起玩World of Goo。他还不能解决问题,但我可以看到他正在吸收大量信息。
  • 和爱丽丝一起去吧。我的儿子太小了,不能尝试这个,但是一旦他长大了,如果他热衷的话,我们会试一试。FWIW 在观看Randy Pausch (RIP)的 The Last Lecuture后,我了解了这个程序
于 2009-02-27T20:45:50.253 回答
2

让他查看http://scratch.mit.edu。我七岁的孩子在我们打字时正在学习这个......

于 2009-04-15T12:31:00.487 回答
1

Etoys也许是您正在寻找的东西。这是专为儿童制作的部分图形化的 smalltalk。这是 olpc 项目使用的。

于 2009-02-27T19:21:27.977 回答
1

我参与了一个使用Stagecast的小学计算机课程。这是一种专为儿童设计的图形编程语言。我发现它是一种理想的介绍性语言,因为它是图形化的和交互式的。它不需要阅读或数学,它可以在 Windows 和 Mac OS 上运行,非常适合简单的游戏,让孩子们有学习的动力。

于 2009-02-27T19:29:00.157 回答
1

虽然看起来它正在重新设计,但您仍然可以获得旧版本的Hackety Hack,这是一个由 _why 为青少年和初级程序员设计的 ruby​​ 编程工具包。

于 2009-02-27T20:55:58.060 回答
1

我对爱丽丝有点失望。

一方面,很高兴有一个框架,您可以在其中以直接的视觉满足感进行编程。这真是个好主意。

另一方面,我认为让初学者完全通过拖放进行编程是一个非常糟糕的主意。我担心这甚至可能导致一种文盲,当拖放界面被取消时,他们无法生成正确编写的代码。

于 2009-02-27T23:01:41.097 回答
1

就个人而言,我认为算术运算和布尔逻辑的基础知识首先教给孩子更重要。在他们掌握了这些概念之后,我认为转向基本结构是合适的。我只是不明白一个孩子如何在没有布尔逻辑的情况下理解条件和循环,但话又说回来,那里有一些非常聪明的孩子:)

假设前面的陈述得到满足,我将不得不为 python 投票。

于 2009-02-28T06:26:16.490 回答
0

我会寻找许多街机游戏引擎中的一种,然后让他玩。选择一个他需要使用循环和条件的地方,也许还有一些程序。

于 2009-02-27T19:24:17.687 回答
0

有一本书叫Learning to program from pragmatic,它面向那些以前从未编程过并且可能不是非常技术性的人。

它使用 Ruby,对于新手来说很容易上手。

于 2009-02-27T23:07:13.127 回答
0

Squeak Smalltalk 系统是 Smalltalk 的一个实现,我在教育儿童编程方面听到了很多好消息。Etoys 项目据称包含大量资源,可让学习体验保持乐趣和激励。

于 2009-02-27T23:23:43.603 回答
0

当我在高中时接触到图灵语言时,我对编程产生了兴趣。当时很多学校都使用图灵作为教学语言,它对我介绍编程概念非常有效。这是来自维基百科的图灵描述

图灵是一种类似 Pascal 的编程语言,由当时的加拿大多伦多大学的 Ric Holt 和 James Cordy 于 1982 年开发。Turing 是 Euclid、Pascal 和 SP/k 的后代,具有简洁的语法和精确的机器无关语义。

图灵以英国计算机科学家艾伦·图灵命名,主要用作高中和大学水平的教学语言。存在其他两个版本,面向对象的图灵和图灵加,一种系统编程变体。2001年9月,“面向对象的图灵”更名为“图灵”,原来的图灵更名为“经典图灵”。图灵可从多伦多的 Holt Software Associates 获得。

提供适用于 Microsoft Windows、Linux 和 Apple Macintosh 的版本。图灵在安大略省的高中仍然被广泛用作编程的介绍。

2007 年 11 月,以前是商业化的编程语言的图灵成为免费软件。自 2007 年 11 月 28 日起,可从 Holt Software 网站免费下载,用于个人、商业和教育用途。1

于 2009-02-28T03:59:53.580 回答
0

您也可以使用 Commodore 64 模拟器。它从 BASIC 开始。

于 2009-02-28T07:39:33.457 回答
0
于 2009-04-15T12:41:18.357 回答
0
于 2009-06-12T20:36:53.880 回答
0

我最近回答了一个类似的SO 问题,其中提到了kidbasic,它是开源和跨平台软件。

于 2009-06-12T20:41:47.317 回答
0

Scheme 很好,在语法上与 Logo 相似,就简单而言。此外,Scheme 提供了一种非常直观的方式来理解递归,并在计算机科学中学习这些类型的基本概念,这些概念在早期只不过是更好的更好。

UCB Scheme 还提供了许多用于操作句子的内置功能,这对于 7 岁的孩子来说可能比构建多边形和解决数字谜题更有意义(并不是说天空是极限!)。

于 2009-06-12T20:53:07.600 回答
0

我在二年级时正在输入“BASIC Fun”一书中的程序。

我清楚地记得无限循环和 INPUT A$ 的概念就像发现重力一样。令人头疼的东西。

自学成才,我的进步非常缓慢,尽管我确实在程序中达到了希望 GOSUB 接受可变参数的程度,回想起来这意味着我理解函数指针。

我早期的目标包括编写 LONG 程序。对于一个 7 岁的孩子来说,一个冗长的计划并不是一个坏目标,因为一个具有明确规范的计划会使失败的风险太高。任何人都可以编写一个很长的程序并对此感觉良好,并在此过程中学到很多东西。

从 80 年代开始,就有各种各样的 BASIC 编程书籍。这些东西是编程思想的重要来源。但是,即使是 7 岁的孩子,我也不建议使用 BASIC —— lua 具有 BASIC 的简单感觉,但它并不是废话。

于 2009-07-01T04:17:52.157 回答
0

别再看了,实际上有一个完整的学习平台/操作系统就是为此目的而设计的:Sugar

名为SugarOLPC(每个孩子一台笔记本电脑)操作系统现已向公众开放,您可以在 Mac、Windows 和 Linux 等所有主要操作系统中将其作为 VM 运行。

在Sugar Labs下载副本。

其中一项有趣的活动称为 TurtleArt,这是 21 世纪版本的 Logo。还有一个名为 Pippy 的儿童友好版本的 Python IDE。它实际上教孩子们 Python!

参见TurtleArtPippy以及 Sugar 中的其他活动

Alan Kay 支持 Sugar OS 中的一些新颖概念,这实际上是他富有远见的 DynaBook 的现代化身。即使作为一个成年人(他是一名工程师),我也觉得和我一起玩很有趣。

如果您喜欢将 Sugar 作为虚拟机,您甚至可以购买硬件,同时帮助世界其他地方的穷孩子。

Engadget 解释:OLPC XO Buy-One, Give-One 计划正在进行中

OLPC 牛

作为对我们成年人的奖励,Sugar 源自 Fedora。所以它是一个真正完整的基于 Linux 的操作系统。破解应该很有趣。;-)

于 2009-07-17T06:35:36.153 回答
0

我和我 6 岁的Greenfoot (http://www.greenfoot.org/)一起玩得很开心。它以对象为中心,视觉/图形,我的孩子很喜欢。

于 2011-02-16T13:26:13.237 回答