换种方式学编程:如何训练你的机器人

伯乐在线注:2013-3-12 上午我们在@程  序员的那些事微博推荐了这篇非常有意思的文章,抛开编程语言,抛开计算机,Dr Techniko 讲述了他是如何通过游戏来教孩子们学会编程的一些基本原则。感谢@EluQ 的热心翻译,以下是全文。

 

上周日,我教六个5到7岁的小朋友学习编程。“用什么编程语言?”你可能会问。其实我没有用编程语言,至少不是你所知道的。事实上,我就没有用电脑。取而代之的,我发明了一个叫做“怎样训练你的机器人”的游戏。在我解释怎么玩这个游戏之前,请让我说说我的动机。

当我19岁读大一的时候,我在MIT(麻省理工学院)学习了编程。那并不是因为家里没有电脑或者我压根没听说过编程语言。而是因为:①我认为编程是件枯燥的事 ②没人告诉我为什么我要为此烦恼。事实上,我的高中计算机老师告诉过我,“你没必要浪费自己的时间去学习怎么编程。现在我们有了可视化工具去构建程序。编程语言已经过时了。”那是1994年,他提到了Visual Basic。对我来说,幸运的是,在MIT几周的时间内,这件事就烟消云散了。但一个人是不是非要等到大学才能接受适当的教育呢?

学习如何编程正成为今天我们能教给孩子们最有用的新技能。我们的生活比以往任何时候都更加依赖于我们给计算机指示的命令程序有多么智能。计算机掌握着我们的个人数据,它们为我们做决定,它们为我们互相通信,它们正逐渐成为我们大脑的延伸。如果我们不把学习编程作为童年的一部分,我们永远不会进化。正如著名的未来学家 Ray Kurzweil 说的,“唯一你应该担心你孩子学习的第二语言是编程(语言)。”

怎样训练你的机器人

这个游戏操作如下:每一个孩子作为“机器人指挥者(robot master)”,他们的妈妈或者爸爸作为他们的“机器人(robot)”。我给每个孩子一本“机器人语言字典”并且告诉他们这是他们的机器人能理解的语言。这本字典有“向前移动左腿”,“左转(turn left)”,“抓起(grab)”,“放下(drop)”等符号。

robot language dictionary

游戏的目标是让机器人们穿越障碍训练场,捡起一个球并把它带回来。孩子们需要写一个程序来告诉机器人怎么做那些事。每次他们写一个程序,就交给他们的机器人,然后机器人就执行程序。为了这么做,我给了每个孩子一支笔和一张纸,让他们从(机器人)字典复制符号来写出他们的程序,然后交给机器人们动起来!

How To Train Your Robot

每个机器人拿回球的时候,有趣的事情就开始了。现在我让孩子们发明他们自己的动作和符号,添加到字典中并且教会他们的机器人们。对于孩子们想出的(符号等)是没有限制的。

 

这是我最喜欢的程序(一个五岁的小女孩写道):

How To Train Your Robot

我设计这个课程去教一些计算机科学与编程非常基本的原则:

  • 编程语言仅仅是另一种与实体交流的方式。(通过程序)
  • 程序是自动操作事物的秘方。

但是,令我感到惊喜的是孩子们学会了多少。(在30分钟的时间内,)他们自己就弄明白了下面这些东西:

  • 程序参数化:为了替代写10遍“向前走1步”,他们在“步”符号前面写了10(一个五岁的孩子想出来并且问我她能否这么做)
  • 创作:将一套动作编组(“左腿向前,然后右腿向前并做这个组合10次”)
  • 抽象:“绕圈跑,然后说‘我晕了’,然后叫这个为‘跑晕’程序并且执行100次。(出于某些原因,孩子们喜欢让他们的父母重复做超过100次同样的事)”
  • 单元测试:他们会写一个测试程序让他们父母移动几步,让父母运行程序,然后修正并且再次运行程序,最后再加入一些步骤直到达到目标。

我现在已经开课两次了,并且我看到了相同的模式,当孩子们玩得快乐时,在编程时他们会变得非常聪明并且有创造性,这坚定了我的信念。许多父母计划在生日聚会时玩这个游戏。如果你对怎么设置游戏有疑问,毫不犹豫得写下来吧。你可以在 www.facebook.com/drtechniko. 找到我的联系方式。

在这篇文章中,你也能看到如何教授这门课程的指南和资料。

我希望我们今天学到了一些有用的东西。

Dr Techniko

 

 

收藏 1 评论

关于作者:EluQ

南京土著,程序员。(新浪微博:@EluQ) 个人主页 · 我的文章 · 11

相关文章

可能感兴趣的话题



直接登录
最新评论
跳到底部
返回顶部