LOGO(小海龟)编程之父留给我们的思想遗产

LOGO(小海龟)编程之父留给我们的思想遗产

中国少儿编程网 • Logo编程 • 2016-08-04 10:06

发明「小海龟编程」的人工智能之父逝世了,世人对他的编程哲学仍未理解

原标题:Seymour Papert 留给我们的思想遗产

作者:叶富华

  早上起床从推特得知西摩尔·帕普特(Seymour Papert,1928.2.29~2016.7.31)驾鹤西归,内心多少有些忧伤,于是写下了这些文字,作为纪念。

  麻省理工学院(MIT)校长拉斐尔·赖夫(Rafael Reif)在 MIT 官网的讣告文里总结说,西摩尔·帕普特至少给三个领域带来了革命,分别是儿童发展、人工智能,以及科技与教育之融合。能够在上述任何一个领域做出一点成绩都不容易了,而帕普特则横跨三个领域,而且对这三个领域的发展都带来了极为深远的影响。

  我第一次知道西摩尔·帕普特是2006年看了 Nicholas Negreponte 的一个TED演讲,他当时介绍的是 One Laptop Per Child 这个教育项目,后来 Negreponte 回忆说,每一台 OLPC 电脑里其实都印刻着帕普特的思想。后来 2015 年我开始搞教育培训,于是从亚马逊书店买了帕普特写的 Mindstorms,拿到书之后,花了两个月逐行逐字细细阅读了两次。这次才真正领悟到帕普特的思想是多么的超前。

  这里先简单介绍一下帕普特的生平。帕普特 1928 年出生于南非,年轻的时候曾参与反对种族隔离的运动。他 24 岁就拿到了数学博士学位,30 岁的时候拿到了第二个数学博士学位。其后他去到瑞士日内瓦,追随著名心理学家皮亚杰(Jean Piaget)学习儿童发展的理论。后来帕普特在一次学术会议上与人工智能研究的先驱马文·明斯基(Marvin Minsky)相识,而且非常有趣的是,当时两人提交了几乎一模一样的论文。明斯基邀请帕普特来到 MIT,开启了帕普特在美国的学术生涯。帕普特参与创办了 MIT 人工智能实验室,也是后来成立的 MIT 媒体实验室的创始教员。他曾与明斯基合著 Perceptrons 一书。Facebook 的人工智能研究主管伊恩·勒坤(Yann LeCun)在读大学的时候听说了「perceptron」的概念后,激发了对学习型机器的热情,虽然业界普遍认为这本书是让刚诞生的神经网络胎死腹中,但勒坤说,他一直都是帕普特的粉丝。

  进入 60 年代后,帕普特开始思考怎么用电脑来帮助儿童更好地学习。他发明了 LOGO 编程语言,也成为 20 世纪下半叶建构主义学习理论的代表人物。帕普特一生致力于理解儿童是怎么学习的,儿童到底在学习什么,怎样才能更好地帮助儿童学习。他的研究和实践给无数的教育工作者带来了启发,尤其是 Mindstorms 一书,虽然是诞生于个人电脑尚未普及的 70 年代末,但书中的思想即使是今天读起来依然让人感觉是超前的。

  帕普特的思想极为博大精深,短短一篇文章难以尽言,这里抽取其中三点跟大家分享一下。

让孩子对电脑编程,而不是让电脑对孩子编程

  帕普特有一句非常著名的话,他说,我们要关心怎么才能让孩子对电脑进行编程,而不是让电脑对孩子进行编程。这句话可谓道出了他的真心。

  早在 60 年代,在那个电脑要几千美金的年代,帕普特就在想,怎么才能让电脑成为孩子学习的好帮手,让孩子成为电脑的主宰,让孩子通过电脑这一媒介来表达自己,并且将自己沉浸在各种有力的思想(powerful ideas)当中。换言之,帕普特关心的是怎么提供一种建构式的学习(constructivist learning),而非灌输式的教育。帕普特早年从皮亚杰那里学到了关于儿童行为及心理的很多东西,而这些洞察直接指导了他后来的研究和工作。

  为了让孩子也能用使用电脑做点有意义的事情,帕普特发明了 LOGO 编程语言,这一语言非常简单,任何一个小孩一天就能学会。在 LOGO 的世界里有一只小海龟,你可以通过输入指令,让海龟在画面上走动,可以向上下左右,或者是按照你指定的角度移动。你还可以让小海龟以加速或减速移动,也可以让小海龟重复某一个动作。这些指令看似简单,但假如能将其进行合理的组合和排序,你就可以创造出各种东西,包括人、房子、汽车、动物、抽象图案,甚至有人还专门写了一本 600 多页的书(书名就是 Turtle Geometry,乌龟几何),发掘 LOGO 带给人们的无限可能(这本书会告诉你,用 LOGO 来学习包括微积分在内的各种高等数学知识也不是不可能的)。

  回顾自己第一次接触帕普特时受到的触动,图灵奖获得者艾伦·凯(Alan Kay)说,帕普特让他意识到,我们教给孩子的不应该是一种经过稀释的知识,孩子要学的并不是大人所掌握的知识的小孩版。我们首先要了解孩子的学习机制,才能为其提供很好的教育。孩子对周围的世界总是会充满好奇,而这样的好奇本身就能成为教学内容的一部分。艾伦·凯于 2004 年参与发起了「一百美元电脑」项目,旨在让每一个孩子都能用得上电脑,并且还不是你在商店买的普通电脑,而是内置了许多学习软件的 OLPC 电脑,由于所有的软件都是开源的,而且很容易找到源码,孩子可以自行修改这些软件,来满足他们的需要。这正是帕普特所提倡的让孩子对电脑进行编程的精神之传承。

  反观今天绝大多数给小孩开发的软件,本质上都是电脑对孩子编程,而非孩子对电脑编程。电脑的普及,并没有让孩子受惠,反而让他们成为了奴隶。

Powerful ideas

  你是不是一直都认为,小学数学就该从数数开始学,然后一路加深难度,直到大学的时候,才把微积分给祭出来?

  但你知道吗?小孩子对数数本身也许兴趣不大,他们更感兴趣的反而是微积分!

  其实小孩真正感兴趣的是理解他身处的世界,而微积分则是已知的认识这个物理世界最好的数学工具之一。在帕普特开发的 LOGO 语言环境里,孩子们可以创作任何图案,他们一开始通常会想到画正方形、三角形,然后自然就会想到去画圆形,画花瓣。要画圆形的话,就需要指挥小海龟往北走一小段路,然后左转,再走一小段路,再往北,然后往左,如是反复上千次之后,你就能画出一个比较接近圆的图案了。而这个过程本身,跟微积分的思维本质上就是一致的。所以小孩在画圆的时候,就不知不觉地学习到微积分了。

实体版的小海龟。图:cyberneticzoo.com

  再举一个例子,如果孩子对汽车怎么移动这一现象感兴趣,那我们完全可以用电脑对此进行模拟(用最简单的 LOGO 就能做出这样的模拟),孩子可以观察电脑模拟,在老师的引导之下,自己找到汽车加速的规律。他们可以一边玩玩具,一边掌握加速度这样的物理概念。

  世界需要像牛顿这样的天才来发明微积分,而我们这些凡夫俗子只需身处一个恰当的环境,就能领悟到微积分的奇妙,而像帕普特这样的好老师的价值,就体现在他们给孩子创造出了非常真实的模拟环境。

  帕普特并不是为了发明 LOGO 而发明了 LOGO,他是希望小孩能够通过学编程,接触到「有力量的」数学概念,而编程则是实现这一目标的极佳手段。1980 年出版的 Mindstorms 一书的副标题是 Children, Computers, and Powerful Ideas,大多数人只看到副标题里的孩子和计算机,却忽视了 powerful ideas。其实 powerful ideas 才是帕普特最为关注的东西。

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

  假如说这个世界是由上帝创造的,那这位上帝应该是一位数学家。我们身处的这个世界,从城市交通、空气污染,到桥梁结构、地质演变,再到经济活动以及人际互动,无不可以用数学模型来帮助我们理解。帕普特自身是一位数学家,他深深明白这一点。而且他相信,这些模型不需要读到研究生才有资格去学习,一个小孩也能学习,而且说不定小孩还能发现模型的漏洞。在整个世界都日趋复杂的今天,我们更是需要懂得这种思维的人。而电脑则是培养这样的思维的最好的工具,只是非常可惜,大家都只把电脑当作升级版的电视,没有看到电脑的程序可供性(procedural affordance)。

  下面是一段短片,介绍的是 80 年代时帕普特参与的「电脑进入课堂」实验,在短片的最后简要阐述了他的教育理念,非常值得一看。

思考怎么思考

You can’t think about thinking without thinking about thinking about something.

  帕普特的这句话流传甚广,翻译成中文,大致意思是,我们不能只是思考思考本身,除非我们有一个思考的对象,否则我们只是在那里思考就会一无所获。这个想法第一次出现,是在帕普特给神经网络早期研究者沃伦·麦卡洛(Warren McCullough)的 Embodiments of Mind 一书所写的序言里,其后,帕普特在另一篇同题论文里对此有展开论述(强烈建议大家下载阅读原文)。

  MIT 媒体实验室创始人尼古拉斯·尼葛洛庞蒂(Nicholas Negroponte)在一次研讨会上说这句话对他影响深远。他因此而改变了思考所有问题的方式。比如,当同事跟他讨论如何为媒体实验室筹款时,尼葛洛庞蒂就会说,我们应该讨论的是,我们该如何思考为媒体实验室筹款这件事本身。这一法则适用于其他任何场景,它能帮助你找到问题的本质。因此,尼葛洛庞蒂认为,我们向帕普特学习,最重要一点,就是要理解帕普特的思维方式。

图:来自帕普特的 Mindstorms 一书

  帕普特所提倡的教育理念之核心,在于为孩子赋能,创造出能够让孩子发挥其好奇心的环境,而这本身就是对传统工业化教育理念的反思和颠覆。在 Mindstorms 一书里,帕普特特别强调了调试(debugging)之于思考的意义。所有写过电脑程序的人都知道,很多时候你写出来的程序不一定能运行良好,你需要调试,改变某个参数,或者修改某项指令,改完后再测试,假如不行,再改,如此反复,直到最后程序能按照预期那样运行。LOGO 的环境就给孩子提供了一个非常好的场域,他们对程序的任何修改是否有效,马上就能看出来。其实帕普特最初是做了一个长得像海龟的机器人,孩子可以通过编程来指挥小海龟机器人运动,而对孩子来说,小海龟有足够的吸引力,他们只觉得自己在玩,而不是像在学校那样,被迫做很多自己搞不懂为什么的练习。

  其实,不论是大人还是小孩,为了不让我们的思想过时,我们都该时不时对自己的思想进行调试。

  帕普特提出的教育命题迄今依然没有获得广泛关注,科技的革新并没有带来真正意义上的教育革新。原因何在?也许我们该回到帕普特那里去找到答案。

你可能感兴趣的:(程序员往事)