我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岁的人,我推荐这种方法.我想我也会推荐给我的大专学生(!)
在Javascript中实际上有一个基于浏览器的Logo解释器.
http://logo.twentygototen.org/
我非常不同意那些说七岁的孩子很难学习新语法的人.这完全是倒退.尝试教一个七岁的猪拉丁语和一个三十多岁的非英语母语人士.或者尝试和孩子一起在国外旅行.看看谁可以在一个月后与当地人流利地聊天(暗示:它可能不会是你).
孩子们在任意语言习惯拿起得多的速度比我们白发苍苍做.
我在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!"
我花了几个小时使用该语法的各种排列并编写自己的"游戏".它让我想要了解更多...可能有所帮助.
告诉他有关解析器的信息.您只需要为事物存在的原因添加上下文和推理.花括号使得读取代码的机器知道事物的起点和终点.
我发现只要你解释它们的目的,包括孩子在内的大多数人都会轻易拿起东西.这就是为什么学校对我来说是一个可怕的失败,没有人解释学习一半的东西.
我认为Python可能符合您的需求.众所周知,它比许多其他语言更容易学习,并且交互式解释器允许程序员立即看到执行一段代码时会发生什么.它附带的IDLE gui易于使用.它还有一个通过TKinter的海龟模块.
https://docs.python.org/library/turtle.html
划痕是另一个.在麻省理工学院开发,专门用于向儿童教授编程.
在发展方面,一个七岁的孩子即使用他们的口语也不太可能掌握语法的基础知识.
无论您使用何种语言或环境,我都建议您将编程视为播放而不是编写实际程序的能力.为此,您可以从命令行运行并查看即时结果(如Python),或者为了获得更加图形化的体验,Silverlight可能是最好的.
微软有一些有趣的尝试似乎很合适:
popfly:http://msdn.microsoft.com/en-us/devlabs/cc950523.aspx ---"Popfly包含一种与朋友一起创建和分享游戏的简单方法.从各种内置模板中选择或开始从零开始创建一个侧滚动游戏,一个2D射击游戏,或者其他许多人.最重要的是,你可以在不编写一行代码的情况下开始使用"...我认为这真的有助于激励:)
smallbasic:http://msdn.microsoft.com/en-us/devlabs/cc950524.aspx ---应该是简化但有intellisense + .net框架支持(简短描述太营销了,所以我没有粘贴它:P)