劉欣 陳染
如果我們把各種編程語(yǔ)言的標(biāo)志放一起,可以湊出一個(gè)動(dòng)物園,如Python的大蟒蛇、PHP的大象、Go語(yǔ)言的地鼠,而對(duì)于中小學(xué)教師而言,最熟悉的“動(dòng)物”應(yīng)該是Scratch的小黃貓和LOGO語(yǔ)言的小海龜。你可能不知道的是,LOGO小海龜幾乎定義了現(xiàn)今編程教育方法的基本框架,甚至對(duì)兒童教育和計(jì)算機(jī)發(fā)展都產(chǎn)生了巨大影響。在本文中,我們將一同回顧“小海龜”的成長(zhǎng)歷程,以及它如何影響了世界。
“小海龜”誕生
我們今天提到的“小海龜”,是指美國(guó)麻省理工學(xué)院教授西摩爾·派普特的LOGO語(yǔ)言和其中的繪圖小海龜。派普特在威特沃特斯蘭德大學(xué)和劍橋大學(xué)獲得了2個(gè)數(shù)學(xué)博士學(xué)位。在攻讀第2個(gè)數(shù)學(xué)博士期間,派普特結(jié)識(shí)了影響他一生的人物讓·皮亞杰。皮亞杰被公認(rèn)為是僅次于弗洛伊德的心理學(xué)“巨人”,他創(chuàng)建的認(rèn)知發(fā)展理論顛覆了人們?cè)緦?duì)兒童發(fā)展的理解。在此之前,兒童的玩耍一直被認(rèn)為是無(wú)關(guān)緊要的行為,皮亞杰則認(rèn)為玩耍對(duì)兒童的知識(shí)建構(gòu)起到了重要的作用。在皮亞杰的影響下,派普特來(lái)到日內(nèi)瓦大學(xué),花了4年時(shí)間,與皮亞杰共同開展數(shù)學(xué)與兒童教育的砑究工作。
派普特認(rèn)為: “當(dāng)代文化中常見的數(shù)學(xué)恐懼癥讓很多人看不到數(shù)學(xué)知識(shí)的真面。一方面,他們對(duì)自己所認(rèn)為的‘?dāng)?shù)學(xué)敬而遠(yuǎn)之;另一方面,盡管他們?cè)跀?shù)學(xué)知識(shí)上沒(méi)有什么困難,但卻不認(rèn)為那就是數(shù)學(xué)?!?sup>[1]吸收了皮亞杰的認(rèn)知發(fā)展理論,派普特希望找到一種學(xué)習(xí)方法,既能與數(shù)學(xué)知識(shí)相關(guān)聯(lián),又能讓兒童以他們的認(rèn)知方式理解。海龜型機(jī)器人是派普特最先找到的一個(gè)人手點(diǎn)。
1963年,派普特加入麻省理工學(xué)院,與著名人工智能科學(xué)家馬文·明斯基共同研究人工智能。同時(shí),派普特也在研究如何借助計(jì)算機(jī)輔助兒童學(xué)習(xí)。在派普特的帶領(lǐng)下,LOGO語(yǔ)言和繪圖小海龜機(jī)器人先后誕生。在20世紀(jì)40年代,神經(jīng)生理學(xué)家沃爾特設(shè)計(jì)了一批機(jī)器人,以《愛麗絲漫游仙境》中的海龜老師命名,通過(guò)讓這些機(jī)器人模擬動(dòng)物行為進(jìn)行大腦運(yùn)行模式的研究。麻省理工學(xué)院的小海龜機(jī)器人增加了一支筆,兒童可以通過(guò)計(jì)算機(jī)上的LOGO編程控制小海龜機(jī)器人行走和繪圖。而后,LOGO語(yǔ)言里實(shí)現(xiàn)了可以直接在顯示器上繪制數(shù)字圖形的數(shù)字小海龜。派普特把通過(guò)控制小海龜繪圖的學(xué)習(xí)方法稱為“小龜幾何”。這是一種易于學(xué)習(xí)的幾何,它有效承載了很多普遍性的數(shù)學(xué)概念。打開LOGO語(yǔ)言,孩子們就能看到屏幕上呈現(xiàn)的小海龜,輸入“FD 50”,小海龜就會(huì)向前行進(jìn)50個(gè)距離單位,再輸入“LT 90”,小海龜就會(huì)向左轉(zhuǎn)90°,如此重復(fù)4次,小海龜回到原點(diǎn),畫出了1個(gè)正方形。小海龜?shù)某颉⑿凶?、轉(zhuǎn)彎的概念,讓孩子們得到了一種可以把自身代入到數(shù)學(xué)中的方式,并且讓他們更敢于探索和嘗試解決問(wèn)題。派普特在他后來(lái)出版的《因計(jì)算機(jī)而強(qiáng)大:計(jì)算機(jī)如何改變我們的思考與學(xué)習(xí))》(Mindstorrns: Chilclren,Computer and Powerful Ideas)里詳細(xì)闡述了他的計(jì)算杌輔助學(xué)習(xí)和小龜幾何的理論。
“小海龜”對(duì)兒童教育和計(jì)算機(jī)行業(yè)的影響
在今天的各種編程教育工具和機(jī)器人產(chǎn)品中,小海龜帶來(lái)的朝向、旋轉(zhuǎn)、步數(shù)已經(jīng)成為最基本的命令規(guī)范。除了在LOGO語(yǔ)言中發(fā)揮作用外,這只小海龜還啟發(fā)了很多影響世界的發(fā)明。這其中我們最熟知的是樂(lè)高M(jìn)indstorrns機(jī)器人和麻省理工學(xué)院媒體實(shí)驗(yàn)室的Scratch。
1984年,樂(lè)高第3代掌門人克伊爾德·柯克·克里斯蒂安森在一期電視節(jié)目中,看到派普特介紹LOGO與小海龜?shù)膶W(xué)習(xí)思想??艘翣柕铝⒖贪才殴九c派普特聯(lián)系。收到樂(lè)高公司合作邀請(qǐng)的派普特也很興奮,他與他的博士生米切爾·雷斯尼克當(dāng)時(shí)已經(jīng)在思考如何把樂(lè)高積木與計(jì)算機(jī)教育結(jié)合。派普特和雷斯尼克希望讓電子器件與積木兼容,更輕、更小、更便宜,并且能脫離計(jì)算機(jī)使用。1990年,派普特團(tuán)隊(duì)研發(fā)出了樂(lè)高與LOGO融合的新產(chǎn)品原型,樂(lè)高公司很快轉(zhuǎn)化為正式產(chǎn)品推出。這套產(chǎn)品以上文提到的派普特著作命名,也就是樂(lè)高M(jìn)indstorrns機(jī)器人。如今樂(lè)高機(jī)器人競(jìng)賽已經(jīng)成為每年有來(lái)自超過(guò)100個(gè)國(guó)家(地區(qū))的60余萬(wàn)青少年參加的賽事。
可以說(shuō),秉承了派普特教育思想的Mindstorms機(jī)器人是更強(qiáng)大的小海龜,學(xué)生可以給機(jī)器人設(shè)計(jì)出更多的功能,邐過(guò)編程讓機(jī)器人完成更復(fù)雜的行為。后來(lái),雷斯尼克又創(chuàng)造了一條完全不同的方向。同樣基于“做中學(xué)、玩中學(xué)”的思想,雷斯尼克希望挑戰(zhàn)更大的目標(biāo)。派普特認(rèn)為,編程語(yǔ)言應(yīng)該有“低門檻”(容易上手學(xué)習(xí))、“高天花板” (隨著學(xué)習(xí)深入可以開發(fā)越來(lái)越復(fù)雜的項(xiàng)目)和“寬闊空間” (能支持不同類型的項(xiàng)目以吸引有不同興趣的人)‘羽。以此為目標(biāo),雷斯尼克帶領(lǐng)麻省理工媒體實(shí)驗(yàn)室推出了Scratch。Scratch的“低門檻”的實(shí)現(xiàn)主要受兒童玩樂(lè)高積木方式的啟發(fā),兒童可以從隨意擺放積木塊開始,把它們按不同順序和組合搭在一起,看會(huì)有什么結(jié)果產(chǎn)生。像傳統(tǒng)編程語(yǔ)言中的晦澀的語(yǔ)法和符號(hào)都不復(fù)存在,Scratch實(shí)現(xiàn)了真正的“低門檻”并充滿好玩有趣的體驗(yàn)。
“小海龜”不僅在教育領(lǐng)域產(chǎn)生了影響。1968年,計(jì)算機(jī)科學(xué)家艾倫·凱來(lái)到麻省理工學(xué)院人工智能實(shí)驗(yàn)室參觀,孩子們使用LOGO語(yǔ)言學(xué)習(xí)編程的情景讓他感到十分興奮。在進(jìn)一步了解了派普特和皮亞杰的學(xué)習(xí)理論后,艾倫提出了Dynabook的設(shè)計(jì)概念。Dynabook僅重2磅,采用電池供電,兒童可以輕便攜帶,隨意在任何地方使用。Dynabook使用圖形化界面(GUI),讓兒童能輕松地學(xué)會(huì)操作方法。但是很遺憾,受到當(dāng)時(shí)科技水平的限制,Dynabook沒(méi)能實(shí)際生產(chǎn)出來(lái)。艾倫在加入施樂(lè)帕克研究中心后,基于Dynabook的設(shè)想開發(fā)出了展示原型。1979年12月,艾倫的研究成果讓來(lái)訪施樂(lè)帕克研究中心的一位年輕人和他的同事們感到驚訝無(wú)比。之后這位年輕人的公司迅速推出了幾乎是定義了個(gè)人電腦的新產(chǎn)品-Macintosh電腦。這位年輕人就是史蒂夫·喬布斯。2010年,喬布斯執(zhí)掌的另一個(gè)創(chuàng)新產(chǎn)品iPad發(fā)布,計(jì)算機(jī)業(yè)界紛紛感慨:“42年后,艾倫·凱的Dynabook終于到來(lái)了?!?/p>
除了設(shè)計(jì)Dynabook,艾倫還希望能創(chuàng)造一種基于面向?qū)ο笤O(shè)計(jì),更利于“人與計(jì)算機(jī)共生關(guān)系”的編程語(yǔ)言。在施樂(lè)帕克研究中心,艾倫帶領(lǐng)研發(fā)了Srnantalk語(yǔ)言。在早期研發(fā)工作中,面向?qū)ο笤O(shè)計(jì)、小海龜(LOGO)和圖形化界面構(gòu)成了SmaUtalk最早的藍(lán)圖。艾倫尤其提到:“FLEX,PLANNER,LOGO,META II,以及我個(gè)人基于它們的衍生思想對(duì)Smalltalk的設(shè)計(jì)產(chǎn)生了很大的影響?!?sup>[3]2003年,艾倫因面向?qū)ο缶幊陶Z(yǔ)言的原創(chuàng)思想,對(duì)Smalltalk的研究工作,以及對(duì)個(gè)人計(jì)算機(jī)發(fā)展的基礎(chǔ)性貢獻(xiàn)而獲得圖靈獎(jiǎng)。SrnaUtalk被稱為“面向?qū)ο缶幊陶Z(yǔ)言之母”,幾乎所有后來(lái)的面向?qū)ο缶幊陶Z(yǔ)言都是源于SrrlaUtalk的設(shè)計(jì)思想,比如我們熟知的Java、Objective-C、PHP、Perl,當(dāng)然也包括今天在編程教育領(lǐng)域備受關(guān)注的Python。
“小海龜”在今天
隨著計(jì)算機(jī)行業(yè)的蓬勃發(fā)展,“小海龜”已經(jīng)不僅存在于LOGO語(yǔ)言和海龜機(jī)器人?!靶『}敗钡睦L圖方式已經(jīng)成為一種設(shè)計(jì)思想,“海龜圖形學(xué)”在多種編程語(yǔ)言和科學(xué)研究中都得以應(yīng)用。
Lindenmayer歪統(tǒng),簡(jiǎn)稱L系統(tǒng),是由荷蘭烏特勒支大學(xué)的生物學(xué)和植物學(xué)家,匈牙利裔的林登麥伊爾于1968年提出的有關(guān)生長(zhǎng)發(fā)展中的細(xì)胞交互作用的數(shù)學(xué)模型,尤其被廣泛應(yīng)用于植物生長(zhǎng)過(guò)程的研究。基于L系統(tǒng)的分形圖形的繪制就使用了小海龜繪圖法,通過(guò)更高級(jí)的編程語(yǔ)言,能夠繪制出三維的植物生長(zhǎng)模擬圖。
一些編程語(yǔ)言專門創(chuàng)建了“小海龜”的類庫(kù),便于初學(xué)者上手學(xué)習(xí),如SmaU Basic、Go語(yǔ)言、Java、Python等。伴隨著人工智能產(chǎn)業(yè)和編程教育的發(fā)展,Python近幾年受到了更廣泛的關(guān)注。Python是吉多·范·羅蘇姆于1991年開發(fā)的一種解釋型、高級(jí)編程、通用型編程語(yǔ)言。與其他語(yǔ)言相比,Python的語(yǔ)法更加優(yōu)雅、簡(jiǎn)單,可讀性更高,因此全球各國(guó)都把Python視為更適合教育使用的編程語(yǔ)言。
Scratch是編程教育啟蒙階段的優(yōu)秀工具,Python則承擔(dān)了幫助學(xué)生學(xué)習(xí)編碼效率更高、功能更復(fù)雜的代碼式編程的重任。同樣為了實(shí)現(xiàn)“低門檻”,很多高中和大學(xué)都選擇使用Python的Turtle類庫(kù)作為起始學(xué)習(xí)內(nèi)容。即使要使用抽象的代碼和語(yǔ)法編碼,Python Turtle儂然為學(xué)生提供了直觀的共鳴式學(xué)習(xí)環(huán)境。學(xué)生可以很容易地預(yù)測(cè)和理解程序的結(jié)果,并且主動(dòng)探究新代碼的應(yīng)用和復(fù)雜邏輯的實(shí)現(xiàn)。
2019年,由中國(guó)科協(xié)青少年科技中心和中國(guó)青少年科技輔導(dǎo)員協(xié)會(huì)主辦的全國(guó)青少年創(chuàng)意編程與智能設(shè)計(jì)大賽中新增了Python比賽項(xiàng)目。大賽的Python賽項(xiàng)面向初高中學(xué)生,賽項(xiàng)分為科學(xué)探索、實(shí)用工具、數(shù)字藝術(shù)和互動(dòng)游戲4個(gè)類別招收作品。具體要求可以訪問(wèn)大賽官網(wǎng)(http://aisc.xiaoxiaotong.org)。
回顧“小海龜”40多年的發(fā)展,我們不禁感嘆,這只“小海龜”幾乎影響了今天所有編程教育產(chǎn)品與教育機(jī)器人產(chǎn)品,甚至間接影響了個(gè)人計(jì)算機(jī)和編程語(yǔ)言的基礎(chǔ)性設(shè)計(jì)。派普特與皮亞杰2位教育巨匠塑造了“小海龜”的靈魂,后來(lái)的人們與“小海龜”相遇,不斷激發(fā)出新的火花。在人工智能備受重視的時(shí)代背景下,我相信小海龜背后的思想寶庫(kù)還有源源不斷的驚喜等待我們挖掘。
參考文獻(xiàn)
[1]西摩爾派普特著,梁棟譯,因計(jì)算機(jī)而強(qiáng)大,新星出版社,2019:26-27
[2]Mitchel Resnick, John Maloney, Andrés Monroy-Hern á ndez, et al. Scratch: Programming For All. Communications of the ACM, 2009,52(11):60-67
[3] Alan C. Kay. The early history of Smalltalk. ACM SIGPLAN Notices, 1993, 28(3): 69-95