在乔布斯生前接受的一次采访中,他曾经说过这样一句话:
这个国家的每一个人都应该学习编程,因为它教你如何思考。
后来,这句话被美国非盈利组织 Code.org 引用在一个旨在推动计算机编程教育的视频开头。在视频中,包括比尔•盖茨、马克•扎克伯格、杰克•多西在内的众多名人,都来呼吁让少年儿童参与到计算机编程中去。
(图自:YouTube)
作为全世界计算机科学最发达的国家,美国非常重视针对少年儿童的编程教育。美国总统奥巴马曾专门在 YouTube 上发布视频,呼吁美国年轻人学习计算机知识;而在后来的一次采访中,奥巴马再次强调了编程的重要性:
我们需要让孩子们参与数学和科学,而这不仅仅是一小部分孩子,而应该是所有人。所有人都应更早地学习如何编程。
(图自:cnet)
也许正是因为这种观念的深入人心,科技巨头们也都参与到针对少年儿童的编程教育中去。
作为一个从计算机编程起家的老牌科技公司,微软似乎格外重视对少年儿童的编程教育。
2009 年 7 月,微软研究院发布了一款名为 Kodu 的 XBOX 360 游戏,该游戏实际上就是一款可视化编程语言,其目的就是希望通过游戏来帮助小朋友们编程。不久之后,微软将此游戏移植到 PC 上,以方便更多的小朋友参与。
Kodu 的操作方式非常简单,只需要通过游戏手柄就可以。整个操作界面完全是一些易于儿童理解的图标;孩子们的任务就是按照一定的规则对图标进行组合和排序,最终实现特定的效果。
(图自:pbworks)
为了增加儿童们参与 Kodu 编程的积极性,微软从 2011 年起每年都会举办一场 Kodu Cup 的开发者大赛。参赛者年龄在 9 岁到 17 岁之间,获胜者会获得 5000 美元的奖励。
图自:primaryblogger
除了 Kodu,微软还用 Minecraft 来教少年儿童来学习编程。
Minecraft 是一款沙盒游戏。整个游戏的最大特征是没有剧情,玩家在游戏中自由建设,透过像乐高一样的积木来组合与拼凑,轻而易举的就能制作出小木屋、城堡甚至城市。它能够最大程度地让玩家发挥想象力和创造力,来实现自己想象中的场景。
2014 年,Minecraft 被微软以 25 亿美元的价格收购。一年后,为了支持 Code.org 推出的“编程一小时(Hour of Code)”项目,微软与 Code.org 合作推出了一款基于 Minecarft 的免费教程,这款教程同样也是为学生们打造。当中包含 14 个关卡,只有利用基本的计算机科学原理才能过关。学生们需要点击和拖动模块来组成命令行,然后点击“运行”来让自己的角色执行相应的动作。
(图自:tec)
实际上,微软还是 Code.org 的最大支持者之一。这个 2013 年成立的非营利性组织,一直在致力于推进面向少年儿童的编程教育;而微软已经为其捐赠了超过 300 万美元的资金。
与微软一样,苹果公司也是“编程一小时”活动的参与者。
从 2013 年起,苹果每年都会举办“编程一小时”活动。活动形式主要是在各地的苹果零售店举办“编程一小时”讲座,向儿童介绍编程的乐趣。
(图自:lifehacker)
这一小时的编程课程其实并不是严格意义上的程序编写,主要还是用一些简单的游戏给孩子们建立一些基本的编程概念。比如用愤怒的小鸟或植物大战僵尸中的动画形象,以游戏的形式让孩子能掌握基本的前进,左转,重复等游戏语言。
虽然这两个游戏比较简单,并不能直接用生成的语言编程,但是可以让孩子们明白每一个游戏中的动作都是由这些小代码组成的,方便日后学习,也有一些比较复杂的游戏,甚至可以学到一些直接可用的编码。
除了“编程一小时”,苹果还有其他动作。
在不久前的 WWDC 上,苹果发布了一款名为 Swift Playgrounds 的 iPad 应用,希望能帮助 12 岁以上的孩子们来学习基于 Swift 语言的编程知识。
(图自:apple)
苹果还打算在今年的夏令营活动中,首次为 8-12 岁的孩子们开设编程课程。
这个编程课程的名称为“游戏编码和机器人编码”。苹果将会使用来自 Tynker 的软件来介绍模块编程的相关知识,在此基础上使用 Hopscotch app 编写 Sphero 机器人程序。根据苹果官网介绍:
小朋友们将学习直观的游戏分组编码,并运用模式识别、问题处理等逻辑能力。然后,他们将运用学到的知识为自己的机器人编码,让机器人执行任务、接受挑战和完成更多操作。
(图自:apple)
不过,今年这项课程仅仅在美国、英国、加拿大和中国等四个国家的零售店开设。
虽然与苹果和微软相比 Google 比较年轻,但是它对儿童编程教育的关注和投入同样很多。
2012 年 6 月,Google 发布可视化编程语言 Google Blockly。通过它,孩子们可以通过类似玩乐高玩具的方式用一块块图形对象构建出应用程序。
“有形编程”的想法可以追溯到上世纪 70 年代。从那时起,计算机科学家就开始思考,如何把编程变得有形化,让更多人理解编程的原理。如今出现的编程玩具 LittleBits, Kibo and Osmo 等,其实都体现了“有形编程”的精神。
(图自:Google)
Google Blockly 的每个图形对象都是代码块,可以将它们拼接起来,创造出简单功能,然后将一个个简单功能组合起来,构建出一个程序。整个过程只需要鼠标的拖曳,不需要键盘敲击。
在今年召开的 Google I/O 大会上,Google 演示了其与麻省理工学院合作开发的儿童编程工具 Scratch Blocks。Scratch 是麻省理工学院媒体实验室 2007 年开发的一款可视化编程语言,目的是方便儿童掌握编程的基本知识和其他技术技能。
除此之外,Google 创意实验室还推出了另外一种全新的儿童编程项目:Project Bloks。近日,卫报记者拜访 Google 的伦敦总部,了解该项目的具体情况。
(图自:withgoogle)
与此前的两种计算机编程语言不同,Project Blocks 是一种基于实体模块的儿童编程项目。具体来说,Project Bloks 提供了三种基本实体模块,分别为 运算板(Brain Board)、基础板(Base Board)和命令模块(Puck)。
Brain Board 类似于大脑和动力系统,Pucks 则像是身体的各个部位,而 Base Boards 则负责将所有模块连接起来。Pucks可以是图标、开关、旋钮或者按钮。无论那种形式,它代表的都是一个命令。然后,命令模块嵌入到Base Board之中,而基础板负责向Brain Board传送信息。最后,Brain Board可连接多个Base Board,并通过蓝牙和 Wi-Fi 连接平板、玩具机器人、无线音箱、智能灯泡等设备。
Google 与设计公司 IDEO 合作,制作了“编程套装”,并且在一些学校进行了实验。“这不仅仅是教授孩子们如何编程:‘让我们教你 Java 吧,你以后就能做工程师了。’ 而是教授一种基础技巧:就像是读书和写作一样,教会你如何处理问题,而且,这也是教给孩子们一种创造性表达的语言,” Google 创意实验室的项目主管 Jayme Goldstein 说。
Google 的 Project Bloks 尚未成为商业产品。相反,它是一个开放架构。从搞研究的学术机构到制作玩具的初创公司,任何人都可以用它制作自己需要的东西。Project Bloks 中的基础板和命令模块可采用各种材料。
“重要的是,这些命令模块是非常便宜,而且易于制作的。你可以用任何材料制作它们。设计师们可以用塑料、木材或者是 3D 打印部件,甚至是纸张和泡沫。这个项目有一定的 DIY 成分 。” Google 的创意科技师 Joao Wilbert 说。
目前,Project Bloks 还在开发过程中,而 Google 希望能有更多的开发者参与其中,帮助添加一些更加好玩的模块,共同推动儿童编程教育的发展。
(图自:withgoogle)
其实除了苹果、微软和 Google,还有其他的一些科技公司也在参与儿童编程项目,比如说索尼的 KOOV 编程机器人。这些项目都有一个共同特征:摒弃了复杂的代码,将整个编程过程可视化,游戏化,让孩子们在快乐中学习到编程的乐趣。
培养儿童编程能力是件好事,但是,批评的声音也一直存在。批评者认为,科技公司不应该把每个孩子看做是潜在的程序员。对此,Wilbert 和 Goldstein 有着不同的看法。Wilbert 说,他们的想法其实是鼓励创造性表达,而 Goldstein 则引用了该项目合作人 Paulo Blikstein(来自斯坦福大学)的说法。
“他曾经对我说,在教授计算思维的时候,你是在教给孩子们一种创造性表达的语言,” 他说,“你学习写作的目的不是成为职业诗人;你学习阅读的目的不是成为专业的播音员;你学习编程的目的也不仅仅是成为计算机工程师。你用它充实自己的其它爱好。”
还有更重要的一点,这些项目都是完全免费的。不管出于何种目的,在弱肉强食、你死我活的商业战场之外,这些科技巨头们抽身而出,实实在在为下一代开辟了一个相对温暖的成长空间。
也许,这就是它们值得尊敬的地方所在。
关注最前沿的电子设计资讯,请关注“电子工程专辑微信公众号”。