旁观者眼中的《S4A和互动媒体技术》

时间:2022-09-20 05:51:53

旁观者眼中的《S4A和互动媒体技术》

H.Abelson & G.J.Sussman

《计算机程序结构与解释》第二版

MIT Press, 1996

(翻译:俞中坚 温州大学)

编程比通常所想更为复杂。从事计算机编程的人学习计算机语言,一般要遵循语言规范并阅读手册,但这些并非他们所做的全部。首先,程序员要以一种可靠的方式思考。他或她要认识到我们的逻辑与解决问题的思考过程,并将之简化为优雅的算法。程序员必须清晰地思考,并比普通人要更加深入地理解问题。他或她还必须将这些想法以非常精确与详尽的方式与简单沉默的机器沟通,绝不能含糊。这种思维方式被卡内基梅隆大学的周以真教授(Jeannette Wing)称为“计算思维(Computational Thinking)”。“计算思维是种思考过程,它涉及将问题与解答公式化,并表达为能由一台信息处理终端有效执行的格式。”

让我说得更清楚一些吧。当我谈及编程,我指的是模拟世界一部分的全部过程——即使是一个在计算机里的虚拟世界。我认为没必要区分设计与实现。这里的原型设计是关键。因此,编程明显不是一种简单的文书工作。编程带来了一种新的理解世界的方式,虽然有人说这还是传统的科学方法,并不是新的。即便如此,计算编程显然传播了这种理解世界的方式,这很不错,或者说是当前非常需要的。

不管出于何种原因,麻省理工和施乐帕克研究中心的老黑客们在八十年代就清楚地认识到编程不仅仅是给计算机下指令。二十年后,Abelson和Sussman引入了程序化认识论的概念。

我们对这门学科的方法是基于一种信念:计算机科学不是一门科学。它的重要意义几乎和计算机本身无关。计算机革命是关于思考方式以及如何表达思考内容的革命。这场变革的实质是被称为“程序化认识论”概念的浮现。这是从规则角度对知识结构的研究,与经典数学学科更倾向于从陈述角度出发完全不同。数学提供了精确处理“是什么”的概念框架,而计算提供的是精确处理“怎么做”的概念框架。

Alan Kay

Stuart Feldman采访

Queue 2(5), pp.20-30, 2005

(翻译:俞中坚 温州大学)

“一场思考方式与表达思考方式的革命”是其要点。如果我们在最开始,也就是在学校教育阶段,在开始教育学生如何思考的时候,就传播思考方式的革命,并坚持这种理念十分重要。这样将非常有效。十九世纪六十年代时,作为构成学习方法的一部分,Seymour Papert认为教小孩编程是很好的想法。他为了引导孩子更轻松地“如何处理”问题与挑战的任务,发明了现在十分有名的编程语言——LOGO。同时,在十九世纪七十年代施乐帕克研究中心小组也主动用Smalltalk编程语言去教高年级儿童编程。

因此,关于思考方式的传播与普遍性改变应该是意料之中的事情,因为从这个想法诞生起已经有三十年了。而且,现在很多发达国家的人拥有多台电脑并经常使用。但事实并非如此。让我们引一段Alan Kay的话:“人们确实可以争辩,就像我有时候做的那样:商业个人电脑和操作系统的成功实际上导致很多方面严重倒退。因为商业计算传播的速度远比教育无知的人们的速度要快得多,你可以把它想象为从‘六十和七十年代’以来,有一个低通过滤器安装在一些优秀的思想里(阻止了优秀思想的传播)。”

Jordi Delgado (软件系,西班牙加泰罗尼亚理工大学)

(翻译:俞中坚 温州大学)

所以,关于思考方式革命的承诺并未兑现。

无论如何,我们中的一些人仍然相信致力于教小孩计算机编程,并将其作为传播计算思维的一部分是很重要的。这是为什么我们(Joan Güell, José García和我自己)从2008年2月开始在Cornellà-Barcelona的一个实验室教学Scratch。(我们也教Botsinc和Squeak, 这些都是基于Smalltalk的)。在相同的项目里,Marco A.Rodriguez教学Arduino和Processing。我们也和Catalonia本地政府紧密合作将Scratch和Squeak囊括在小学和中学使用的Linux发行版本里。同时,我们也在公共教育系统里推广使用Scratch和Squeak。

2009年秋天,我们开始认识到结合真实的项目和真实的硬件,能大大推动小孩子学习编程的兴趣。我们认为最佳方法是将最好的开源硬件平台Arduino与最好的学习、实践计算思维的工具Scratch结合在一起。这个方向的第一步是由Marina Conde在她的信息技术学位项目中,用Smalltalk Pharo控制Arduino板做出来的。在Victor Casado(现在是S4A 维护者)的帮助下,我们研究Scratch的核心,实现Squeak 2.8。经过几个月的辛苦工作我们让第一版本的S4A(Scratch for Arduino)工作起来。最后实现支持多平台应用(Windows, Linux and Mac),我们得到Jorge Gómez的帮助,解决了一些令人恼火的Linux驱动问题。

这就是S4A的故事。幸运的是S4A大受欢迎。现在S4A拥有一些活跃的国际性社区,我们深深地感谢他们的工作。大量有趣好玩的项目与系统,使用S4A来搭建。正如谢作如老师这本《S4A和互动媒体技术》所写的,这些项目给人以很大的创新与想象余地。

还记得2009年圣诞假期开始时,我和一些参加Citilab举办的Scratch课程班学习的小孩的对话。一个非常喜欢Scratch的秘鲁女孩,不超过10岁,我们问到她长大了想做什么。

“一个计算机科学家吗?”我们说。

“不,我想做一名医生。” 她回答。

随后,我们稍带夸张地打量她,“那么关于Scratch和编程的所有内容,对你来说是浪费时间的吗?”

“不。”她说,“我很感谢从这里所学的,能让我成为一名与众不同的医生。”

她已彻底领悟。

上一篇:当新技术已经触手可及 下一篇:温控报警系统模型实验