少儿编程的前世今生 | BLUELAB

July 31, 2018 Source: 蓝湖资本 Author: Yinchao

因为蓝湖资本投资了一家少儿编程教育公司,加上现在少儿编程赛道火热。于是经常有人问我,你们投少儿编程的逻辑是什么?

从风投的逻辑,我们可以是看到中美编程教育普及的巨大悬殊带来的市场机会;也可以看到国家政策的鼓励——编程陆续进入各省高考考纲,并将其视为“下一个奥数级别的市场”。不过说到底,在中国少儿编程教育依然如此早期的阶段,这是一个“因为相信,所以看见”的判断。

从“小海龟” 到全球最火爆的乐高编程机器人

这个“相信”来自一个追溯到半个世纪前的故事,跟一只“小海龟”有关。

大概长这样:

可能很多 80 后对这只“小海龟”还有印象,学名叫——“小海龟绘图”。在上计算机课还需要戴上塑料鞋套进机房的年代,教材里有专门一章介绍“小海龟绘图”的。这也是很多人接触到第一种编程语言。

“小海龟绘图”(Turtle Graphics)所使用的编程语言叫 LOGO,是 1967 年从 LISP 语言的基础上发明的,比 C 语言还要早。与一般的计算机语言不同的是,LOGO 语言输出的表现结果是几何图形。由于绘图的光标一开始是一只小海龟,所以被亲切地称为“小海龟画图”。

这种语言的发明者就是西摩尔·派普特(Seymour Papert),一名来自南非的计算机科学家、数学家及教育家,是人工智能发展的先驱之一。他参与创办了MIT Media Lab。这是第一款针对儿童教学使用的编程语言。派普特也由此被称为“少儿编程之父”。

在 LOGO 编程语言的世界中,孩子可以在键盘上写下指令,让小海龟在画面上走动,无论是上下左右,还是按照一定的角度、速度或重复动作等。这虽然看起来简单,但其背后的学科知识是人工智能、数学逻辑以及发展心理学的结合。简单的指令组合之后可以创造出非常多的东西。

比如这样:

甚至这样:

有人甚至还写了一本书叫《乌龟几何》(Turtle Geometry),来教大家如何用简单的 LOGO 语言玩出天际。也证明了 LOGO 语言不仅仅只是给小孩使用的,成人也可以使用。

<Turtle Geometry ——The Computer as a Medium for Exploring Mathematics> By Harold Abelson and Andrea diSessa 
Source: mitpress.mit.edu

不过,在 LOGO 语言发明的年代,计算机的价位在几千美元一台,对普通人来说根本用不起。于是派普特就发明了实体版“小海龟画图“。

最初的时候“小海龟“只是一个三轮装置并安装了一个”尾巴“也就是一支笔。由 MIT 的 Tom Callahan 在 1969-1970 年之间制作。Source: cyberneticzoo.com
孩子使用简易的键盘控制器(左边),操纵“小海龟“画出图形(右边半球形装置)。这张照片是派普特的书《头脑风暴》(Mindstorms)的封面。Source: cyberneticzoo.com

1984年,时任乐高公司 CEO 的克伊尔德·克里斯丁森在电视中看到了一次派普特的采访节目。当时派普特正在电视中演示实体 LOGO 海龟。克里斯丁森认为,实体化的海龟跟乐高的产品哲学有相通之处,二者如果能够结合起来,一定是个不错的新产品。

随后,克伊尔德访问了 MIT Media Lab。在与乐高接洽后,帕普特提出了一个不同以往的想法。LOGO 和“小海龟”,以及 MIT Media Lab 的其它研究都需要将实物机器人与计算机连接。帕普特的新设想是,能否创造一个能替代电脑的乐高零部件——一个具有计算的功能,又能跟乐高一样小巧,又足够便宜的零部件。在当时,这是一个巨大的挑战,然而这也将会是一个巨大的革命式的创新。

但这个设想直到 1998 年才得以实现。那年,乐高发布了全新的可编程机器人产品——Mindstorms 系列。为向帕普特致敬,乐高用他 1980 年出版的书名作了注册商标。从此,乐高掀起了一场全球的机器人风暴。乐高 Mindstorms 在 1998 年 9 月发售,当年 12 月 1 日即全部售罄。时至今日,乐高机器人依然是全球最火爆的教育机器人。

为了致敬帕普特,乐高以其著作名命名了可编程机器人产品——Mindstorms 系列。 Source: MIT News

 Logo 的发展和 Scratch 的诞生 

在 80 年代,同样受到帕普特启发的还有一名青年记者。一次偶然的机会,他听了帕普特的演讲,也由此改变了他对计算机的认知。第二年,这个年轻记者拿着MIT的奖学金,参加了帕普特的研讨班。这个青年记者就是后来的“Scratch 之父“—— 米切尔·瑞斯尼克(Mitchel Resnick)。作为帕普特的学生,瑞斯尼克同样也是其一生重要的合作者。

乐高公司和 MIT Media Lab 一直保持着密切的联系和合作。1989 年,乐高向 MIT Media Lab 捐助了一个教授席位,帕普特也理所当然成为了第一位“LEGO Professor of Learning Research(乐高学习研究教授)”。在帕普特退休之后,为纪念他,这个席位名称改为 LEGO Papert Professorship of Learning Research,并传给了他的得意门生瑞斯尼克。

作为西摩尔理念的继承者,瑞斯尼克在 LOGO 的影响下,推出了更先进的面向儿童的编程语言——Scratch。Scratch 首个版本在 2007 年发布,在 LOGO 的理念与乐高机器人编程工具基础之上,推出了更易于儿童理解的用命令图块搭建逻辑的编程方式。2013 年,Scratch 发布了可直接在网络浏览器里在线操作的 2.0 版本。Scratch 3.0 也已开放了测试版本,采用 Html5 的页面技术,支持横式和直式的图形式程序撰写,未来可以在 iOS & Android 手机平板及桌上电脑跨平台的使用。

到今天,Scratch 的在线平台已经有超过 1800 万注册用户,被翻译成 70 余种语言,在 150 个国家里被使用。Scratch 语言与各种硬件和软件相结合,被广泛使用在学校、家庭以及校外的计算机、编程教育等。教师也用Scratch语言服务于其数学、科学、地理、历史、艺术等教学。Scratch 为儿童创造了一个低门槛的编程学习环境,也方便孩子将来学习其他编程语言。

瑞斯尼克在 TED 的演讲 <Learn to code, code to learn>,完整地阐释了 Scratch 编程的操作以及学习编程的意义。

帕普特的思想遗产 

派普特对儿童教育的贡献不仅仅只是 LOGO 编程语言而已。其背后的思想对每一个现如今每一个教育工作者尤其是少儿编程教育的创业者们都会有很大启发。

不过在阐述派普特的思想之前,必须提到瑞士著名心理学家、哲学家让·皮亚杰(Jean Piaget ,1896-1980,认知发展论的提出者),今天他也被认为是伟大的教育思想家。

皮亚杰在二十世纪中叶提出了建构主义(Constructivism)学习理论,目标是关注学习是如何发生的。该理论指出,人们会基于过往的经验和对世界的理解来构建知识(constructing knowledge),而不是获得知识(acquiring knowledge)。孩子理解周围的世界不是通过学习大人所掌握的知识的”小孩子版”或只是作为一个空容器被灌输知识,而是作为一个活跃的个体与世界互动并构建出不断发展的理论。皮亚杰把适应看作智力的本质,他把儿童看成建造自己的个人知识理论的小哲学家和科学家。他认为活动即是感知的源泉,又是思维发展的基础。

多年以后,派普特把皮亚杰的理论充分地融合贯穿到 LOGO 语言的设计和实践之中。他曾在 1958-1963 年期间师从皮亚杰研究儿童发展的理论。

在他 1980 年的著作《头脑风暴》中,他写到 “通过编写计算机程序,孩子们既能尝试着理解和掌握最现代、最强大的技术工具,有机会触及科学和数学的最深处,并且体会到创建智能模型的美。“这样的观点时至今日,也是非常具有前瞻性的。

帕普特的教育思想主要有四个核心点:

1)孩子在动手中学习。(Children learn by doing.)在他看来,好的教育不是如何让老师教得更好,而是如何提供充分的空间和机会让学习者去构建自己的知识体系。当孩子们在制作一些对自己有意义的作品时,如编故事、编程序、或是音乐创作时,孩子们正处于学习知识的最佳状态。他被自己的热情所驱动,主动地去获取知识而不是痛苦地被填鸭。

2)可触摸的实体帮助思考具象化。Tangible objects support concrete ways of thinking.

3)强大的理论可以赋能个体。(Powerful ideas can empower the individual.)Powerful idea 在派普特的教育思想中非常重要,不过他并没有在书中直接定义什么是 Powerful idea。这个理念,将 TED 引入中国的叶富华曾有过很形象的解释:

编程本身并不能使你成为更懂得思考的人,只有当你通过编程,在电脑上做了某些模拟,然后加深了对世界的理解和认识之后,你才真正接触到了派普特说的 Powerful ideas。

假如说这个世界是由上帝创造的,那这位上帝应该是一位数学家。我们身处的这个世界,从城市交通、空气污染,到桥梁结构、地质演变,再到经济活动以及人际互动,无不可以用数学模型来帮助我们理解。帕普特自身是一位数学家,他深深明白这一点。而且他相信,这些模型不需要读到研究生才有资格去学习,一个小孩也能学习,而且说不定小孩还能发现模型的漏洞。

4) 自我反省可以帮助孩子看清自己的思考与周遭环境的联系。

自我反省就像是编程过程中的调试(debugging)。就像程序中会出现错误(bug),需要反复调试一样,孩子可以通过调试自己来发现、分析并修正错误。这个过程是由孩子自己驱动的,教师扮演的角色只是在必要时给出反馈和提供支持。调试的技能就是分析和解决问题的能力,在儿童学习过程中非常重要,能够在现实生活中训练出批判性思维,孩子脑中的调试程序是“智力活动的本质“ 。

在一段 1984 年拍摄的视频中,帕普特坚信电脑将成为未来学校和家庭的重要组成部分,就像纸和笔一样。他也阐述了他的理念,“孩子通过学习编程,他们在学习一些重要概念:运动、反馈、工业设计的原则等等,但是最重要的事他们学习到的知识是一个统一的整体,科学、数学等正式学科和他们热爱的玩具和游戏不是分离的。孩子们甚至可以学龄前就获得这些知识。“

皮亚杰和帕普特两人的建构主义学习理论成为了此后儿童编程教育思想的基础。从皮亚杰的理论里,我们都可以看到之后儿童编程科学的世界观和灵魂所在:对活动和交互的重视,让孩子在玩耍中不断创建和调整心智模式。

30 多年前中国的青少年编程普及尝试 

中国也在差不多上世纪 80 年代开始逐步向青少年普及计算机知识。

1982 年,上海市教育局从每个区挑选了 8 名小学生和 8 名中学生,对他们进行最基本的计算机培训,从而试验一下儿童对计算机教育的适应程度。在一些边学边教的老师的指导下,这些少年接受了中国最早期的计算机教育。

11 岁的李劲是其中一名学生。他是上海少年宫有名的电脑迷,在当时的电脑还是用金星彩电做显示器,分辨率很低,不过李劲乐于“无需花钱,只需动脑子就实现自己的想法“。他在 12 岁那一年编出了他的第一个程序。那是一个高射炮打飞机的游戏,大约 100 行。

参加这次培训的三个月后,上海市进行了第一次计算机编程竞赛,李劲是第一名,他在当时打印了一条 Sin 曲线。

2 年后,1984 年 1 月,上海举办十年科技成果展,集中体现全上海电子技术近 10 年的发展。有关计算机成果展有两个展台,其中包括一些儿童做的计算机程序的演示。李劲作为代表专为大会做一些演示工作。

2 月 16 日,一位老人参观了展览,特地在李劲的电脑前停留了 6 分钟。李劲给他们演示了一些计算机动画的小程序和一个下棋的游戏。这位老人对李劲赞赏有加,看完他的表演,站起来和李劲握手,问他几岁,李劲答:13 岁。

老人摸着李劲的头说:“计算机普及要从娃娃抓起”。

这位老人就是邓小平,这句话在当时得到了广泛传播,也极大地推动了全国性的电脑学习热潮。所以,到今天我们所说的少儿编程热潮,早早 30 多年前就已经开始了。

1984 年,13 岁的李劲为邓小平演示编程操作。李劲现在在微软亚洲研究院担任研究员。

1984 年中国举办了第一届青少年程序设计竞赛。同年,计算机课程首次进入上海的高中课堂,翌年成为高中阶段的必修课。

1989 年,中国青少年计算机编程竞赛团队参加了国际信息学奥林匹克竞赛。中国青少年程序设计竞赛正式更名为信息学(计算机)奥林匹克竞赛,标志着中国青少年正式与世界先进的青少儿编程教育接轨。

当年被邓小平“摸头杀”的李劲也一直延续着对计算机编程的热情,李劲在 16 岁时凭借计算机特长破格进入清华大学,在 23 岁时成为当时中国最年轻的博士,在中国的图形图像编码领域有大量的学术成就。目前在微软研究院担任研究员。

微软研究院部分合影。第二排左三是李劲,就是当年邓小平视察上海工作时,谈及“计算机的普及要从娃娃抓起”身旁的小孩,也被称为“邓摸头”。 Source:智东西

这一代青少年是直接在互联网中浸泡中成长起来的一代,他们被称为“数字原住民”。这些孩子在婴幼儿时期就知道手机和平板上可以看小猪佩奇,点开某个App 里面的小动物可以说话。他们熟练地使用电脑或手机浏览网页、玩游戏、看视频,但并不知道如何利用他们手中的工具去创造东西,这是非常可惜的。

时至今日,有多少人通过当年这场全国性的计算机科普运动最终走向了计算机相关的职业道路?像李劲这样的人一定是少数。但又有多少人通过学习编程,享受探索、创造、调试事物的乐趣?就像帕普特所说“让孩子对电脑编程,而不是让电脑对孩子编程”。

西摩尔·派普特(Seymour Papert)
1928.2.29 – 2016.7.31

今天(7 月 31 日)是帕普特逝世两周年,我们通过重读他的思想,纪念他。

  1. 1969 – The Logo Turtle – Seymour Papert et al
  2. A Brief History of Coding Education for Kids
  3. Google Doodle 慶祝 Kids Coding 創立 50 週年
  4. Wikipedia 词条 LOGO
  5. 游研社:曾经有个抱着电脑却没游戏玩的时代,无聊的小孩甚至去玩一款编程软件
  6. 离线:发明「小海龟编程」的人工智能之父逝世了,世人对他的编程哲学仍未理解
  7. MIT News: Professor Emeritus Seymour Papert, pioneer of constructionist learning, dies at 88
  8. MIT Media Lab:Excerpt from the MIT Media Laboratory Interactive Videodisc 1986. 
  9. Seymour Papert’s Mindstorms: Relevant, Thoughtful, an Essential Read for Educators Seymour Papert’s Mindstorms: Relevant, Thoughtful, an Essential Read for Educators
  10. 1980
  11. 《程序员》百期文章回顾之1——李劲,“计算机娃娃”长大了
  12. 智东西:微软亚洲研究院英雄谱 主宰中国科技圈的半壁江山

Follow us on Wechat

蓝湖资本微信公众号