编程这么火,有必要让孩子学钢琴吗吗

有没有简单易学的编程语言?最好是现在比较火,实用一点的?
我的图书馆
有没有简单易学的编程语言?最好是现在比较火,实用一点的?
随着计算机技术的发展,如今的编程语言其实都能算是简单易学了。不考虑算法和数据结构等知识,单从学会编程语言本身来讲,只需要一点点英语基础,能认识几十个单词,花一点时间,通常不超过三个月,就完全可以学会一门新的编程语言了。不管你是从来没有接触过计算机编程,还是想换一种从未接触的新的编程语言,通常都会有一个疑问:哪种编程语言适合我?也有人会好奇,到底哪种语言是世界上最好的编程语言,如果存在的话,学会这种语言不就行了。在过去,通常意义上的编程指的都是桌面程序的开发,比如Windows操作系统中的记事本和计算器,都算是桌面应用。在那个时代,通常只要学好一门语言就可以通吃大部分应用场合了。曾经有一种说法,学好C++,走遍天下都不怕,可见一斑。但在今天看来,计算机编程已经渗透到人类生活的各个领域,计算机设备也不仅仅指的是PC机,在Web领域、移动端、传统桌面、游戏和嵌入式设备中都大量运行着程序代码,来满足人们日益增长的计算需求。对于没有很多经验的初学都来讲,面对如此多的开发环境,选择一种语言是相当困难的。一、Web开发所谓Web开发,指的是编写一个网站,或者一个开发一个基于浏览器的应用软件。Web开发在编程领域是独一无二的,与传统的开发方式截然不同。Web开发可以说是入门最简单的编程领域,同时随着互联网的普及,Web开发是当前最热门的行业之一,所以我们认为对于初学者来说,接触Web开发是一个不错的选择。HTML与CSS:虽然严格来讲,它们并不是真正意义上的编程语言,但两者都是创建网页所必需的,HTML描述了页面的数据结构,而CSS则决定了页面的排版样式及视觉效果。HTML与CSS都遵循W3C(万维网联盟)所制定的标准,并且简单易懂,很容易学会。Javascript:传统意义上的Javascript是指增加浏览器逻辑功能和实现页面动态变化的唯一途径。同时,它又是学习某些编程框架如JQuery的基础。如今,Javascript可以同时在浏览器端和服务器端进行开发,甚至利用某些工具,还能应用于桌面领域。Javascript是现在最火热的编程语言,不论是否从事Web开发,都应该尽可能的掌握这门语言。Python:Python语言通常应用于服务器端逻辑,也就是说,在浏览器端,还是需要通过HTML, CSS和Javascript来构建页面。但在服务器端,Python则是一门神奇的语言,简单易学,功能强大。越来越多的程序员加入到Phthon开发的行列中,这让其迅速成为了当前最热门的语言之一。PHP: 有一种说法,PHP是世界上最好的编程语言。这种说法是否靠谱姑且不论,但PHP的确是一门效率很高的语言。由于这门语言在Web开发领域属于不是那么时髦的语言,所以有许多历史遗留问题,显得有些混乱。不过仍然有许多地方在使用PHP语言,比如著名的开源博客平台WordPress,要知道全世界27%的网站是通过WordPress搭建的。二、移动开发移动开发是目前软件编程领域的大热门,并且在相当长的时间里,它将一直是整个行业最前沿的阵地。整个移动开发领域保持高速发展,技术日新月异,没有任何放缓的迹象。人们越来越离不开手机,离不开手机应用,移动开发领域竞争激烈,可选择的编程语言也不多。神奇的是,每天都有各种神奇的应用被开发出来,可见这一市场的繁荣。Java: Java语言是开发安卓应用的主要编程语言,同时Java也被誉为世界上最伟大的语言之一,移动开发只是Java语言无数应用场合中的一种而已。虽然说你可以使用其它语言来编写安卓应用,但使用Java来开发,通常会拥有更高的性能和灵活性,遇到问题时也更容易在开发社区找到解决方案。Swift: iOS 系统的应用此前一直是通过Objective C语言来开发的,但现在苹果公司更建议你采用其新开发的Swift语言。相比较之下,Swift语言更容易学习和使用,很适合iOS开发新手,通常用Swift语言开发要比Objective C语言开发更高效、稳定。Javascript: 可以看到,开发安卓应用和开发iOS应用采用了完全不同的技术,这给开发人员带来了极大的困扰,为了能编写出同时运行在两个平台的应用,程序员可能要准备两个截然不同的开发环境。于是就有一些框架应运而生了,它们允许开发者用Javascript开编写应用,并帮你把代码转换为两个不同的应用安装包。还有一些框架则利用内嵌浏览器的技术,通过Web页面的方式来开发移动应用。这些技术使得用Javascript来编写移动端软件成为一种可能。三、桌面开发虽然桌面开发领域不再那么热门,但并不意味着它已经过时了。相反的,随着计算机技术越来越深入我们的生活,桌面应用的开发需求仍然十分巨大。曾经,开发桌面程序是一件非常复杂的事情,不过今非昔比,现在有了更多强大的工具,进入桌面开发领域已经没有那么高的门槛了。Java: 在很久很久以前,Java应用程序中的图形用户界面(GUI)都是通过Swing开发包来实现的,不过现在一般都采用JavaFX框架,它提供了一个更丰富、更时尚、更现代的方式来构建应用程序设计。由于Java程序运行在虚拟机中,所以拥有更高的兼容性和可移植性,可以在多种平台上运行。C#: C#语言(C Sharp)是一种基于微软公司推出的 .NET 框架的编程语言,与Java有许多相似之处。用C#语言开发应用程序,通常会用到 Visual Studio,Visual Studio被誉为最好的集成开发工具,广受C#开发者的好评。你可以很方便的通过C#语言,并使用WPF框架来创建Windows桌面应用。曾经C#只能用于Windows平台的开发,但现在,也可以通过Mono和Xamarin等第三方工具来实现跨平台开发。Swift: 除了 iOS 应用,Swift语言还可以用来开发Mac系统的桌面应用。如果你习惯于在苹果生态系统下工作和学习,那么Swift语言就是最好的选择。四、游戏开发游戏开发过去一直是非常困难的事情,需要掌握大量的知识和工具,但现在,游戏编程变得越来越简单。随着大量免费(开源)游戏引擎的出现,你几乎可以选择任何主流语言,并可以用它来创建游戏。但是有些语言显然是更优秀的,如果你是新手,我们推荐你选择这些语言。C#: 许多时髦的游戏引擎都是采用C#语言开发的,通常这些引擎支持2D和3D游戏开发,并且可以将构建导出到许多平台,包括Windows、Mac、Linux、Android、iOS和HTML5等等。采用C#的游戏引擎通常都比较容易学习,对开发者更友好。Java: 程序员可以使用诸如LibGDX框架这样的开源引擎来快速创建游戏,该框架可以导出到任何桌面平台,和安卓、iOS等移动端。LibGDX是一个简单明了的框架,有助于快速生成产品。即使不谈游戏引擎,特别是在安卓平台,Java语言都是首选的游戏开发工具。Haxe: Haxe是一个全新的、现代的语言,你可以用它来取代其他的编程语言。通过游HaxeFlixel或Luxe这样的戏引擎,开发跨平台的2D游戏的速度要比其他语言快得多。可惜的是,目前为止还没有一款针对Haxe语言的3D引擎面市。JavaScript: Javascript已经取代Flash,成为开发Web游戏的最佳和最快的方法。通过类似Phaser这样免费开源的HTML5游戏框架,以及像 nw.js 这样的工具,快速开发并包装出一款Web或者桌面游戏。五、数据处理和自动化脚本有时候我们学习编程语言并不是为了开发一款应用软件,也许只是为了统计和分析一些数据,或者用程序来实现一个自动化脚本,代替人工来完成一些枯燥乏味的工作。这种情况下,下面两种语言或许是不错的选择:R语言: R语言是一种主要用于数据挖掘、数据计算和数据分析的编程语言。如果你曾经使用过MATLAB,那么可以把R语言看作是一个自由和开放源码的替代方案。虽然MATLAB更容易使用,功能也更强大,但它也很贵(售价高达上万元)。R语言唯一的缺点是入门比较难,如果你不介意它的学习曲线,那么选择R语言能为给带来许多好处。Python: Python语言除了在Web开发领域外,还经常在数据计算中使用,因为它是一种直观而非冗长的语言,学习和使用都很容易。你可以用它做各种事情,包括数据抓取、分析以及编写自动化脚本。而类似NumPy(数据计算)和Pada(数据分析)这样的第三方工具则能让你事半功倍。总之,可以看到,世界上没有哪种语言是最好的,只有最适合自己的语言。
喜欢该文的人也喜欢长沙童程童美:少儿编程为什么这么火?
据长沙童程童美的小编所知,少儿编程好像一夜之间成了一个比较火热的概念,媒体上和朋友圈经常能够看到“编程将会被引入高考”“孩子再不开始学就会输在起跑线上”“未来职业需要”之类的报道。那么少儿编程为什么这么火?这背后的原因是什么?
通过编程的方式让计算机去构建孩子感兴趣的事情,并在这个过程中不经意地学到知识是很完美的一种方式,尤其是在使用了Scratch等编程软件后。Scratch是专门针对8岁以上小朋友的编程软件,适合在编程入门阶段学。可视化的程序编写降低了学难度,同时增加了学的趣味性。
其实少儿编程其实并不是一个新鲜的事物,它是构造主义学理论的一种体现。随着技术的发展,这种体现形式会不断的发生变化,比如从Logo发展到了Scratch,以后也许还会发生变化。但是它作为一种让孩子更好学的工具的本质不会发生变化。
此外,学少儿编程对孩子有很多好处,现在很多中国的家长也意识到了。
好处1:人脑敏感期培养,天赋得以释放
人类的大脑发育成熟要远远早于人类身体的各个器官,人类的潜在能力有一个敏感期,人类的各种天赋都是在这个敏感期内形成的,并释放出来的,人类逻辑思维能力形成的关键期是在7岁左右。逻辑思维能力越早培养越好,儿童编程就是培养孩子思维能力的一个比较好的手段。
好处2:起早规划孩子的未来职业
世界各个国家把儿童编程作为基础教育的重要组成部分,说明编程人才在一个国家的科技、信息、互联网、经济发展的重要性。教育倡导学编程从娃娃抓起,让代码和数据成为青少年儿童的另一种语言。
好处3:锻炼孩子的必备能力,培养理性与感性的科学素养&
完成一个程序就是在完成一个项目或者任务时,孩子的逻辑思维能力、解决问题的能力、综合运用知识的能力、管理项目的能力等等被一个个的激活,被开发、被建立起来。每个孩子的审美力、想象力、创作欲充分挖掘,并得到充分的锻炼和提升。
好处4:课程注重知识与生活的联系,培养孩子的动手能力&
目前的教育不再只是注重课本知识,而是更注重学过程,注重知识与生活的联系。
现在给孩子报名试学还不晚,还可以进行7天的免费试学哟!少儿编程火热兴起,人人都可以学编程
“数字流畅能力”应当是指设计,创造和重新改进,而不是仅仅浏览信息,聊天和与软件交互。
作者:MitcheL ResnicK, John maLoneY, anDRés monRoYheRnánDez,
nataLie RusK, eVeLYn eastmonD,KaRen BRennan, amon miLLneR, eRic
RosenBaum,JaY siLVeR, BRian siLVeRman, anD Yasmin Kafai
翻译:咸蒙
Scratch 人人都可以编程
人人都可以编程
《通信》杂志的主编Moshe Y.
Vardi邀请我们团队发表文章的时候会议了他第一次了解Scratch的场景:“我的一个同事(计算机科学讲师)”,他说,“告诉我他是如何努力让他10岁的女儿学习编程的,唯一能够吸引他女儿的就是Scartch”。
六年前我们开始开发Scratch的时候,我们就在期待发生上面的事情。我们想让每个人,无论多大,无论什么学科背景和兴趣点的人都可以轻易的编写出自己的交互故事,游戏,动画和模拟程序,跟其他人分享自己的观点。
从2007年上线以来,Scratch网站变成了一个人们可以分享,讨论以及在创作其他人作品的知名网络社区。Scratch已经被称作是“互动媒体的YouTube(国外Youku)网站了”。全世界的Scratch用户上传超过1500个可以自由获取源代码以便于分享和在创作的作品到Scratch网站。网站的项目类型及其广泛,包含了视频游戏,互动信件,科学模拟,虚拟旅行,生日贺卡,动画舞蹈比赛(类似于劲舞团之类的东西)以及交互教程,这些作品都是用Scratch开发的。
网站的核心用户集中在8-16岁(12岁的小孩最多,相当于国内的六年级或者初一的样子),当然也有相当一部分成人用户。Scratch在编写和分享互动项目的过程中,学会了重要的数学和计算机概念,也学会了如何创造性的思考,系统的推理以及协同工作,而这些是21世纪必备的机能。其实,我们的首要目标并不是让人们为成为一名专业的程序员做准备,而是培养能够熟练的用编程来表达自己的有创造力的,能够系统推理的新一代思考者。
在这篇文章里,我们讨论了指导我们进行Scratch开发的原则以及我们把编程变得对每个人都伸手可及有吸引力的具体策略。但是在这之前,我们必须先介绍人们是怎样使用Scratch的,我们描述了在Scratch社区名字叫做BalaBethany的13岁小女孩开发的一系列项目。
BalaBethany非常喜画动画角色。所以当她使用Scratch开发项目的时候自然而言的就编制她画的那些角色的动画故事。然后她开始在Scratch网站上分享自己的项目,Scratch社区里的人给了她积极正面的反馈,在她的项目下面发表了热情洋溢的评论(比如“太精彩了!”以及“我的天啊,我炒鸡喜欢你的作品!!!!”),同时请教她是如何实现这些特效的(比如“如何让一个角色看起来是透明的”)。收到鼓励的BalaBethany开始定期在Scratch社区创作并分享更新Scratch项目,就像是连续播出的电视剧。
她定期往连载的动画里加入新的角色,然后就有人问你为什么让整个社区的人都参与到动画制作的过程中来呢?于是她上传了一个新的Scratch项目并宣布了一项“海选”,让社区里的其他人给她动画里的一个人物角色设计一个“妹妹”的角色(如图一)。项目里对于新角色提出了一系列的要求,比如“头发必须是红色或者蓝色,请自选”以及“性格温顺也认死理,或者是两者的结合”
图1,BalaBethany动画作品、竞赛和教程截图
这个项目大概有100多条评论。其中一条是一个想参加海选但是她不知道如何绘制动画角色,因此BalaBethany又设计了一个Scratch项目,是一个分步教程,来演示如何通过13个步骤来绘制动画角色并上色。
在一年的时间里BalaBethany创作并分享了超过200个Scratch项目,涵盖了不同的项目类型(故事,竞赛海选,教程以及其他)。她的编程和艺术技能取得了明显的进步,她的得到了社区的广泛认可,获得了超过12000条评论。
为什么要编程
人们已经习惯于用“数字原住民”来描述纳西而看起来能够流畅使用数码技术的年轻人。确实,很多年轻人都能够轻松的发短信,玩儿网络游戏,浏览网站。但是这些行为真的能够让他们拥有流畅的数字能力吗?虽然他们每天与数字媒体打交道,但是能够开发自己的游戏、动画和科学模拟软件的人真的是凤毛麟角。打个比方,他们只有用新技术“读”的能力,却缺乏用新技术“写”的能力。
在我们看来,数字流畅力不仅要求具备聊天,浏览以及与技术交互的能力,还要求具备用新媒体设计,创造和发明的能力,就想BalaBethany在她的项目中所做的一样。
要做到用新的媒体创作,你就得懂点儿编程知识。编程能力有许多重要的好处。例如,编程极大的扩展了你能创造的范围(以及你表达自己的方式)。也扩展了你的学习范围。特别是编程支持“计算思维”,帮助你学习重要的可以迁移到非编程领域的问题解决能力以及设计策略(比如建模和迭代设计)。因为编程跟你在解决问题过程中体现出来的创造力有关,编程给我们提供了反思我们思维过程的机会,甚至是反思思维本身。
上世纪七八十年代发明个人电脑的时候,人们开始热衷于教所有的小孩子学习编程。成百上千所学校教孩子们上百万学生学习如何用Logo或者Basic语言编程。Seymour
Papert在他1980年出版的书籍《Mindstorms》里把Logo看做是反思教与学途径的里程碑。尽管有许多孩子和老师被这种可能性所转变,但是大部分的学校很快转向电脑的其他用途。那时候计算机在孩子们的生活中日渐普及,但是很少有人学习编程。直到今天,人们都把编程看做是应用范围狭窄的小部分热衷的技术活动。
到底是什么让人们忘记了向孩子们推广编程的初心?为什么Logo和其他西东到现在都消失匿迹,无影无踪了呢?这是由于以下因素导致的:
早期的编程语言实在是太难用了,以至于很多小孩跟本掌握不了编程的语法
人们在通常用一些跟年轻人的兴趣经验没有任何关联的学习活动(比如生成一堆素数或者画简单的线条);并且
人们学习编程的时候如果出错了,基本上很难找到可以用的指导说明,或者当想深入探索的时候压根没有什么可以借鉴的资料。
Papert认为编程应道有一个“低门槛”(容易学)和“高天花板”(随着不断学习能够创建越来越复杂的项目)。而且,编程语言需要具备“宽领域”(支持创建多种不同类型的项目,这样具有不同兴趣和学习方式的人都可以参与进来)。满足低门槛、高天花板、宽领域这三个条件的向来是很困难的。
最近,人们一直在进行教青少年学习编程的各种尝试。有人用专业的编程语言比如Flash/A也有人用转为针对青少年设计的新的语言(比如Alice和Squeak
Etoys)。这给我们从事Scratch相关工作带来了很大的启发。但是我们对已有的这些做法都不满意。特别是,我们认为在支持计算思维发展的前提下,进一步降低编程的门槛以及让领域的便捷更加宽阔是非常非常重要的。
为了实现这个目标哦,我们为Scratch确定了三个核心的设计原则:,我们要让它比其他语言更具备反复摆弄尝试(Thinkerable)的特点,更有意义并具备更强的社会性,我们来说说这些原则是如何指导我们设计Scratch的。
更具备可玩儿性(tinkerable)
我们在麻省理工大学媒体实验的终身幼儿园项目组已经与Lego公司合作多年,帮助乐高开发Lego头脑风暴和其他机器人套件。我们一直痴迷于孩子们玩弄和搭建Lego的方式,并且不断从中获取灵感。给孩子们一盒Lego积木,他们立刻尝试摆弄,把一些积木查起来,形成新的结构并给他们带来新的点子。在他们玩弄搭建结构和故事的过程中,不断浮现新的计划和目标。
我们想让在Scratch里编程跟玩儿Lego积木的感觉差不多。Scratch语法基于一系列孩子们可以拼插彼此的图形化“代码块”。就想玩儿Lego积木,带麦块上的连接头提供了如何组合代码块的建议。孩子们可以从摆弄这些代码快开始学习,把代码块用不同的顺序和组合方式拼接到一起观察有什么效果。不像传统编程语言那样有着难以理解的语法和讨厌的标点符号(Python少很多)。
只有当符合语法的时候Scratch代码块才能够顺利的组合到一起,代码块的形状暗示如何使用代码块。控制结构(比如for循环和repeat循环)是C形状,建议人们把代码块放到控制结构的内部。返回结果的代码块根据返回值的不同设计成不同的形状:数值类型是椭圆,布尔值是六边形。条件判断(比如if和repeat-until)有一个六边形的空格,提示需要填入填入一个布尔值。
Scrath名字本身就体现了摆弄的理念,来源于hip-hop打碟师的摆弄碟片的技巧,不断的用手把音乐唱片来回摆弄,通过创意的方式把不同的音乐混合到一起的摆弄技巧。用Scratch编程看起来跟这个差不多,混合不同的图形,动画,照片,音乐和声音。
Scratch被设计极具交互性,单击一堆代码块就能立刻执行这些代码。你甚至可以在这堆代码运行的时候修改代码,因此很容易通过增量和迭代的办法尝试新的想法。你是不是很想开发并行程序?只要创作不同的代码堆就好了。我们的目的就是让并行执行像顺序执行程序一样直观便于理解。
Scratch开发团队有意让人们使用真实的桌子一样使用脚本区域(图3)。我们可以把多余的脚本放到一边以备后用。这意味着即使你的代码乱点、试验性的也没关系。大多数编程语言(和计算机科学课程)提供了自顶向下的设计和自下而上的尝试。而Scratch我们想让尝试写程序的用户像计划者一样舒服的编程。
图3 Scratch 用户界面
我们在开发Scratch的时候遵循了迭代和增量改进的开发风格。我们选择支持快速建立原型和迭代设计的Squeak语言作为Scratch的实现语言。在2007年Scratch公开发布之前,我们不断地进行小范围的真实环境下的现场测试,根据其他人的反馈和建议不断的改进Scratch的设计。
我们知道人们从事对个体有意义的项目的时候学习效果最好,获得的乐趣也最多。因此在开发Scratch的时候我们把以下两个设计规则放在优先地位:多样性通过支持创作不同类型的项目(故事,游戏,动画,模拟),兴趣各异的人们都能做一些他们自己感兴趣项目;以及个性化让人们可以轻易的通过导入照片和音乐、录音,绘画等方式来创建个性化的Scratch作品。
这两个优先条件影响了我们很多设计决策。例如,我们专注于2d而不是3d,因为对人们来说创作二维艺术作品容易的多。尽管很多人可能觉得2d类型的Scratch作品有些过时,但是Scratch作品展现出了3D创作环境缺乏的视觉多样性和个性化。
一位引导两个孩子学习Scratch计算机科学家的博客里很好的体现了个性化的价值“我一开始不理解一个面向孩子的编程语言干嘛要这么以媒体为中心,可是当我仔细观察孩子们使用Scratch的时候就就有点明白了。我发现Scratch最棒的地方在于通过让孩子们可以轻易的添加个性化的素材和积极参与开发过程实现个性化的开发体验。他们不仅可以通过抽象的编程来用小猫或者小盒子做一些漫无目的的事情,他们还可以在Scratch中添加自己的照片或者自己的录音,这可以让他们获得很长时间的乐趣并且驱动他们不断的学习。”
Scratch网站上多种多样的作品也不断的给我们带来惊喜。在我们意料之中的,有许多游戏——从一些经典游戏(比如俄罗斯方块)的仿制版到完全原创的游戏。但是也有许多其他类型的作品看(图4)。一些Scratch记录了日常生活经历(比如一次去佛罗里达的家庭旅行);其他记录了自己愿望中的场景(比如跟其他Scratch用户见面)。也有些作品(比如生日贺卡和感谢信)是为了培养感情。还有的作品体现了对社会问题的关注(比如全球变暖和虐待动物问题);2008年总统大选的时候,出现了大量以奥巴马和约翰为主题的作品之后引发了大量社区制作“总统的Scratch”系列作品。
图4 Scratch作品截图
一些Scratch项目来源于学校教学活动。一个来自印度的13岁男孩在地理科学课上创作了一个地心旅行的动画作品,画外音解释了旅途中的不同地圈层。新泽西一个14岁男孩在社会研究课上设计了一个在Rapa
Nui岛上生活的生活模拟,来帮助人其他人了解当地的文化和经济。
当人们用Scratch来制作对自己来说有意义感兴趣的作品的时候,他们就已经做好了学习跟自己项目相关的数学和计算机概念的准备,并且他们渴望学习相关知识来尽快完成自己感兴趣的项目。Raul,一个13岁的小孩子在课外活动中心开发了一款互动游戏。他设计了基本的图形元素和角色基本的动作但是他不知道怎么保存得分。当我们团队的一个研究人员访问他们的课外活动中心的时候,Raul向我们的同伴寻求帮助。这个研究人员给Raul演示了如何创建一个变量,Raul马上就明白了应该怎样保存分数。他开始摆弄尝试增加变量值的代码块,然后他跑出来拉着研究人员的手边晃边说“谢谢你,谢谢你,谢谢你”。研究人员感到很高兴,他在想有多少8年级的代数老师会因为教会学生变量的知识而获得这样的感谢呢?
Scratch编程语言的开发与Scratch网站的开发是紧密相连的。Scratch想要取得成功,就必须与一个热门可以互相支持、协作、评价彼此作品并在其他人作品上构建自己作品的社区绑在一块。
分享的概念已经深深的融入到了Scratch的界面中,比如屏幕顶端极为显眼的“分享”按钮。通过点击分享按钮,你的项目就上传到了Scratch网站(图6),然后就会出现在页面顶端“最新项目”哪里。一旦一个项目被分享,任何人可以可以在浏览器(用基于Java的播放器)里运行这个作品,评论这个作品,通过单击“我喜欢”按钮投票,或者下载并修改作品的脚本。(所有在网站上分享的作品都是在CC协议下发布的。)
图6 Scratch网站
Scratch发布的27个月以来,人们在Scratch网站上分享了50万以上的作品。对很多人来说,让自己的作品有在大量爱好者面前出现并且能够得到反馈修改意见,是一种及其强大的动机。网站上大量的作品也带来了数不清的灵感。Marvin
Minsky曾经说过Logo语言的语法是非常棒的,可惜他的能力太差,能做的事情太少了。年轻的作家经常从阅读经典作品里获得灵感,但是Logo语言并不能给年轻的程序员带来灵感。Scratch网站已经成了一个Scratch网站写的作品集了。
网站也为协作提供了肥沃的土壤。社区成员持续不断的借用其他人的创意,图像和程序并加以修改,并在别人想法的基础上创造自己的作品。超过15%的作品来源于对社区里其他成员作品的融合再创作。例如,有许多版本的俄罗斯方块游戏,因为社区成员不断的添加新的功能并试图改善游戏体验。
一开始,许多Scratch用户对于别人改编自己的作品感到很苦恼,抱怨其他人偷了他们
想法和创意。这在Scratch网站的论坛里引发了关于分享的价值以及开源社区理念的讨论。我们的愿景是营造一种为自己的作品被别人改编感到骄傲而非苦恼的社区文化。我们持续不断的给网站添加新的特性来鼓励这种以别人改编自己作品为荣的理念。现在当改编一个作品的时候,网站自动添加到原作品的链接,原作者会获得荣誉。而且每个作品都包含了到其“衍生”作品的链接,Scratch网站首页会突出改变频率最高的作品。
有的作品关注网站本身,提供了网站上其他作品的分析和回顾。有一个叫做Scratch新闻网的简称为SNN的例子,让默认角色小猫像CNN主持人一样播报Scratch社区的新闻。开始时候我们以为这只是个“模拟新闻广播”,后来我们意识到这是一个提供Scratch这个真实在线社区里人们感兴趣新闻的真正的新闻广播。受SNN项目启发,Scratch社区出现了大量用Scratch编写通讯、杂志和电视节目作品,报道Scratch社区的资讯。
有的Scratch用户成立了在线公司,共同完成靠个人力量无法完成的作品。一个英国15岁的小女孩,昵称是BeeBop,在创作了一个包含了大量动画精灵的作品,而且鼓励其他人在作品里使用动画精灵,也鼓励人们定制动画特效,在这个过程中她创办了自己的公司。一个同样来自英国的昵称是MusicalMoon的10岁小女孩,非常喜欢BeeBop的动画作品,问BeeBop他能否改变作品的背景。这次协作促成了Mesh
Inc.公司的出现,自称是用Scratch生产“最高品质游戏”的微型公司。几天后,昵称是Hobbit的来自新泽西的14岁男孩,发现了Mesh
Inc.公司的作品,并且发出了求职申请,他说“我是一个很好的程序员,我能够参与调试和编程。”之后,一个来自爱尔兰的昵称是Marty的11岁男孩,也成了Mesh
Inc.公司的员工,因为他拥有良好的背景滚动技巧。
这些协作为不同类型的学习提供了机会。一个创办了名为Blue
ELk的Scratch公司的来自加利福尼亚的13岁女孩是这样描述她的经验的:
“对我来说通过用Scratch以及创办公司来一起开发游戏的乐趣在于在这个过程中我交了很多朋友学到了很多新知识。我学会了关于不同类型编程的很多知识,我借鉴其他有我感兴趣特效的游戏,下载这些游戏,并且仔细阅读并修改脚本和精灵。我真的超级喜欢编程。刚开始接触Scratch的时候,我意识到自己可能不是一个很好的艺术家。但是从那之后,通过学习其他人的艺术作品,请教他们,并且通过用Photoshop和Scratch自带的绘图编辑器来联系绘画,我的艺术水平提升了很多...在运作Blue
Elk公司的过程中我还学会了如何团队的积极性以及如何让团队更好的一起工作...相比于博客和Facebook等社交网站我更喜欢Scratch,因为我们在创作很好玩的游戏和作品供人们玩耍、欣赏和下载。我不喜欢单纯的网聊,我喜欢谈论一些富有创造性的前沿的东西。”
我了促进和鼓励国际分享和协作,我们把Scratch的多语言翻译工作作为一项优先任务来做。我们开发出了把Scratch编程快翻译成任意字符集的功能。全世界的网络志愿者已经把Scratch翻译成了40多种语言。世界各地的孩子们现在都可以分享彼此的作品,人人都可以用自己的母语来使用代码块。
现在,世界各地越来越多的K-12学校甚至一些大学(包括哈佛大学和加利福尼亚大学,伯克利大学)都把Scratch当做编程学习的入门课程。因此一个自然而然的问题摆在我们面前,掌握Scratch之后学习什么语言。在Scratch社区人们一直在讨论Scratch之后学习什么语言。我们收到了许多为Scratch添加高级功能的请求(比如继承和递归列表),希望Scratch自身能够成为入门之后的进阶语言。
我们打算把我们的首要精力放在降低语言学习门槛和增加Scratch的广度。对于某些Scratch用户特别是那些希望将来从事编程和计算机科学行业的人来说,迁移到其他编程语言是十分重要的。而对于那些只是把Scratch当做自我表达的媒介,而非职业生涯的路径的人来说,Scratch已经能够满足他们的需求。他们可以不断的用Scratch探索自我表达的新形式,基于他们对于计算机思维核心理念的理解创造多种多样的作品。一点点的编程知识足够他们不断探索了。
我们开发新版本的时候,我们的目标是让Scratch更加具有可玩性,更有意义和社交性。结合Scratch传感器扩展板,人们可以创建能够对物理世界做出感知和回应的Scratch项目。同时,我们正在开发Scratch的移动设备版本以及允许人们访问在线数据在线编程的web版本。
也许对于Scratch来说最大的挑战并非技术性而是文化性和教育性。虽然Scratch在早期的探索中取得了巨大的成功,但我们需要提供更高的教育支持来让Scratch更广泛的传播。我们最近上线了一个叫做Scratch-Ed的在线社区,在这个社区,教育者可以分享他们跟Scratch相关的想法,经验和课程计划。进一步讲,需要从整体上改变人们对于编程和计算机的理解和看法。我们需要加强人们对于包含设计和创造而非仅仅浏览和交互的“数字流畅能力”这一概念的理解。只有这样像Scratch这样的语言才能发挥全部潜能。
很多人对Scratch开发做出了贡献,对Scratch背后理念付出了努力的让你更多。我们非常感谢LLK终身幼稚园组所有曾经从事Scratch相关工作的朋友和前成员,尤其是Tammy
Stern, Dave Feinberg, Han Xu,Margarita Dekoli, Leo Burd, Oren
Zuckerman, Nick Bushak, and Paula Bonta. 我们对Kylie Peppler,
GraceChui, 心怀感激,同样感谢Yasmin Kafai引导和参与Scratch开发现场研究的其他成员。Seymour
Papert和Alan
Kay的工作深刻对Scratch的出现有着深刻的影响和启发。感谢国家自然基金会,微软,Intel,诺基亚和麻省理工大学媒体实验室研究协会的资金支持。文中提到的儿童名称均为化名。
后记,小编朋友研发了一个游戏化的少儿编程在线课程(5-12岁),游戏化教学结合scratch(一款在线少儿编程工具,类似乐高的积木拼搭),我家娃娃学了几次课,非常喜欢(超预期),16次课才200多块钱,对锻炼孩子的思维能力和动手动力很有帮助。
感兴趣的朋友可以扫描二维码,关注一下,或微信搜索“大耳猴少儿编程”}

我要回帖

更多关于 儿童有必要学编程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信