小编说 Scratch是麻省理工学院媒体实验室“终身幼儿园”研究组推出的一种电脑程序语言,现已进入世界各地的教室和家庭,全球有超过1500万名孩子在学习和使用。本文由Scratch的设计及开发团队撰写,他们表示Scratch语言简单,人人都可使用,开发Scratch的目的不是创建“程序员大军”,而是帮助使用者通过电脑更好地表达自己。 文|Scratch设计团队 编译|孙鲁妮 编辑|闻琛
当国际计算机协会(Association for Computing Machinery)主办的《ACM通讯》主编Moshe Y. Vardi,邀请我们为Scratch写一篇文章时,他是这么回忆自己最早是怎么接触到Scratch的。 而这正是我们在六年前开始设计Scratch时所希望的。 我们希望构建一种方式,让那些从来没有想象过自己会成为程序员的人喜欢上编程。这种方式不但要适合任何年龄段、任何背景、不同兴趣的人,而且能让他们用编程这种方式分享自己的故事、游戏、动画,还能模拟运行出来。 自从2007年5月公开发行后,Scratch就在社交网络上引起了热议。人们会互相分享、讨论、重新合成各自的程序。Scratch也被称为“交互媒介式的YouTube”(the YouTube of interactive media)。 每天,来自世界各地的Scratcher们会上传至少1500个程序到我们的网站,这些程序的代码都可以被免费共享和重新合成,包括游戏、时事通讯、科技模拟、虚拟旅行、生日贺卡、虚拟舞蹈竞赛、互动型辅导等,这些都是利用Scratch完成的。 网站的主要使用人群囊括8岁到16岁的青少年(其中12岁的人数最多),也有相当一部分成年人参与其中。 Scratcher们不仅会在网站上制作和分享他们的程序,更会同时学习到数学和计算机的相关概念,还会提高创造性思维、系统性的逻辑分析和团队合作能力,而这些恰恰也是21世纪最关键的技能。 我们最初设计Scratch的目标也并不是为了让每个人都成为专业的程序员,而是让我们的下一代可以创造性地、有逻辑地并且舒服地用编程这种方式表达自己的想法。 首先用一个小女孩的例子来介绍一下到底Scratch可以做什么。小女孩当时13岁,网名叫做Bala Bethany。 Bala Bethany喜欢画动漫形象,所以当她开始接触Scratch时,很自然地用这些动漫形象编了一个故事程序。 之后她就慢慢开始在Scratch的网站上分享她的程序,她收到了越来越多的积极的评论,很多人给她留言“太棒了”、“我喜欢你的程序!!!!!”。 也会有人问她是怎么做出那些视觉效果的,比如“你是怎么让那个小精灵看起来是透明的?”等等。 在受到这些鼓励之后,Bala Bethany就开始定期创作和更新她的程序,就像更新连续剧的剧集一样。 她会不时地在程序中添加一些新角色。慢慢地,她开始思考:为什么不让整个Scratch社区都参与其中呢? 之后,她就创建并且上传了一个新的程序,宣布要展开一个“竞赛”。这个竞赛需要其他Scratcher们为她的动漫程序设计一个妹妹的形象。她还列出了一些对这个新角色的要求,比如“头发必须是红色或者蓝色的”,“有猫耳或者独角,或者两个都有”。 这个程序得到了上百条留言,其中一条说想参加这个比赛,但是不知道怎么画出一个动漫形象。为此,Bala Bethany专门制作了另外一个Scratch程序,一步步教授并示范如何用13个步骤绘制一个动漫形象并为其上色。 在一年时间里,Bala Bethany制作并分享了超过200个Scratch程序,涵盖了各种程序,包括故事、竞赛、教学等等。她的编程及绘图水平不断提高,制作的程序也在Scratch社区引起很大反响,得到超过12000条评论。 现在的新一代年轻人被称为“数码土著”(digital natives),这是因为他们可以熟练使用各种数码产品。 确实,许多年轻人可以非常自如地发信息、玩电子游戏和浏览网页,但是这能够真正说明他们拥有熟练应用新科技的能力吗?即使他们似乎每时每刻都在使用社交媒体,但只有很少的人有能力自己创作游戏、动画或者模拟程序。这就像他们只会“读”不会“写”。 我们都看得出来熟练使用数码产品不仅仅是有能力聊天、浏览和互动,也包括设计、创作和发明新的东西,就像Bala Bethany在她的程序中所做的那样。为了做到这些,你是需要学一些编程的。 拥有编程的能力会带来很多好处。比如它会很大程度地拓展你基于计算机的创造力、表达力,以及学习能力。 此外,编程的实质是对计算机思维的支撑,它可以帮助你学到解决问题的能力和设计技巧,比如模块化和迭代设计都涉及到了非编程领域的知识。 编程其实是一种展现你解决问题过程的方式,它需要你对自己的想法进行不断推倒反证,它其实是在思考“思考”本身。 当上个世纪七八十年代后期个人电脑最初被引入时,我们有很高的热情教会所有的孩子有关编程的知识。很多学校会教学生用Logo语言和Basic语言进行编程。 西蒙派珀特(麻省理工学院终身教授,教育信息化大师)形容Logo是教育和学习的一种“再思考”的方式。尽管有些学生和老师对这种编程的学习方式充满兴趣,但还是有很多学校很快转换了他们教电脑的方法。 从那以后,计算机变得越来越普及,但是几乎没有孩子学习编程。如今,大部分的人都会认为计算机编程是一门晦涩的、高技术性的、只适合很小一部分人的学科。 是什么原因让孩子学习编程的热情不再?为什么像Logo这样的行业先锋也没有继续遵守他们的承诺?这有很多因素:
派珀特认为计算机语言需要“降低地板”(容易开始)和“提高天花板”(广阔的探索空间)。此外,计算机语言还需要“扩大墙壁”(支持多种类型的程序,让拥有不同兴趣和学习方式的人都对编程感兴趣)。但想要同时满足这三个需求并不容易。 近几年,为了让青少年喜欢上编程,出现了很多新的尝试。一些会使用专业的编程语言,像Flash或者ActionScript;还有一些像Alice和Squeak Etoys这种专门为青少年而设计的新的编程语言。 这些都影响并启发了我们对Scratch的设计。与此同时,我们并不满足于这些现有的选择。我们希望在启发孩子们计算机思维的同时,把“地板”降得更低、“墙壁”建得更宽。 为了达到这些目标,我们设立了三个设计Scratch的核心原则,分别是:
在下文中,我们会讨论这三个原则都是如何指导我们设计Scratch的。 l更易修改我们麻省理工媒体实验室“终身幼儿园研究组”和乐高公司有多年的合作经验,包括帮助设计和完善乐高机器人(Lego Mindstorm)。 孩子们搭建乐高积木的过程一直都在启发我们。他们得到一桶乐高积木后,就会马上开始自己摆弄,不停地组装和拆卸,在这个过程中他们会不断产生新的想法来搭建新的东西。通过这种有结构、有故事性的方式,他们会自主地玩、建造、计划和设计。 我们希望孩子们用Sractch编程时会有类似的感受。Scratch的命令是建立在众多图形化的“编程积木”上的,孩子们只需要通过拆拼这些“积木”来创造新的程序。 在乐高积木里,一些连接装置会提示某些部件是如何组装到一起的。孩子们就可以简单地通过摆弄这些积木,不停地拆拆拼拼,尝试不同的拼接方法和组装顺序来看究竟会做出一件什么东西来。 这当中不会出现任何令人费解的程序命令和传统编程语言。这会让编程变得简单好玩,达到我们最初设定的“降低地板”的目标。 “Scratch”名字的由来其实也强调了更容易修改这个特征,“scratch”本来就是一种嘻哈音乐技术,即通过旋转黑胶唱片来以一种创造性的方式剪辑混合音乐。在Scratch编程中,就是在用类似的方法,混合图形、动画、照片、音乐和声音。 同时,Scratch被设计为一种高度互动的模式。你只要通过点击积木它就会立即开始执行代码。你甚至可以在它正在运行的同时修正代码,这样就可以很容易地实验新的想法。想要创建并行线程?只需简单地创建多个积木。我们的目标是让并行执行像顺序执行一样简单直观。 Scratch界面想要做到的是要像我们平时使用的桌面一样简单。它允许你有些凌乱,你也大可以留下暂时不用的积木在一边,等待以后使用。大多数编程语言(和计算机科学课程)只允许自上而下的规划而非自下而上的修补。 在Scratch中,我们希望这种修改的过程也变得同样简单。
l 更有意义我们都知道当一份工作对个人有意义时,人们的学习效率最好,也最享受。因此,在开发Scratch时,我们高度重视两个设计原则:
这些原则影响了我们的许多设计决策。例如,我们决定专注于2D图像,而不是3D,因为人们更容易创建、导入和个性化2D作品。虽然有些人可能会觉得2D风格的图像有些过时,但Scratch程序的多样化和个性化可以弥补这种视觉上的不足。 作为Scratch的开发者,我们不断对出现在Scratch网站上各种各样的程序感到惊讶。就像我们预期的一样,出现了很多游戏,从被广泛喜爱的游戏的重新设计到完全原创的游戏。 一些Scratch程序记录了个人生活经历(比如在佛罗里达的家庭旅行);一些记录了想象中的经历(例如去见其他Scratcher们的旅行);一些Scratch程序可以帮助建立人际关系(如生日贺卡和感谢信);还有一些程序旨在提高对社会问题的认识(如全球变暖和动物虐待)。 声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除 |