第四章 程序中的程序以 Logo 语言为例

计算机随着商业机会主义浪潮进入了学校。就像人们预料的,这导致了教育工作者进行大量并且常常是浪费性的反复试验。自称无所不能的计算机工业总是乐于支持其产品的使用,并不关心其中的甘苦。教师只有小心翼翼和尽其所能去实现各种要求。某些教师也许能找到一些有益的用途,但没有包罗万象的教育哲学能指导他们即席发挥。

在混乱之中有一个明显例外。麻省理工学院的人工智能研究创立者之一西摩·佩珀特是少数寻求发展与计算机使用相容的教育哲学的计算机科学家之一。这种哲学深深扎根于瑞士心理学家吉恩·皮亚杰的复杂学习理论,佩珀特曾向皮亚杰学习若干年。皮氏心理学和人工智能结合的成果是 Logo 程序语言,佩琅特勉力精心使它成为一门课程。LOgO 不仅是一个聪明的软件或研究,它也是全新教育的一部分,是迄今为止对学校计算机作用思考的最系统的努力,至少他的同事马文·明斯基认为,Logo 使佩珀特跻身于“世界最伟大的教育学家”之列。

佩珀特从六十年代中期开始致力 Logo 语言及其应用。其间他创造了广泛运用于教育软件的“龟图”并撰写了一部名叫《思想风暴》的著作(1980)。他还暂时卷入了一次以教育探险开始,以计算机政治结束的活动。在八十年代初,法国政府受政治家和新闻记者吉恩-杰奎斯·塞文-施赖伯的提议建立了一所重要的计算机研究设施——巴黎世界信息与人力资源中心。塞文-施赖伯的特殊兴趣是帮助第三世界国家“跃入新的信息社会”。应他的邀请,佩珀特撰写了构成中心规划的主要论文。他与麻省理工学院的尼古拉斯·内格罗蓬特一起担任中心主任。佩珀特认为中心的理想是把 Logo 作为国际计算机教学运动的一部分。中心资金充足,但很快从学术目的转向以谋利为主, 向非洲的前法国殖民地推销法国的计算机设备,不到一年佩珀特就与内格罗蓬特一起离开了中心。他自称是“教育理想主义者”,对这种新型商业化的帝国主义没有兴趣。

在寻求赋予计算机教育意义的同时,佩珀特清楚地了解计算机在学校经常被滥用。他不是轻易乐观的人。但众多滥用计算机的事例并没有说服他放弃计算机可以剧烈改变教育世界和引发“思想上而不是技术革命”的信念。对于佩珀特,计算机可以是传授“任何知识的工具”。

Logo 作为一种灵巧和容易掌握的语言,旨在早期进入儿童生活,即从幼儿园时期开始。佩珀特一直在努力说明 LOgo 不仅限于儿童使用,它是一种全能的语言,能同样用于复杂的场合。但它的杰出特点是对年轻人有效, 能从这些人中找到主要用户和市场。Logo 很少制作通用软件。在用于教育方面时,LOgo 完全是互相交流式的,学生可以在显示屏上看到他们给出指令的直接结果。它通常从简单的几何图形开始,用键盘指令移动一个叫做乌龟的光标。(一开始,确实有一个机械乌龟与计算机连在一起,它在计算机运行时作为指示。大部分学校现在都使用没有这一玩艺儿的 Logo,但在显示屏上的小箭头仍被继续叫做乌龟。)学生选择的几何图形是用反复试验方法绘制的方形、圆形或五角形等的小程序构成。执行程序的语言很简单:to 这个词表示指令(如 to circle,to square)。学生自己给这些程序取名字,这些程序随之可以成为更大和更复杂的程序的子程序。

因为什算机即时响应每一条 LogO 指令,学生可以随着指令执行过程学习和纠正他们的指令。这种随时纠正的过程就是 Logo 教学方法核心。孩子们看见“差错”后,要重新检查程序并寻找解决矛盾的方法以“纠错”。佩珀特强调教育的重要性在于培养排除故障的“有力想法”,取代那种要求正确答案的专横做法,这种做法经常使计算机不堪重负。他说:

“程序的问题不在于它是否正确,而是它是否灵活。如果将这种看待知识产品的方法归纳为较大规模文化的思考和学习方法,我们也许就会较少地受到‘犯错误’的恐惧的困扰。”

佩珀特认为这是计算机的最大优点:与客体一起思维。因为 LOgo 鼓励学生尝试并目睹其结果,然后进行纠正和调整,称为“发现-学习”的方法。

在这个自我纠正的编程过程中,学生被迫“进行思维”。他们正在成为“心理学家和认识论学者”,佩珀特说:“在我与皮亚杰工作时,儿童作为认识论学者的鲜明意象抓住了我的想像力⋯⋯我离开了他,但他把儿童作为自己知识结构的积极建造者的观点给了我深刻印象。”此后佩珀特的目的就是使用计算机作为帮助儿童自觉建造这些结构的方法。皮亚杰把儿童智力发展划分为“具象”和“形式”两个阶段,后者(如数学思维)比较成熟,所以来的较迟。按照佩珀特的观点,动手使用计算机可以提前引导儿童发育的阶段。

佩珀特的方案有一个问题,例如,学生下会全面“思维”又怎能让他们理解艺术家而不是几何学家对空间问题的思考呢?相反,他们似乎主要表现出某种类型的恩维,即(佩珀特所说的)“程序性思维”。首先,纠正差错就包括按照一步步的逻辑顺序找到错误的步骤。这种特定意义的纠正错误法适用于其他方式的思维吗?人们能想像一种纠正童话故事或捉迷藏的方法吗?人们怎么能纠正一幅恐龙画中的错误呢?

佩珀特乐于声称因为 Logo 在每一步骤都是明显互动的,所以它与别的机器练习不同,是让儿童给机器编程序,而不是让机器给儿童编程序。他说到儿童“在教机器”。但并不清楚在这方面 Lo-go 与其他程序语言有什么不同。确实,学生写程序,但他们必须按照机器的词汇编写。他们必须局限于机器的语言和逻辑,要不然机器会告诉他们,“我不知道如何⋯⋯”。学生可以任意地把方的图形叫做盒子,他们可以教机器把这个盒子以这种方式或那种方式旋转多少度。但他们不能命令计算机把一个霍比特装入这个盒子,或让盒子长出翅膀飞向地球。LogO 使儿童们控制实验用的“微型世界”, 在其中进行他们的编程,但这个微型世界并不是人们想像力的全部领域,充其量它只是一个二维计算机屏幕,只能显示程序的各种能力。LOgo 仅拥有若干颜色,若干种图形(飞机、卡车、火箭、球、盒子等等)。它非常适合于几何游戏,但不适合于越过这个范围的想像。当我读到佩珀特的文章时, 我觉得被一种景象缠绕着,一个囚徒被批准拥有在被称做“微型世界”的监狱里散步的全部自由:“留在围墙里,遵守纪律,你想干什么就干什么。”

佩珀特相信儿童通过 LOgo“能获得对一种最现代和最有能力的技术的支配感”。和许多计算机热衷者一样,他非常关心能力,“有能力”这个词突出地遍布在《思想风暴》之中。在一本最高级的 Logo 手册(丹尼尔·瓦特的《与 Logo 一起学习》)中,引自佩珀特的短语“有能力的思想”出现在每一章中,像一面小旗不时打断陈述。但就像被使用的所有计算机练习一样,掌握就意味着顺应机器做事的方法。能力与依赖之间同样含糊不清的关

系和其他计算机课程一样也存在于 Logo 之中,所谓控制的错觉同样也徘徊在佩珀特的微型世界之中。

大多数 Logo 课程始于乌龟几何,很快以学习到的一些短小而有用的基本程序结束。这些也许足以让孩子真实体验编制程序的过程。但佩珀特对Logo 在教室中的用途有更雄心勃勃的观点。他相信它能应用于课程始终。而正是在这里,Logo 这个所有计算机教育程序中最完整精巧的软件显示出热衷者们所忽视的缺点。

第四章 程序中的程序以 Logo 语言为例 - 图1例如,让我们想想 Logo 课程是如何试图去概括艺术的。儿童得知他们可以画“任何东西”。所以,练习是用手任意涂画开始的。但如果这种画是仔细地用想像力完成的,大部分教师则会认为它实质上是一种艺术课程。但这只是运用 Logo 的初级阶段。接下来孩子便学习简化图画,把它分解成若干个组合几何图形。例如,一辆卡车变成了一个大盒子和一个小盒子,下面有两个作为轮子的圆。构成派艺术家皮埃特·蒙特里安也许会赞成这种几何抽象练习,但这也仅仅是初级的。Logo 推崇的实际上是下一个阶段,写下一个会指导计算机在显示屏上画出这些盒子和圆并将它们放在正确位置上的程序。这需要技巧和大量反复试验。最后,当所有部分都程序化以后,全部组合可以用一条指令 To Truck(卡车)储存起来。当指令给出时,光标很快画出一辆卡车。如果一切正常,它看上去就像下面这个图形:

以下是一个画卡车的程序,附带它的全部子程序,每一个子程序解决一个单独的练习,然后合成一个总的程序:

TO TRUCK BIGBOX

SUBPROGRAM:REPEAT 4[FORwARD 60 RIGHT 90] END

MOVEOVER

SUBPROGRAM:RIGHT90 FORwARD60 LEFT90 END

SMALLBOX

SUBPROGRAM:REPEAT4[FORwARD30 RIGHT90] END

MOVEBAcK

SUBPROGRAM:LEFT90 FORwARD 60 RIGHT90 END

WHEELS SUBPROGRAM:RIGHT90 RcIRcLE5

FORwARD90 RCIRcLE5 BACK90 LEFT90

END

第四章 程序中的程序以 Logo 语言为例 - 图2第四章 程序中的程序以 Logo 语言为例 - 图3同样,Logo 画的花是一系列用程序按三百六十度重复的圆弧,Logo 画的人是一个棍状的图像。

毫无疑问,学习为这些设计编制程序的儿童是按照要求练习思考方法。他们也许就此成为第一流的计算机程序专家。但他们井没有在学习艺术,相反,他们被蓄意剥夺了运用艺术媒介(蜡笔、铅笔、画刷)的技巧和自由地创作一幅图画的乐趣。即使他们的兴趣能够通过练习而持续,也不是由于对作业或结果的审美快感造成的,它完全无关紧要。它只能是程序纪制训练。某些学生也许善于此道。

然而,LogO 能教授艺术吗?除非艺术被定义为 LogO 所能做的事。这当然是远远不够的。Logo 不允许艺术的想像驰骋,愿意画有别于那些盒子和圆的东西,如一匹马,一个太空怪物,或一个小丑的孩子就会遇到麻烦。Logo 又不允许手持铅笔在纸上龙飞凤舞地画画。艺术和 Logo 所教授的其他东西一样,简化成手指敲击键盘,大脑思考程序。以相反的意义看,这倒像是计算机科学的典型课程,尤其像为 Logo 奠基的人工智能研究。儿童在学习一条极度简化原则:如果计算机不能达到主人的水平,那么就把主人降低到计算机的水平。很可能在信息时代之中,儿童们是置身于这样一个社会,在那里这项原则在所有被计算机控制的领域中成为一条法则,Logo 就可能被视为“真实生活”的一种有用准备。

Logo 在教室中流行是因为有类似的方法把计算机能够做的东西强加于儿童感兴趣的事物之上。假设儿童想跳舞。计算机怎样做呢?在我看到的一个 Logo 教学录像中,鼓励学生把跳舞变成舞蹈设计练习,但并不是用他们的头脑和身体。相反,每隔几个步骤,他们跑向计算机去敲击键盘,好像这样做会使跳舞真实且严肃。这与身体的自由运动、滚动、旋转和表现没有任何关系。在 Lo-gO 教室中,舞蹈变成计算机可以处理的东西:几何图形、角度、计数⋯⋯向这个方向多少步,平转身,向那个方向多少步。这种练习缺乏身体的柔韧,音乐的质量和情调。但它确实得到一个程序,儿童并为此而得到称赞。这个课程就是一大成功。

或者以诗歌为例。学生敏指导制作一个各种词类的词汇表,冠词、名词、动词,等等。每一个词表都受相应程序随机的控制,这个程序把选择出的词汇按某种秩序串在一起。这种选词方法是 LISP 人工智能程序语言的特点之一,Logo 与它有密切的关系。

首先,随机选词很容易出现荒诞的结果,如“计算机游泳”,“冰箱飞翔”。所以学生得尝试把“相配”的词放在一起。这个指示实在是太轻易了。如果信以为真就会使人无所适从。哪些词总是“相配”的?课程计划建议把有关运动的词、有关动物的词、有关自然的词聚为一组。比如,有关自然的词是指“蛇”、“漂流物”、“隐藏”、“睡觉”、“爬行”、“低语”。

这时不鼓励教师对计算机程序在这方面的局限性作出告诫。但不这样, 语言千变万化的性质就会彼掩盖,因为 Logo 现在所要求的在语言学上是荒

谬的。按照娱乐起源学说,语言根本不能归入这些范畴。“蝙蝠”和“飞” 属于哪一组,是运动,动物、还是自然?正是严格规定的上下文关系决定词汇的意义这一问题使机器翻译几乎不太可能。在这个问题背后有一个有趣的推测,语言产生于意识中诗的天赋并继续保持其起源的痕迹,程序专家很难应付它的流动性和无拘无束。这种可能性与崭露头角的年轻诗人相契合。如果 Logo 课程所要求的这种聚类方法真是语言的一部分(而不是暂时的裸堂虚构),暗喻和直喻的方法就不可能。什么时候“老虎”能和“火”相配呢? 也许只有在“老虎!老虎!火光网烁⋯⋯”的句子中。

不管如何,《与 Logo 一起学习》手册提出只要按照它的指示,学生最终会在计算机上获得某种符合条理的结果:“喧嚣的旋转的雾蒙蒙的旋转的海洋沉睡着”。而有时其结果像是迷人的俳句:

每一个清澈的池塘

一只鸟俯看着挂霜的冷杉荒野蓝色的月亮

这就导致了一种推测,“只要词汇搭配合理,它似乎就像诗一样。如果我们仔细地选择我们的句型,可能它就会成为一首‘诗’”。

但是,在某个时候,好奇的孩子会怀疑怎么能指望一个电子盒子会与诗呢?尽管它有时会造出一些有条理的句子,诗歌不是要有内容吗?它们不是要阐述来自生活的意义吗?当孩子作诗时,他们自己的意识活动似乎与诗歌程序并无共同之处。他们要“说”某件事,在诉诸文字之前先要有完整的意象。他们并不只是按照预定的模式编排句子的各个部分。

LOgO 课程预见到这个问题。这也是课程真正要教授的东西。在《与 Logo 一起学习》中,丹尼尔·瓦特是这样解释的:

“当我看到计算机能够作诗时,我停下来思考了一会儿⋯⋯你我都知道计算机仅仅是按用程序运行。程序告诉它按照一种设定的句式选择一定种类的词汇。它从几个长长的不同类型的词表中选择词汇:名词、动词、形容词等等⋯⋯可是当我自己写诗时,不也是按照同样的方法吗?我也是遵循一种程序,唯一的区别是我脑中有更多可供选择的句型和更大的词表⋯⋯这与计算机所做又有什么不同呢?”

在这里儿童会提出一个关于诗的情感和意义的重要性的问题,是否一台计算机仅仅从原始的语言材料中就能作出一首真正的诗来。“它能吗?”Logo 教师问道,“我完全相信一个十分聪明的程序设计者会设计出一个计算机程序,它复杂到足以写出看上去绝对‘像人写的’诗歌,诗歌专家很难发现有什么不同。”

课程继续举出更多的诗歌膺品的例子,却根本不说明“仔细地选择我们的句型”是指什么——而这正是语言本身的秘密。相反,其言外之意是“诗歌程序”并不是什么困难之举,确实,它们就在眼前。

“某些拥有大型计算机的计算机科学家正在编写作诗歌、侦探小说和其他类型‘文学作品’的程序。将来你还能区分某些文字是计算机还是人写的吗?有朝一日你会有机会自己回答这个问题。”

这些话很轻巧,但在其背后存在着一个关于智力的理论,它直接产生于人工智能学说的核心。在这一理论中,儿童获知文学创作只不过是按照语言规则筛选词汇而已。Logo 课程不是仔细研究讲述诗人的能力和悟性,这是使儿童认识到情感的好办法,它急于讲授思维的信息处理模式。这就不可避

免地得出一个结论,人的头脑和计算机在功能上是等同的,而计算机——甚少是属于少数科学家的“大型计算机”在实际运作方面正在迅速赶上来。这样,通过与机器结盟并按它的要求去构想艺术和诗歌,人也能拥有它的一些能力。

尽管考察了人工智能的整个研究,也艰难确定是什么动机促成了程序中的程序。它是否是技术人员和逻辑学家的学科沙文主义的讨厌表现,以炫耀他们的方法在知识界的优越性呢?或者是一次对人的创造性的本质的错觉? 无论是哪种情形,儿童都被灌输一种既荒唐又虚假的艺术概念。他们正在冒着成为文化低能儿的风险学习计算机知识。

佩珀特本人一直都小心谨慎地使 Logo 和人工智能学说的联系尽量淡化。他辩护其课程是程序化思维的延长,但他强调学习“像计算机一样思维” 主要是让学生自己更概括地意识到人脑的工作方式。

“我发明了一些利用教育机会的方法掌握像计算机一样周密思维的艺术,例如,完全按照计算机程序一步步地、逐字逐句地、机械地进行⋯⋯通过精心学习模仿机械性思维,学习者能够分辨什么是机械思维,什么不是。这种练习能够使人更自信地选择适合问题的认知方式。”

他继续说道: “我已经清楚地论证了程序化思维是一种强有力的知识工具并建议把自

己比做一台计算机,以作为一种思维方法⋯⋯‘像计算机一样思维’的建议可以认为是像计算机一样思考一切。这也许是严格和狭义的。但建议可从多种含义上去领会,并不排斥其他,只是大大地增加了人的思维工具的库存⋯⋯ 真正的计算机教学不仅是知道如何使用计算机和计算方法,还要知道什么时候适合于这样做。”

这些话表面上很有道理。但问题是,Logo 要成为一种广泛的教育工具, 能够应用于一切领域。它只有把儿童学习的所有东西都与程序化思维联系在一起才能成功,虽然这种广泛性未必成立。况且,如果佩珀特的认识方式真的进入教室,也仅仅是因为有人在打它们的主意。程序化思维的出现引进了昂贵的设备,并一直被大肆吹嘘为灵丹妙药。教授计算机的教师同样要经过高价的培训。投资本身就保证计算机教学将得到更多的重视,远远超出了教育的因素。另外,在计算机周围还有一种急切的气氛,公众相信计算机与儿童必须掌握的就业技能有关。总之,这些因素注定会使全部课程偏重于计算机。

如果 LOgO 课程在这些条件之下流行,学校就会尽力帮助学生像计算机一样思考。相比之下,谁还会教学生用其他方法思维呢?比如,艺术这样的认识方式在何处立足呢?艺术课程本身的落后已是众所周知了。学校会有时间和金钱去平衡计算机的思维方式吗?那些相反的学术观点如何使自己为人所知呢?危险的是它们也将从机器中谋利,从计算机中得到金钱是更好的事情。艺术将成为 LOgo 艺术,毕竟它已经存在于佩珀特的程序库之中。如果此事成真,则要比不教艺术更糟。

这种危险对计算机热衷者来说似乎是别人的问题,与他们无关。他们认为自己的使命限于使学校向奢侈的教育设备打开大门。但具有讽刺意味的是他们正在把自己误认为数学家和逻辑学家。如佩珀特论证的,Logo 是用来教授程序化思维的。现在,经过严格训练的头脑可以这样思维已是毫无疑问了,这是一种用于一系列计划的方便技巧,只要这个计划被直观地视为一个

整体,然后变成有价值的行动。这项工作——把事物看做有意义的整体并断定是否有价值——是意识的最主要和最自然的功能。无论在时间和重要性方面,它们都排在规划程序之前:目的先于手段。人工智能专家在努力处理日常生活中的现象时已多少认识到这一点。他们已开始把这些现象看做是有意义的整体,它们似乎直观地把本身分成无数个辅助活动。这种事物结构与其说是数学的,不如说是音乐的:将各个部分和谐地组成表现主题的整体。受此启发,人工智能研究者试图开发一种程序语言,它在有目的的行为和较大的模式框架中允许子程序“按等级自我定位”。就像做饭或烤蛋糕这样的普通计划现在也认为十分复杂,要使用一个程序套一个程序,一个循环接一个循环的完整结构。但在指定的计划环境之外,这些程序毫无意义。在一个计划中按部就班地(程序化地)行动实在是低级的行为,并不是必须的。艺术与诗歌显然与制定方式和逻辑行动的顺序元关。没有一种需要身体协调的技巧可以通过这种方法掌握。这就是为什么没有人只靠阅读有关书籍、记忆有关规则就能学会骑自行车或弹钢琴的原因。如果让一位厨师、一位木匠或一位船长写出日常工作的所有程序步骤,恐怕他们一辈子都完成不了这项工作。

从这一点看,即使数学——Logo 强大的基础——也并不总是依靠程序化思维,至少在数学最高层次之中是这样,那里依靠的是乐趣和创造力。我所遇见的一些数学家(与计算机科学家不同)似乎很乐于承认他们的工作是因为好奇和灵感的驱使,是因为第六感、猜测、直觉,是因为令人惊讶的经验整体的突然形成。既然假设数学家所需的全部逻辑都在他们的头脑里,那么如何解释他们在解决问题过程中有时一筹莫展的事实呢?如何解释在若干星期、若干月甚至若干年毫无进展之后终于豁然开朗这一更有意思的现象呢? 我认识的一些数学家带着问题入睡,醒来时却找到了答案。这是怎么回事呢? 或许这种问题由心理学家而不是逻辑学家回答更好。

计算机思维模式也许会像歪曲艺术一样歪曲数学的基本性质。就像一位我熟悉的数学家所说的:“计算机界的人士似乎不知道较高等的数学是由一个叫毕达哥拉斯的神秘主义者创立的。它不是用来测量物体,它要表现的是上帝的影像。”想像诗人和艺术家对 Logo 在他们的领域中的应用会怎样评论并不困难,但又有多少数学家会同意数学就是编程序呢?

按照佩珀特的理解,程序化的思维是非常困难的,首先要巧妙地把学生引入门,然后要锲而不舍。LogO 教育工作者是否想过这种表面上过分的学术辩论也许是有其道理的?因为人并不是一贯自然地以这种方法解决问题, 尤其是年轻和不成熟的人。儿童更是主要靠感觉把握大致的精神活动。他们全神贯注地学习人性中具体的东西和成年人为他们制定的方法。把事物看成一个有意义的整体,在其中作出选择,这是向儿童传授知识的工作的第一步。仔细地和符合逻辑地制定程序对他们也许为时过早,因此往往无法集中注意力。这并不排斥他们中间有某些人会对编制几个几何问题程序的具体工作产生兴趣。他们由于本身特点可以被培养成乐于解题的人——就像猜谜式下棋一样。

计算机按照程序“思维”是因为这是它最佳的运行方式。因此,为它们

编程的人只能以这种方式思考。但这是一种特殊的技能,我们之所以认为它有价值是因为在我们生活中有一种需要它的机器。如果我们把机器放入教室,儿童还会学习对形成自然的思维习惯和能力至关重要的东西吗?或因为

给计算机编程序,他们就仅仅学习如何像计算机编程者那样思考吗?

尽管我对 Logo 持保留态度,但我不会反对把它当做一种教授基本编程技巧的工具。有一些善于编程并乐于发展他们的才能的儿童,他们应该得到这种机会,只要学校能承受开支并且不损害其他方面的质量。就 Logo 而言, 这些开支很可能是高昂的,因为它可能是所有计算机教学方法中最耗机时的。要使所有的学生获益就需要大量的机器。

但正是因为它来源于一种普遍的教育理论,Logo 应该作为一种警告, 计算机在教室中会造成危害。这种危害是显而易见的,这种事已经发生过一次,即计算机用来教授它根本不能教授的东西,而只能进行拙劣的模仿。许多计算机行业的人士不承认这种危害的存在。他们模仿信息处理的思维方式怂恿他们把计算机带入学校的全部课程。

当一个人面临这种可怕的压力时,除了依赖于教育哲学的一个根本原则之外还能怎么办呢?永不降格。任何使受教育的主体降低水平的方法、设备和教育哲学都应该加以质疑并审慎地使用。追求 LOgO 普遍流行的计算机教学课程会有使整个知识领域下降的危险。人们希望教师认识到它进入教室的危险性。在认识到这种危险之后,还希望教师能保持充分的职业权威去反对信息商人和计算机热衷者的蛊惑,并向年轻人传达和指出一些抵制的方法。