首页 存档 技术 查看内容

不会编程语言,在未来可能相当于“会读不会写”

2018-3-30 13:00 |来自: 互联网 348 0

摘要: 小编说Scratch是麻省理工学院媒体实验室“终身幼儿园”研究组推出的一种电脑程序语言,现已进入世界各地的教室和家庭,全球有超过1500万名孩子在学习和使用。本文由Scratch的设计及开发团队撰写,他们表示Scratch语 ...



小编说

Scratch是麻省理工学院媒体实验室“终身幼儿园”研究组推出的一种电脑程序语言,现已进入世界各地的教室和家庭,全球有超过1500万名孩子在学习和使用。本文由Scratch的设计及开发团队撰写,他们表示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条评论。


1
为什么要学编程?

现在的新一代年轻人被称为“数码土著”(digital natives),这是因为他们可以熟练使用各种数码产品。

确实,许多年轻人可以非常自如地发信息、玩电子游戏和浏览网页,但是这能够真正说明他们拥有熟练应用新科技的能力吗?即使他们似乎每时每刻都在使用社交媒体,但只有很少的人有能力自己创作游戏、动画或者模拟程序。这就像他们只会“读”不会“写”

我们都看得出来熟练使用数码产品不仅仅是有能力聊天、浏览和互动,也包括设计、创作和发明新的东西,就像Bala Bethany在她的程序中所做的那样。为了做到这些,你是需要学一些编程的。

拥有编程的能力会带来很多好处。比如它会很大程度地拓展你基于计算机的创造力、表达力,以及学习能力。



此外,编程的实质是对计算机思维的支撑,它可以帮助你学到解决问题的能力和设计技巧,比如模块化和迭代设计都涉及到了非编程领域的知识。


编程其实是一种展现你解决问题过程的方式,它需要你对自己的想法进行不断推倒反证,它其实是在思考“思考”本身。


2
编程的进化论

当上个世纪七八十年代后期个人电脑最初被引入时,我们有很高的热情教会所有的孩子有关编程的知识。很多学校会教学生用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时,我们高度重视两个设计原则:

  • 多样化。支持许多不同类型的程序,包括故事、游戏、动画、模拟等,所以不同的人都能够创造他们热衷的程序;

  • 个性化。通过导入照片、音乐、录音和图形的方式让人们轻松地个性化他们的Scratch程序


这些原则影响了我们的许多设计决策。例如,我们决定专注于2D图像,而不是3D,因为人们更容易创建、导入和个性化2D作品。虽然有些人可能会觉得2D风格的图像有些过时,但Scratch程序的多样化和个性化可以弥补这种视觉上的不足。

作为Scratch的开发者,我们不断对出现在Scratch网站上各种各样的程序感到惊讶。就像我们预期的一样,出现了很多游戏,从被广泛喜爱的游戏的重新设计到完全原创的游戏。

一些Scratch程序记录了个人生活经历(比如在佛罗里达的家庭旅行);一些记录了想象中的经历(例如去见其他Scratcher们的旅行);一些Scratch程序可以帮助建立人际关系(如生日贺卡和感谢信);还有一些程序旨在提高对社会问题的认识(如全球变暖和动物虐待)。

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除


路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部