从儿童怎样学习出发
Logo语言的设计始于二十世纪六十年代美国马萨诸塞州剑桥的博尔特、贝拉内克与纽曼公司,通常简称BBN。团队希望让儿童通过编写、执行和修正程序探索数学,而不只是坐在终端前接受机器提问。编程在这里既是一种表达方法,也是一种让想法接受检验的活动。
1969年的项目报告把原始语言设计归于西摩·帕珀特、丹尼尔·鲍勃罗与华莱士·费尔齐格,说明辛西娅·所罗门参与语言发展与使用,理查德·格兰特等人继续扩充实现。所罗门等人在2020年的历史论文中回忆,1966年已展开设计讨论;他们借鉴Lisp的符号处理能力,尤其看重儿童能够操作词语和句子,而非从代数记号开始。
1967年的原型与学校试用
按所罗门的参与者回忆,鲍勃罗先在BBN的SDS-940分时计算机上用Lisp实现新语言,工作随后由同事接续。费尔齐格以与希腊语“词”有关的Logo为它命名。到1967年夏,能工作的系统已经在马萨诸塞州林肯的汉斯科姆学校接受儿童试用,帕珀特授课,团队在课前课后讨论和调整。
1967年因而标志着原型进入课堂的早期阶段。其后为1968至1969学年准备的版本转向DEC PDP-1系统,学校终端连接到BBN的分时计算机。设计、试教、修订语言和更换实现平台彼此交错,不能把这些活动压成一次面向大众销售的产品发布。程序需要能运行,语言也必须在儿童实际使用时暴露问题。
参考:[1]
用一个过程说明“打印”与“返回”
1969年报告以DOUBLE说明过程设计:把一个数与自身相加,就可得到两倍值。最初的过程只把答案打印在电传打字机上;输入4时虽然看见8,却不能把这个8继续交给外层过程计算。将过程中的PRINT改为OUTPUT,结果才成为可供其他过程使用的输出。
于是PRINT DOUBLE OF (DOUBLE OF 4)会打印16:内层先把4变成8,外层再把8变成16。例子区分了给人看的显示与供程序使用的值,也说明一个已定义过程可以成为下一步的构件。学习者若只检查纸上有没有答案,就会错过组合失败的原因;通过运行和修改,抽象的输入、输出与函数组合变得可以观察。
参考:[2]
试教也是课程与评价的实验
1968年九月,马萨诸塞州列克星敦的穆齐初级中学开设Logo实验课,十二名七年级学生参加。马乔里·布卢姆先授课,次年一月至六月由所罗门与帕珀特共同继续。1969年11月30日提交给美国国家科学基金会的正式报告,既收录课堂材料,也附有语言和系统说明,留下了可供他人检查的技术文本。
报告讨论标准化测试、学生分组变化和访问课堂的数学教育者意见,并承认样本很小。课程的存在、孩子完成了程序、某项测验有所变化,分别是不同层次的证据。把探索性课堂直接解释为任何学校采用Logo都能提高成绩,会超出这次研究能够回答的问题。
参考:[2]
海龟把指令变成可见的动作
1971年,帕珀特与所罗门在麻省理工学院人工智能实验室的《用计算机可以做的二十件事》中,把应用扩展到机械海龟、图形、音乐和其他可控制装置。文中海龟以导线连接控制设备,能移动、转向并接受传感器信号;中央画笔放下后,行动会留下轨迹。这是早期文字处理和课堂实验之后的进一步发展。
报告中的FORWARD 50让海龟沿当前朝向前进,LEFT 90改变朝向却不改变位置。理解这两个状态的差别,才能解释为什么同样的距离指令会画向不同地方。书中还区分地面海龟与显示器中的海龟:前者接触真实环境,后者可快速绘制和消去图形。两者都把几何关系变成可执行的行动,但并不是1967年原型的一份统一功能清单。
参考:[3]
后续版本与课堂中的重新解释
个人计算机出现后,Logo不再只依赖研究机构的分时设备。2020年历史论文记载,1981年的Apple II平台出现Terrapin Logo与Logo Computer Systems公司的Apple Logo等实现。后来的版本延续过程组合和交互试验,同时因机器资源、开发团队和目标用途形成差异。
安格洛斯·阿加利亚诺斯、理查德·诺斯与杰夫·惠蒂的独立研究,则根据访谈和课堂观察考察了Logo在英美学校的实际处境。开放项目可能要求教师与学生共同排错,却又面对固定课时、分科课程和考试压力。一些学校把它安排成独立计算机课,或缩减为照样画图。研究者强调,这种变化不能简单归咎于教师个人。
从原型走向普及,传播的不只是指令集,还包括对课堂如何组织的期待。Logo留下的历史问题因此很具体:谁决定学生制作什么,错误怎样被发现,完成一幅图之后是否继续解释程序。回答这些问题,需要同时理解语言实现、教学材料和学校使用环境。