尽管计算机在现代社会无处不在,但如今大部分学生从未学习过计算机科学或计算机编程。而那些学习过计算机课程的学生通常只是学习低层次的技能,而非深入探讨计算机的概念或理论。几十年前,有几个国家曾经在全国范围内推广过计算机教育。比如在20世纪80年代,英国政府就曾实施过一个广受欢迎且颇为成功的项目计划,将数千台BBC Micro引进课堂。
但是最雄心勃勃的计算机教学项目你可能从未听说过,这个项目产生在一个你绝对想不到的地方——苏联。
此时你可能会心一笑,脑海中浮现出那个曾经发明了《俄罗斯方块》,却在冷战中败北的苏维埃社会主义共和国联盟。苏联的败北有一个隐藏因素,即苏联未能充分认识到数字时代的强大威力。确实,苏联政府从未建立全国范围的计算机网络,也没有为公民提供经济适用的个人电脑。但如果你认同这种技术失误导致政治失败的说法,那么你就错过了全球计算机化进程中一段重要且吸引人的故事,在这个故事中,苏联青少年对一本以探险和自我发现为主题的科幻小说产生了浓厚的兴趣,并由此开始自学或互相学习,即利用他们身边唯一可利用的工具进行编程:这个工具就是可编程计算器。
1985年9月,整个苏联的所有九年级学生开始学习一门新课程——信息学和计算技术基础。这门必修课程旨在普及编程技能。为了在整个苏维埃共和国约6万多所中学中开展这门课程,需要有15种语言版本的教科书,培训10万名教师以及100万台电脑。
每一项条件都不容易实现。国家不为学校提供设备;教科书的印制及发放分布不均;很多老师甚至从未接受过必要的培训。
其间,这一计划在国际范围内引发 了计算机专家对“计算机技能”的不同定义的争论。美国计算机科学家和企业家爱德华•弗雷德金(Edward Fredkin)认为,美国的经验应该告诉苏联:
我们现在已经认识到,计算机技能并非是指编程能力,也不是弄懂计算机的工作原理,弄清楚什么是比特、字节、触发器、逻辑门等等。我们现在认识到,真正的计算机技能指的是会使用高级应用程序,比如文字处理和电子表格系统。
作为回应,计算机科学家安德列•埃尔肖夫(Andrei Ershov)讥讽道,写代码和打字并不冲突。埃尔肖夫曾经是西伯利亚科学城阿卡杰姆戈罗多克(Akademgorodok)计算机中心的负责人,也曾是计算机技能普及计划的主要发起人。与弗雷德金的观点截然相反,埃尔肖夫认为计算机技能的普及是为了培养人的智力习性,他称之为“算法思维”。
埃尔肖夫的这一观点部分来源于自己师从苏联控制论的杰出代表阿里克西•里雅普诺夫(Aleksei Liapunov)的学习经历。从里雅普诺夫那里,埃尔肖夫形成了控制论思维,并将技术和社会联系起来。在他看来,算法是人与机器的一种沟通形式。
埃尔肖夫也从西方实践中汲取灵感。1958年9月,埃尔肖夫随一支苏联计算机专家考察团奔赴美国。在美国,埃尔肖夫与后来成为图灵奖首位获得者的艾伦•佩里斯(Alan Perlis)进行了交流,这次交流让埃尔肖夫颇有收获。佩里斯向埃尔肖夫介绍了自己着力开发的通用算法语言Algol。开发这一语言的目的是让软件具备可移植性和国际化。埃尔肖夫采纳了Algol计划,并在20世纪60年代初着手为这门语言开发强大的编译器。Algol社群的普世主义愿景表明了埃尔肖夫的计算机教育观点。
埃尔肖夫的计算机教育计划还深受其于20世纪70年代初访问麻省理工学院经历的影响。当时他在麻省理工学院见到了西摩尔•派普特(Seymour Papert),并了解了Logo计算机教学实验。Logo是专门为孩子设计的编程语言。
但是,随着埃尔肖夫对西方计算机科学发展的不断了解,他认为苏联应当走出一条自己的信息化道路,这条道路应当蕴含社会主义价值,减少对黑匣子似的商品计算机的依赖,苏联的信息化应当专注于培养公民的思维能力和思维习惯。他认为,学生们通过学习编程就能培养抽象推理能力和以目标为导向的解决问题思维。20世纪70年代末,埃尔肖夫和他在阿卡杰姆戈罗多克计算机中心的团队已经制定了教育计划,在西伯利亚地区学生的帮助下,在地方学校制作课程表和开展试验。
埃尔肖夫当然明白,要想在全国范围内推广这个计划,还需要更多支持。他开始向苏联政府、计算机专家、教育家、家长、孩子以及国际社会锲而不舍地宣传他关于“编程是第二技能”的思想。1985年,米哈伊尔•戈尔巴乔夫上台后采取了一系列改革措施,阿卡杰姆戈罗多克的信息学课程计划最终被正式采纳。
苏联计划经济的低效导致大多数学习这门课程的九年级学生没有电脑来检验自己学习的技能。改革派认为这算不上问题。教学材料鼓励学生在纸上进行编程并进行想象练习。比如,让学生演绎出一个叫Dezhurik的机器人(名字来源于俄罗斯单词 dezhurnyi,意为负责维护教室的人),为这个机器人进行“关窗户”或“擦黑板”的编程。当遥远的苏联城市哈巴罗夫斯克的学生抱怨没有电脑时,埃尔肖夫鼓励他们要有主动学习精神,并强调青年人仍有机会“赶上时代发展的列车”。
埃尔肖夫对学生们没有电脑这一点不以为然。他说,无论学生能否在电脑上实际运行程序,最重要的都是学习如何设计算法并将算法编写成程序。埃尔肖夫在致学生的一封信中总结道:“即使老师出于同情给了你一个满意的分数,电脑也不会容忍你的任何失误。你的错误,就像一块穿不透的金属,一直到学年结束都会存在。如果没有算法,没有程序,没有设计,即使坐在计算机旁也无济于事。”
━━━━
虽然苏联人民无法用上计算机,但其中数以百万计的苏联人却能够使用可编程科学计算器这样的计算设备。这些手持设备能够存储指令和数字用于后续执行。惠普公司在1974年推出HP-65之后,可编程计算器就在西方流行起来,并且直到现在还拥有粉丝和用户。
自20世纪70年代中期开始,苏联的微电子产业生产了数百万台电子计算器,主要是供全世界最庞大的工程师群体使用。在西方,苏联的计算器用户促进了计算器设备程序和应用的发展。与西方不同,在苏联只有极少数家庭有个人电脑。因此,计算器扮演了很多角色,包括作为计算机教育的临时计算平台和促进游戏文化的繁荣。
当时一份名为《青年技术》(Tekhnika Molodezhi)的科学杂志就融合了这两个角色,这份杂志由苏联共产主义青年团出版。《青年技术》主要面向青少年,订阅用户数达到150万。1985年1月,《青年技术》开始接手埃尔肖夫计算机技能计划,留出专门版面发表有关利用当时最流行的计算器Elektronika B3-34进行编程的内容。这款计算器当时的售价是85卢布。然而读者们对这一专栏却反应平平。
之后,自1985年8月起,《青年技术》开始连载太空旅行小说《康提基号:通往地球之路》(Kon-Tiki: A Path to the Earth)。在这个史诗般的探险故事中,一位工程师和一位飞行员历尽千辛万苦驾驶登月飞行器从月球返回到地球。小说的故事背景来自美国的一款流行电脑游戏——《登月者》(Lunar Lander),在这款游戏中,玩家控制推进器并计算轨道,指引登陆器安全降落到月球。这款游戏的苏联版本叫做Lunalet。小说在每一回中都会让读者拿起计算器,将自己变成飞行员,将手中的计算器变成太空飞船。
该系列连载一炮走红,《青年技术》也成为可编程计算器年轻用户群常登陆的最杰出的论坛之一。在这部未来主义的叙事小说中,每一个章节都结合了宇宙航行物理法则以及利用B3-34进行编程的技巧。而它吸引读者的原因是跌宕起伏的故事情节以及小说聚焦于克服人类自身和技术的局限性。
小说参考了1947年托尔•海尔达尔(Thor Heyerdahl)乘木筏跨越太平洋的经历,康提基是小说中主角在地球之旅中为小船所起的名字。小说的故事情节远远超越了原游戏中宇宙飞船降落的最初目标。“通往地球之路”演变成了一次自我发现之旅。在某个故事片段中,飞行员穆恩•华克(Moon Hawk)反思自己容易犯错误的问题:“我不是计算机,我是人类,我会犯错是正常的。因此我无法选择一条不允许出错的路。当然,如果我可以选择,我更愿意在允许我失误的同时,也给我改正失误的机会。”
即使在小说的结尾,故事的主人公还是出现了失误:他们返回地球后,只能落在海洋里,被迫发出求救信号。他们在等待救援的时候,飞行员坦白道:“毕竟我只是一名宇航员,不是航海的船长。”
小说中故事叙述与编程的巧妙结合还要归功于《青年技术》科幻栏目的主编米哈伊尔•普霍夫(Mikhail Pukhov)。普霍夫毕业于苏联最著名的工程院校——莫斯科物理技术学院,他的父亲是一位杰出的数学家。普霍夫放弃了自己在中央无线电工程科学研究所的职业前程,转而投入到写作和编辑的工作之中。
在开始写《康提基号》的故事前,普霍夫深入研究了计算器的功能以及它对误操作的响应。东方和西方的计算器用户都喜欢迅速探索未注明的功能,从而让设备完成其设计者也未曾想到过的任务。这种探索被称为“错误学”,源于执行计算器未注明功能时出现在屏幕上的“错误”提示。普霍夫在小说中将“错误学”发扬光大,他诗意地将非正常的符号组合称之为“钓鱼”(fishing)。
同时读者也会向《青年技术》杂志反馈自己的探索成果。有位读者就曾洋洋得意地介绍自己的发现:“我告诉你们,我发现了一种任意组合数字和符号‘Е,’‘Г,’‘С,’‘L,’‘-,’的简便方法,而不是从B3-34计算器的零开始。”对于很多读者来说,能让自己的名字和程序出现在《青年技术》上就是最高的荣耀。
就这样,《青年技术》及其科幻栏目主编帮助培养了一代黑客和计算机爱好者。如果你觉得一本国家认可的杂志鼓励黑客行为很奇怪,那么请思考一下美国黑客文化的起源——就当作一次技术调查实践吧。史提芬•莱西(Steven Lecy)在其1984年出版的《黑客:计算机革命的英雄》一书中将麻省理工学院黑客的起源追溯到铁路爱好者俱乐部。苏联的情况与此类似,国家利益与草根的积极热情相结合,共同孕育了无线电爱好者的实践探索文化。对于像普霍夫这样的无线电工程师,以及在课堂上利用小说进行教学的教育者来说,推翻计算器的设计说明也是一种发展科技能力的方式。
小说的读者和玩家在不知不觉中就完成了埃尔肖夫所设想的培养编程能力目标。在读者的反馈信件中,很多人都要求提供更多游戏以及可使用其他计算器改写程序的流程图。某位读者写信说:“希望看到程序是一种有意识的行为模式,而不是没有思想的符号列表。希望在杂志的帮助下,不仅可以运行杂志所提供的程序,还能创造自己的新程序。”从这个意义来说,小说及计算器用户群体推广传播了埃尔肖夫计算机技能的思想。
但是埃尔肖夫的课程是否也取得了成功呢?当然,任何教育倡议的实施结果都很难去衡量。苏联统计学家很可能通过某种方式对实施效果进行了监测,但是统计数据很难反映发生在教室内外的真实状况。
我曾在几个俄罗斯计算器用户论坛上发贴,希望能够收到《康提基号》读者的消息。我收到的反馈中都流露出了怀旧之情。很多人写道,对小说的痴迷刺激他们去购买计算器。一位论坛成员描述了如何在得到自己的计算设备前学习编程原理:“整整半年的时间里,我就像吸尘器一样吸取有关编程和计算器的任何有用信息。”而对另一部分人来说,计算器只能算一个敲门砖,后来,他们赚到了足够的钱去买计算机部件(改革时期的街头市场可以买到),然后组装成计算机。其间,《青年技术》的复印版继续通过二手书店流转,新读者可在二手书店发现这本很早以前就出版的小说。如今,你可以毫不费力地在网上找到这本杂志的电子版,以及计算器模拟器。
这种读书时期的经历对人们职业生活所产生的影响不十分清楚。除非你曾亲身经历,否则你无法完全理解苏联解体后经济危机所带来的巨大混乱。在俄罗斯,那段时间被称为“混乱的20世纪90年代”。《康提基号》的读者成长为这个新兴国家的公民。他们中的大部分都无法选择自己的职业生涯。对于很多人来说,编码成为了一份工作、一件工具和一种途径。在那段时期的俄罗斯,“通用性”编程技能不再与创造一个计算机技能的社会相联系。编程促进了移民,有能力的程序员选择离开俄罗斯到国外发展事业。
━━━━
苏联为普及计算机技能所做出的努力是对西方国家关于信息时代的假设的不同诠释。与西方国家不同,苏联的数字革命不是极客或天才的革命,而是在国家支持下,学者、作家、教育家与政府官员、工商业者以及程序员共同为了一个目标而努力。它并非依靠个人电脑,而是用计算器、纸笔以及学生自己的想象力。
尽管数字技术狂热者埃尔肖夫和普霍夫干劲十足,但这项计划的理想目标没有达到普遍性。苏联的数字革命效果最好的地方大致可以猜得到,比如省会城市的贵族学校或者石油天然气富商赞助的偏远学校。《青年技术》突破了某些地域和经济制约,为那些缺乏启蒙教师或个人电脑的学生提供了动力、入口以及论坛。但是这份杂志却没有填补性别的鸿沟。不同于苏联程序员群体以及无性别差异的信息学课堂,给《青年技术》杂志写信反馈探索成果的读者群体中,男性占主导。
因此,埃尔肖夫等人努力奋斗的数字社会主义社会并未完全实现。无论是逝世于1988年的埃尔肖夫,还是苏联,都未能长期推动这项计划。但是,我们不能草率地摒弃这个致力于培养所有学生算法思维的想法。苏联没有预想到信息时代的诸多挑战。但是记住计算机时代的过去,可以帮助我们解决当前的一些难题。
全部0条评论
快来发表一下你的评论吧 !