【小哈划重点:这种语言的发明者就是西摩尔·派普特(Seymour Papert),一名来自南非的计算机科学家、数学家及教育家,是人工智能发展的先驱之一。他参与创办了MIT Media Lab。这是第一款针对儿童教学使用的编程语言。派普特也由此被称为“少儿编程之父”。】
经常有人问我们投少儿编程这一赛道的逻辑是什么。
从风投的逻辑来说,我们看到中美编程教育普及的巨大悬殊带来的市场机会,另外也可以说是看到国家政策的鼓励——编程陆续进入各省高考考纲,并将其视为“下一个奥数级别的市场”。不过说到底,在中国少儿编程教育依然如此早期的阶段,这是一个“因为相信,所以看见”的判断。
从“小海龟”到全球最火爆的乐高编程机器人
这个“相信”来自一个可以追溯到半个世纪前的故事,跟一只“小海龟”有关。
大概长这样:
可能很多 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 来源: mitpress.mit.edu
不过,在 LOGO 语言发明的年代,计算机的价位在几千美元一台,对普通人来说根本负担不起。于是派普特就发明了实体版“小海龟画图“。
最初的时候“小海龟”只是一个三轮装置并安装了一个“尾巴”也就是一支笔。由 MIT 的 Tom Callahan 在 1969年—1970 年之间制作。来源:cyberneticzoo.com
孩子使用简易的键盘控制器(左边),操纵“小海龟”画出图形(右边半球形装置)。这张照片是派普特的书《头脑风暴》(Mindstorms)的封面。来源: cyberneticzoo.com
1984年,时任乐高公司 CEO 的克伊尔德·克里斯丁森在电视中看到了派普特的采访节目。当时派普特正在电视中演示实体 LOGO 海龟。克里斯丁森认为,实体化的海龟跟乐高的产品哲学有相通之处,二者如果能够结合起来,一定是个不错的新产品。
随后,克伊尔德访问了 MIT Media Lab。在与乐高接洽后,派普特提出了一个不同以往的想法。LOGO 和“小海龟”,以及 MIT Media Lab 的其它研究都需要将实物机器人与计算机连接。派普特的新设想是,能否创造一个能替代电脑的乐高零部件——一个具有计算的功能,又能跟乐高一样小巧,又足够便宜的零部件。在当时,这是一个巨大的挑战,然而这也将会是一个革命式创新。
但这个设想直到 1998 年才得以实现。那年,乐高发布了全新的可编程机器人产品——Mindstorms 系列。为向派普特致敬,乐高用他 1980 年出版的书名作了注册商标。从此,乐高掀起了一场全球的机器人风暴。乐高 Mindstorms 在 1998 年 9 月发售,当年 12 月 1 日即全部售罄。时至今日,乐高机器人依然是全球最火爆的教育机器人。
为了致敬派普特,乐高以其著作名命名了可编程机器人产品——Mindstorms 系列。来源: 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. 孩子在动手中学习。在他看来,好的教育不是如何让老师教得更好,而是如何提供充分的空间和机会让学习者去构建自己的知识体系。当孩子们在制作一些对自己有意义的作品时,如编故事、编程序或是音乐创作时,孩子们正处于学习知识的最佳状态。他被自己的热情所驱动,主动地去获取知识,而不是痛苦地被填鸭。
2. 可触摸的实体帮助思考具象化。
3. 强大的理论可以赋能个体。
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 岁时成为当时中国最年轻的计算机博士,在中国的图形图像编码领域有很大的学术成就。目前在微软研究院担任研究员。
微软研究院部分合影。第二排左三是李劲,就是当年邓小平视察上海工作时,谈及“计算机的普及要从娃娃抓起”身旁的小孩,也被称为“邓摸头”。 来源:智东西
这一代青少年,是直接在互联网世界中成长起来的,他们被称为“数字原住民”。这些孩子在婴幼儿时期就知道手机和平板上可以看小猪佩奇,点开某个 App 里面的小动物可以说话。他们熟练地使用电脑或手机浏览网页、玩游戏、看视频,但并不知道如何利用他们手中的工具去创造东西,这是非常可惜的。
时至今日,有多少人通过当年这场全国性的计算机科普运动,长大后走上了计算机相关的职业道路?像李劲这样的人一定是少数。但又有多少人通过学习编程,享受探索、创造、调试事物的乐趣?就像派普特所说的那样,“让孩子对电脑编程,而不是让电脑对孩子编程”。
西摩尔·派普特(Seymour Papert) 1928.2.29 - 2016.7.31
今天(7 月 31 日)是派普特逝世两周年,我们通过对少儿编程的追本溯源、通过重读他的思想,来纪念他。
蓝湖资本是新一代的研究驱动的风险投资基金,专注于互联网和企业软件等科技行业的早期投资。