回顾编程教育起源,才发现小海龟对世界影响的深远

网友投稿 2019-08-24 11:52

本文原载于《中国科技教育》2019年第6期专题“跟着‘小海龟’学Python”栏目,作者刘欣、陈染,原文标题《 影响世界的编程小海龟》

https://cdn.china-scratch.com/timg/190826/11521C2W-0.jpghttps://cdn.china-scratch.com/timg/190826/11521L924-1.jpghttps://cdn.china-scratch.com/timg/190826/11521U1Q-2.jpghttps://cdn.china-scratch.com/timg/190826/11521VP5-3.jpghttps://cdn.china-scratch.com/timg/190826/11521T919-4.jpghttps://cdn.china-scratch.com/timg/190826/11521T557-5.jpg

如果我们把各种编程语言的标志放一起,可以凑出一个动物园。例如Python的大蟒蛇、PHP的大象、Go语言的地鼠、Swift语言的雨燕、Perl的骆驼。对于中小学教师而言,最熟悉的动物应该是Scratch的小黄猫和LOGO语言的小海龟。你可能不知道的是,LOGO小海龟几乎定义了现今编程教育方法的基本框架,甚至对儿童教育和计算机发展都产生了巨大影响。在本文中,我们将一同回顾小海龟的成长历程,以及它是如何影响了世界。

01

“小海龟”诞生

我们今天提到小海龟,通常就是指麻省理工学院教授西摩尔·派普特的LOGO语言和其中的绘图小海龟。西摩尔·派普特出生于南非,父亲是一名昆虫学家。派普特在本科学习哲学,而后分别在威特沃特斯兰德大学和剑桥大学获得了两个数学博士学位。在攻读第二个数学博士期间,派普特结识了影响他一生的人物让·皮亚杰(Jean Piaget)。皮亚杰被公认为是仅次于佛洛依德的心理学“巨人”,他创建的认知发展理论颠覆了人们原本对儿童发展的理解。在此之前,儿童的玩耍一直被认为是无关紧要的行为,皮亚杰则认为玩耍对儿童的知识建构起到了重要的作用。在皮亚杰的影响下,派普特来到日内瓦大学,花了四年时间,与皮亚杰共同开展数学与儿童教育的研究工作。

派普特认为:“当代文化中常见的数学恐惧症让很多人看不到数学知识的真面:一方面,他们对自己所认为的‘数学’敬而远之;另一方面,尽管他们在数学知识上没有什么困哪,但却不认为那就是数学。”吸收了皮亚杰的认知发展理论,派普特希望找到一种学习方法,既能与数学知识相关联,又能让儿童以他们的认知方式去理解。海龟型机器人是派普特最先找到的一个入手点。

https://cdn.china-scratch.com/timg/190826/1152194N4-6.jpg

1963年,派普特加入麻省理工学院,与著名人工智能科学家马文·明斯基共同研究人工智能。同时,派普特也在研究如何借助计算机辅助儿童学习。在派普特的带领下, LOGO语言和绘图小海龟机器人先后诞生。在20世纪40年代,神经生理学家沃尔特(William Grey Walter)设计了一批机器人,通过让这些机器人模拟动物行为,来进行大脑运行模式的研究。沃尔特用《爱丽丝漫游仙境》中的海龟老师来命名这些机器人。麻省理工学院的小海龟机器人增加了一支笔,儿童可以通过在计算机上的LOGO编程来控制小海龟机器人行走和绘图。而后,LOGO语言里实现了可以直接在显示器上绘制数字图形的数字小海龟。派普特把通过控制小海龟绘图的学习方法称之为“海龟几何”(Turtle Geometry)。这是一种易于学习的几何,它有效承载了很多普遍性的数学概念。打开LOGO语言,孩子们就能看到屏幕上呈现的小海龟,输入FD 100,小海龟就会向前行进100个距离单位,再输入RT 90,小海龟就会向右转90°,再输入FD 100,小海龟继续前进100个距离单位,如此重复4次,小海龟回到原点,画出了一个正方形。小海龟的朝向、行走、转弯的概念,让孩子们得到了一种可以把自身代入到数学中的方式,并且让他们更敢于去探索和尝试解决问题。派普特在他后来出版的《因计算机而强大:计算机如何改变我们的思考与学习》(Mindstorms: Children, Computer and Powerful Ideas)里详细阐述了他的计算机辅助学习和海龟几何的理论。

https://cdn.china-scratch.com/timg/190826/1152194637-7.jpg

(图表 1LOGO语言中的小海龟)

02

“小海龟”对儿童教育和计算机行业的影响

在今天的各种编程教育工具和机器人产品中,小海龟带来的朝向、旋转、步数已经成为最基本的命令规范。除了在LOGO语言中发挥作用外,这只小海龟还启发了很多影响世界的发明。这其中我们最熟知是乐高的Mindstorms机器人和麻省理工学院媒体实验室的Scratch

1984年,乐高第三代掌门人克伊尔德·柯克·克里斯蒂安森在一期电视节目中,看到派普特介绍LOGO与小海龟的学习的思想。克伊尔德立刻安排公司与派普特联系。收到乐高公司合作邀请的派普特也很兴奋,他与他的博士生米切尔·雷斯尼克当时已经在思考如何把乐高积木与计算机教育结合。派普特和雷斯尼克希望让电子器件与积木兼容,更轻、更小、更便宜,并且能脱离计算机使用。1990年,派普特团队研发出了乐高与LOGO融合的新产品原型,乐高公司很快转化为正式产品推出。这套产品以上文提到的派普特著作命名,也就是我们熟知的乐高Mindstorms机器人。如今乐高机器人竞赛已经成为每年有来自超过100个国家的60余万青少年参加的赛事。

可以说,秉承了派普特教育思想的Mindstorms机器人是更强大的小海龟,学生可以给机器人设计出更多的功能,通过编程让机器人完成更复杂的行为。而后来米切尔·雷斯尼克(Mitchel Resnick)又创造了一条完全不同的方向。同样基于“做中学、玩中学”的思想,雷斯尼克希望挑战更大的目标。派普特认为,编程语言应该有“低门槛”(容易上手学习),“高天花板”(随着学习深入可以开发越来越复杂的项目)和“宽阔空间”(能支持不同类型的项目以吸引有不同兴趣的人)。以此为目标,雷斯尼克带领麻省理工媒体实验室推出了Scratch。Scratch的“低门槛”的实现主要受儿童玩乐高积木方式的启发,儿童可以从随意的摆放积木块开始,把它们按不同顺序和组合搭在一起,看会有什么结果产生。像传统编程语言中的晦涩的语法和符号都不复存在,Scratch实现了真正的“低门槛”并充满好玩有趣的体验。

小海龟不仅在教育领域产生了影响。1968年,计算机科学家艾伦·凯(Alan Kay)来到麻省理工学院人工智能实验室参观,孩子们使用LOGO语言学习编程的情景让他感到十分兴奋。在进一步了解了派普特和皮亚杰的学习理论后,艾伦提出了Dynabook的设计概念。Dynabook仅重两磅,采用电池供电,儿童可以轻便地携带,随意地在任何地方使用。Dynabook使用图形化界面(GUI),让儿童能轻松的学会操作方法。但是很遗憾,受到当时科技水平的限制,Dynabook没能实际生产出来。艾伦在加入施乐帕克研究中心后,他基于Dynabook的设想开发出了展示原型。1979年12月,艾伦的研究成果让来访施乐帕克研究中心的一位年轻人和他的同事们感到惊讶无比。之后这位年轻人的公司迅速推出了几乎是定义了个人电脑的新产品——Macintosh电脑。这位年轻人就是史蒂夫·乔布斯。2010年,乔布斯执掌的另一个创新产品iPad发布,计算机业界纷纷感慨“42年后,艾伦·凯的Dynabook终于到来了”。

https://cdn.china-scratch.com/timg/190826/1152192245-8.jpghttps://cdn.china-scratch.com/timg/190826/1152192419-9.jpg

图表 2 从Dynabook的概念图到iPad

除了设计Dynabook,艾伦还希望能创造一种基于面向对象设计,更利于“人与计算机共生关系”的编程语言。在施乐帕克研究中心,艾伦带领研发了Smalltalk语言。在早期研发工作中,面向对象设计、小海龟(LOGO)和图形化界面构成了Smalltalk最早的蓝图。艾伦在《The Early History of Smalltalk(Smalltalk的早期历史)》介绍了派普特的研究对其设计思路的启发,尤其提到:“FLEX, PLANNER, LOGO, META II以及我个人基于它们的衍生思想对Smalltalk的设计产生了很大的影响。” 2003年,艾伦因其对面型对象编程语言的原创思想,对Smalltalk的研究工作,以及对个人计算机发展的基础性贡献而获得图领奖。Smalltalk被称为“面向对象编程语言之母”,几乎所有后来的面向对象编程语言都是源于Smalltalk的设计思想,比如我们熟知的Java、Objective-C、PHP、Perl,当然也包括今天在编程教育领域倍受关注的Python。

03

“小海龟”在今天

随着计算机行业的蓬勃发展,小海龟已经不仅存在于LOGO语言和海龟机器人。小海龟的绘图方式已经成为一种设计思想, “海龟图形学”在多种编程语言和科学研究中都得以应用。

Lindenmayer系统,简称L系统,是由荷兰乌特勒支大学的生物学和植物学家,匈牙利裔的林登麦伊尔于1968年提出的有关生长发展中的细胞交互作用的数学模型,尤其被广泛应用于植物生长过程的研究。基于L系统的分形图形的绘制就使用了小海龟绘图法,通过更高级的编程语言,能够绘制出三维的植物生长模拟图。

https://cdn.china-scratch.com/timg/190826/1152205F2-10.jpg

一些编程语言专门创建了小海龟的类库,便于初学者上手学习。如微软的Small Basic,Go语言,Java,Python等。伴随着人工智能产业和编程教育的发展,Python近几年受到了更广泛的关注。根据TIOBE发布的编程语言排行榜,Python是近五年应用量增长最快的语言之一。2018年,Python获得了TIOBE“年度编程语言”的称号。

Python是吉多·范·罗苏姆(Guido van Rossum)于1991年开发的一种解释型、高级编程、通用型编程语言。今天,Python在网络开发、数据分析和机器学习等领域得到广泛应用。与其他语言比较,Python的语法更加优雅、简单,可读性更高,因此全球各国都把Python视为更适合教育使用的编程语言。

Scratch是编程教育启蒙阶段的优秀工具。Python则承担了帮助学生学习编码效率更高、功能更复杂的代码式编程的重任。同样为了实现“低门槛”,很多高中和大学都选择使用Python的Turtle类库作为起始学习内容。即使要使用抽象的代码和语法来编码,Python Turtle依然为学生提供了直观的共鸣式学习环境。学生可以很容易的预测和理解程序的结果,并且主动探究新代码的应用和复杂逻辑的实现。

2019年,由中国科协青少年科技中心和中国青少年科技辅导员协会主办的“全国青少年创意编程与智能设计大赛”中新增了Python比赛项目。大赛的Python赛项面向初、高中学生,以Python Turtle为比赛内容开展。Python赛项分为四个类别招收作品,这个四个类别是:科学探索、实用工具、数字艺术和互动游戏。具体要求可以访问大赛官网:http://aisc.xiaoxiaotong.org/。

回顾小海龟四十多年的发展,我们不禁感叹,这只小小海龟几乎影响了今天所有编程教育产品与教育机器人产品,甚至间接影响了个人计算机和编程语言的基础性设计。派普特与皮亚杰两位教育巨匠塑造了小海龟的灵魂,后来的人们与小海龟相遇,不断激发出创新的火花。在人工智能备受重视的时代背景下,我相信小海龟背后的思想宝库还有源源不断的惊喜等待我们去挖掘。

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com