适合7岁的环境

时间:2009-02-27 19:09:36

标签: children

我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岁的人,我推荐这种方法。我想我也会推荐给我的大专学生(!)

31 个答案:

答案 0 :(得分:23)

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

http://logo.twentygototen.org/

答案 1 :(得分:23)

我强烈反对那些说七岁的孩子很难学习新语法的人。这完全是倒退。尝试教一个七岁的猪拉丁语和一个三十多岁的非英语母语人士。或者尝试和孩子一起在国外旅行。看看谁可以在一个月后与当地人流利聊天(暗示:它可能不会是你)。

孩子们比我们的白发更快地接受任意语言约定更多

答案 2 :(得分: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!"

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

答案 3 :(得分:9)

告诉他有关解析器的信息。您只需要为事物存在的原因添加上下文和推理。花括号使得读取代码的机器知道事物的起点和终点。

我发现只要你解释它们的目的,包括孩子在内的大多数人都会轻松收拾东西。这就是为什么学校对我来说是一个可怕的失败,没有人解释学习一半的东西。

答案 4 :(得分:6)

Scratch是另一个。在麻省理工学院开发,专门为儿童教授编程。

答案 5 :(得分:6)

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

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

答案 6 :(得分:5)

在发展方面,即使用口语,七岁的孩子也不太可能掌握语法基础。

无论您使用何种语言或环境,我都建议您将编程视为播放而不是编写实际程序的能力。为此,您可以从命令行运行并查看即时结果(如Python),或者为了获得更加图形化的体验,Silverlight可能是最好的。

答案 7 :(得分:5)

微软有一些有趣的尝试似乎很合适:

  • popfly:http://msdn.microsoft.com/en-us/devlabs/cc950523.aspx ---“Popfly提供了一种与朋友一起创建和分享游戏的简单方法。从各种内置模板中选择或从头开始创建侧滚动游戏一个2D射击游戏,或者其他许多人。最重要的是,你可以在不编写代码的情况下开始使用“......我认为它真的有助于激励:)

答案 8 :(得分:4)

试试Small Basic,它有一种迷你BASIC语言,并为年轻人群化。

答案 9 :(得分:3)

逃离Java!尝试为教学设计的内容,例如scratch,LOGO或PLT Scheme

答案 10 :(得分:2)

请他查看http://scratch.mit.edu。我七岁的孩子正在学习这个... ...

答案 11 :(得分:2)

为什么不回到QBasic的日子?这是我学到的第一种语言(实际上它是GW-BASIC,但这不是重点)。

语法更易于理解(尽管变幻无常,有时甚至令人沮丧)。它没有教任何OO,但无论如何,这可能是他的头脑,因为它本来就是我的。

This site也可能是有意义的。

答案 12 :(得分:2)

我会说使用visual basic或类似的东西,你不必担心语法,花括号等等。我在7编程,但它在LOGO和C64 Basic。我讨厌的标志......对我来说真是令人沮丧的是,你能做的一件“大事”就是绕着一只愚蠢的乌龟走来走去。然而,C64 Basic(对我而言)非常棒......一旦我失败了(几年),我很兴奋学习C甚至是C64汇编程序。

答案 13 :(得分:2)

想到两个想法:

  • 我3岁的儿子喜欢和我一起玩World of Goo。他还无法解决问题,但我可以看到他正在吸收大量的信息。
  • Alice一起去吧。我的儿子太小了,不能尝试这个,但是一旦他年纪大了,如果他热衷的话我们就会放手一搏。 FWIW我在看过Randy Pausch(R.I.P)的The Last Lecuture之后了解了这个节目。

答案 14 :(得分:1)

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

答案 15 :(得分:1)

就我个人而言,我认为算术运算和布尔逻辑的基础对于先教孩子来说更重要。在他们掌握了这些概念后,我认为继续进行基本结构是合适的。我只是没有看到一个孩子如何理解条件和没有布尔逻辑的循环,但是再一次,那里有一些非常聪明的孩子:)

假设前一个声明已经满足,我将不得不投票给python。

答案 16 :(得分:1)

我对爱丽丝有点不知所措。

一方面,拥有一个可以直接视觉满足的程序框架是很好的。这真是一个好主意。

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

答案 17 :(得分:1)

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

答案 18 :(得分:1)

Etoys也许就是你要找的东西。这是一款专为儿童设计的小型图形风格。这是由olpc项目使用的。

答案 19 :(得分:0)

有一本名为“学习从实用主义开始编程”的书,面向那些从未编程过,可能不是非常技术性的人。

它使用Ruby,对于新人来说很容易接受。

答案 20 :(得分:0)

Squeak Smalltalk system是Smalltalk的一个实现,在教育孩子编程方面我听到了很多。 Etoys project据说包含了大量资源,可以让学习体验变得有趣和激励。

答案 21 :(得分:0)

当我在高中时被介绍给图灵语时,我开始对编程感兴趣。图灵在当时被许多学校用作教学语言,并且我很好地介绍了编程概念。以下是来自WikiPedia

的图灵的说明

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

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

可以使用Microsoft Windows,Linux和Apple Macintosh的版本。图灵仍被广泛用于安大略省的高中,作为编程的介绍。

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

答案 22 :(得分:0)

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

答案 23 :(得分:0)

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

答案 24 :(得分:0)

不妨摒弃Lego™ Mindstorms™作为一种可能性。它使用基于LabView的图形编程语言。

答案 25 :(得分:0)

我今天早些时候读了这篇文章,然后不小心偶然去了YUP.com并发现了

Teaching Kids to Hack(Program) with Hackety Hack

想想我会把它作为一个额外的资源发布给任何看这个问题的人。

答案 26 :(得分:0)

我最近回复了一个类似SO question的指针kidbasic,它是开源和跨平台软件。

答案 27 :(得分:0)

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

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

答案 28 :(得分:0)

当我二年级的时候,我正在从“BASIC Fun”这本书中输入程序。

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

自学成才,我的进步非常缓慢,虽然我确实在一个程序中达到了一个点,我希望GOSUB采用可变参数,回想起来,这意味着我理解了函数指针。

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

在80年代有各种各样的BASIC编程书籍。这些东西是编程思想的重要来源。但是我不推荐使用BASIC,即使对于一个7岁的孩子来说 - lua有简单的BASIC感觉,但它并没有破坏废话。

答案 29 :(得分:0)

不用再看了,实际上是为这个目的而设计的整个学习平台/操作系统: Sugar

OLPC(每个孩子一台笔记本电脑)操作系统名为 Sugar 现在可供公众使用,您可以将其作为所有虚拟机运行主要操作系统,如Mac,Windows和Linux。

Sugar Labs下载副本。

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

请参阅TurtleArtPippy以及Sugar中的other activities

Alan Kay是Sugar OS中的一些新概念的幕后推手,它实际上是他有远见的DynaBook的现代化身。即使作为一个成年人(谁是工程师),我觉得玩起来很有趣。

如果你喜欢Sugar作为VM,你甚至可以购买硬件,同时帮助世界其他地方的一个可怜的孩子。

Engadget解释:OLPC XO Buy-One, Give-One program underway

OLPC OX

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

答案 30 :(得分:0)

我和我6岁的孩子以及 Greenfoot (http://www.greenfoot.org/)有很多乐趣。它以对象为中心,以及视觉/图形,与我的孩子很好地点击。