本文作者:sukai

scro编程(scratch编程是什么编程)

sukai 2023-11-18 130

  在众多的图形化编程语言或儿童编程学习工具中,由MIT媒体实验室和其终身幼儿园团队支持研发的Scratch (scratch.mit.edu) 算得上是中国地区最广为人知的。Scratch的突出影响力不仅体现在注册用户超过680万以及发布共享项目超过970万这些数据上,更体现在大量出版的Scratch教程书籍、网友自建的Scratch论坛活跃度上,这在众多的儿童编程教学工具当中无出其右。

  Scratch针对的目标群体是8~16岁的儿童。而Scratch最突出的特点,便是提供用户一套由积木系统组成的编程指令,积木类型包括以下10种:

  类型注释动作移动角色、变换角度外观改变角色外形,添加说话/思考框,改变背景,放大或缩小角色声音播放音频文件画笔通过控制画笔的粗细颜色和形状来画画数据新建变量和链表事件设定运行代码块的驱动事件控制条件指令“如果……那么……否则”、“重复”、“停止”等等侦测角色可与用户创建或从PicoBoard、Lego WeDo导入的环境互动数字和逻辑运算数字运算,随机数字生成,且或非逻辑运算更多模块自定义指令积木或外部链接设备控制模块

  来看一看Scratch的界面和操作

  

  用户在中间区域选择不同的编程指令“积木”后,在右边的代码界面自行组合,随后在左侧可视化窗口看到代码的运行结果。Scratch中指令积木的外形和颜色都根据编程上的语法意义区分了开来。比如“控制”类的积木(如repeat重复)是C字型的,意味着这类积木内部应该放置其他积木(块);输出数字类型量的积木用椭圆形表示;输出布尔量的积木则用六角形来表示等等。

  Scratch开创了积木式编程学习模式的先河

  Scratch在2003年首次推出了桌面版,2005年首次推出了网页版,2007年向公众开放并加入了社区分享功能,2013年推出了沿用至今的最稳定版本Scratch 2.0,该版本同时支持网页版和离线版。

  Scratch开创了模式化、积木式编程学习模式的先河,并激励了许多相似或衍生产品的出现,如Blockly(Google于2012年公测发布)、SNAP!、Hopscotch、Tynker等等。而这种积木式的学习模式的原型,则是来自于Lego。

  然而,在图形化编程语言中,Scratch并非是真正的“老大哥”。事实上,Scratch受到了专业编程语言Action 、Java 以及针对儿童的初阶编程语言Alice、Squeak、Edtoys等前辈的启发,并融合了各方的优点。Scratch 1.1~1.4 是基于Squeak(Smalltalk-80的一个实现)开发的,而Scratch 2.0则是基于Action开发的,同时使用Java引擎,并用Flash完全重写。

scro编程(scratch编程是什么编程)

  从Scratch看什么是好的学习产品设计

  Scratch开发团队在项目创建之初,总结出一门好的编程语言应该满足三个条件:低门槛(low floor),即容易上手操作;高上限(high ceiling),即允许使用者建立高度复杂的项目;宽壁垒(wide walls),即支持各类项目的创建,能满足用户的不同需求。为了达到这三点要求,Scratch在不断更迭的过程中,在保证用户终身免费使用的前提下,始终坚定了三条核心设计原则:程序更易修改(More tinkerable)、项目更有意义(More meaningful)、社交氛围更浓厚(More social)。

  程序更易修改

  MIT媒体实验室下的终身幼儿园团队与Lego有多年的合作经验,参与过Lego Mindstorms和其他机器人产品的研发。开发团队发现,在孩子们搭建积木的过程中,他们会积极地动手尝试,并在搭建过程中自发地改进和创造。

  Scratch的代码窗口界面刻意被设计成类似实物桌子的样子,便是在模仿孩子们玩Lego时的场景,方便孩子们随意拖拽编程积木在这个“桌面”上。配合Scratch交互性极强的编程环境,用户只要一触发代码块的运行,可即刻在左边的可视化窗口观察到运行结果,并可在运行过程中修改代码,观察修改后代码对应的触发结果。

  这种学习模式与一般编程学习工具倡导的“自上而下的规划(top-down planning)”相反,被称为“自下而上的修补(bottom-up tinkering)”,这样的模式可能会让学习过程有些杂乱无章,但用户根据动画运行结果来不断修改代码,这种探索实验式的学习途径其实是更让学习者感到舒适的。Scratch多次更新的过程中,也强调了通过这种模式培养孩子们“直觉思维(intuitive learning)”的能力。

  项目更有意义

  我们都知道,我们在做一件自己认为有意义的事情时,我们是最享受的,这时候学习也是最高效的。Scratch的开发团队也深知这一点。因此,Scratch在开发之初非常关注两点:多样性和个性化。

  多样性是指Scratch支持用户创建各类项目,不管是故事、游戏、动画,用户都可以根据自己的需求和兴趣在Scratch上完成相应类型的项目。

  个性化是指支持用户在Scratch中导入图片或音乐、录音、画图等功能。这也是Scratch至今仍坚持采用有些过时的二维位图技术的原因。因为只有在这样简洁单一的环境下,用户的各式各样的素材才能被充分地得到支持,项目才会充满创造的无限可能性。

  社交氛围更浓厚

  Scratch这个名字,灵感来源于DJ打碟时“scratching”的技巧,即“混合不同的声音”。因此,Scratch一个相当重要的概念便是“remix”,即“重新混合”。这不仅指Scratch希望用户通过组合代码积木、图片、音乐、照片等元素做出有创意的项目,更是指Scratch鼓励大家在社区中互相学习,并通过互相修改、优化对方的代码来改进项目。

  自Scratch推出2.0版本后,Scratch从一门编程语言转变成了一个语言与社区并重的产品。Scratch社区已是Scratch不可分割的一部分,其活跃的社区氛围也是Scratch达到如此大影响力的主要原因。

  “人工智能之父”Marvin Minsky曾说过:LEGO has a great grammar but not much literature。意思是,尽管Lego有一套非常适合孩子们学习的模式方法,却没有提供太多让孩子们可以借鉴的优秀作品范例。Scratch 2.0新增的“一键分享”功能,便体现出Scratch对“再创造”理念的重视,这种“分享”、“再创造”的概念极大推进了学习者之间的合作以及对开源的理解。不少Scratch经典项目便是由来自多个不同国家的孩子跨国合作完成的。当然,拥有超过40种语言的翻译版本是这一切跨国合作的基石。

  在自身影响力越来越大的阶段,Scratch在2009年7月推出了针对编程教育者的论坛ScratchED,除此之外,无论是在三条核心设计原则还是目标群体定位策略上,Scratch都没有改变,始终如一地坚持了它的产品初衷,把使命定位在培养孩子们的“Digital fluency”(指使用计算机语言流畅表达的能力)上。Scratch认为,编程只是帮助我们表达的一种媒介,而非谋生的一种手段。编程能力就和读写能力一样,即便我们不会成为专业的程序员或作家,这些能力都是我们需要掌握的基本能力。

  在这些核心理念的牵引下,Scratch在版本更新过程中,明显多媒体功能和多线程编程越来越突出,而Scratch编程语言的限制却相对越来越明显。比如,Scratch 2.0版本加强了与外部链接设备的互动,包括基本的摄像头、录音设备以及LEGO WeDo、LEGO Mindsotrms、Arduino和Scratch板等等,增强了多媒体功能;然而Scratch 2.0版本只支持一维数组(即数列lists),尽管2.0版本和1.4版本一样支持浮点标量和字符串,但字符串的可操作范围会相对更少。

  不过,Scratch毕竟只是孩子学习编程的工具,并非Smalltalk和Squeak那样的全功能应用程序开发语言。而Scratch早期所受到的批评,例如“孩子们难以在没有大人指导的情况下学会Scratch”,早已通过降低语言门槛和丰富Scratch的教程资源等途径弥补了。也许Scratch还会受到更多的质疑和批评,但它始终如一的使命感、极大的包容性以及博取众长的更新能力,终究会成就它无限的成长空间,成为更有效、更具影响力的儿童编程学习工具。

  作者:芥末堆-Silvia俞

  原文链接:https://www.jmdedu.com/news/detail/1740

阅读
分享