探索Scratch编程界面与操作:自定义指令积木与外部设备控制模块详解
自定义命令构建块或外部链接设备控制模块

我们先看一下Scratch的界面和操作
用户在中间区域选择不同的编程指令“积木”后,在右侧的代码界面中进行组合,然后在左侧的可视化窗口中看到代码的运行结果。 Scratch中指令块的形状和颜色是根据其编程语法来区分的。例如,“控制”类型的积木(如重复)是C形的,这意味着其他积木(块)应该放置在该类型的积木内部;输出数字类型数量的构建块用椭圆表示;输出布尔量的积木用Hexagon来表示等等。
Scratch开创了积木式编程学习模式
Scratch于2003年首次推出桌面版,2005年推出网页版,2007年向公众开放,并增加了社区分享功能。 2013年,推出至今仍在使用的最稳定版本Scratch 2.0。该版本支持网页版和离线版。
Scratch开创了模块化、积木式编程学习模式,并启发了许多类似或衍生产品的出现,例如Blockly(Google于2012年发布公测版)、SNAP!、Hopscotch、Tynker等。积木学习模型来自乐高。
然而,Scratch 并不是图形编程语言中真正的“老大哥”。事实上,Scratch 受到前辈专业编程语言 Action Script、Java Script 以及 Alice、Squeak、Edtoys 等儿童入门级编程语言的启发,并综合了所有语言的优点派对。 Scratch 1.1~1.4是基于Squeak(Smalltalk-80的实现)开发的,而Scratch 2.0是基于ActionScript开发的,使用JavaScript引擎并完全用Flash重写。
基于Scratch的好的学习产品设计有哪些?
在项目之初,Scratch开发团队就得出结论,一门好的编程语言应该满足三个条件:底层低,意味着易于上手和操作;高上限,允许用户创建高度复杂的程序。项目;宽阔的墙壁,支持各种项目的创作,可以满足用户的不同需求。为了满足这三个要求,Scratch在不断变化的过程中始终坚持三个核心设计原则,同时保证用户可以终身免费使用:程序更容易修改(More Tinkerable)、项目更容易修改(More Tinkerable)、更有意义(More有意义),社会氛围更浓厚(Moresocial)。
麻省理工学院媒体实验室下的终身幼儿园团队拥有多年与乐高合作的经验,参与过乐高Mindstorms等机器人产品的开发。开发团队发现,孩子们在搭建积木时,会积极尝试,并在搭建过程中自发地改进和创造。
Scratch的代码窗口界面被刻意设计成类似物理桌子的样子,模仿孩子们玩乐高时的场景,让孩子们更容易在这张“桌面”上拖放编程块。借助Scratch高度交互的编程环境,用户只要触发代码块的运行,就可以立即在左侧的可视化窗口中观察到运行结果。他们还可以在运行过程中修改代码并观察修改后的代码对应的触发结果。
这种学习模式与一般编程学习工具所倡导的“自上而下规划”相反,被称为“自下而上修修补补”。这样的模型可能学习过程有点乱,但是用户根据动画运行结果不断修改代码。这种探索性和实验性的学习方法实际上让学习者感觉更舒服。 Scratch在多次更新的过程中,也一直强调通过这种模式培养孩子的“直觉学习”能力。
我们都知道,当我们在做一些自己认为有意义的事情时,我们是最享受的,此时的学习效率也是最高的。 Scratch 开发团队也知道这一点。因此,Scratch在发展之初就非常注重两点:多样性和个性化。
多样性意味着Scratch支持用户创建各种项目。无论是故事、游戏还是动画,用户都可以根据自己的需求和兴趣在Scratch上完成相应类型的项目。
个性化是指支持用户在Scratch中导入图片或音乐、录音、绘图等功能。这也是为什么Scratch仍然坚持使用有些过时的二维位图技术。因为只有在这样一个简单单一的环境中,才能充分支持用户的各种素材,项目才会充满无限的创作可能性。
Scratch 这个名字的灵感来自于 DJ 所使用的“搓盘”技术,即“混合不同的声音”。因此,Scratch中一个非常重要的概念就是“remix”,即“混音”。这不仅意味着Scratch希望用户能够通过结合代码积木、图片、音乐、照片等元素做出创意项目,也意味着Scratch鼓励大家在社区中互相学习,通过修改和优化每个项目来改进项目。别人的代码。
自Scratch推出2.0版本以来,Scratch已经从一种编程语言转变为一种语言与社区并重的产品。 Scratch社区已经成为Scratch不可或缺的一部分,其活跃的社区氛围也是Scratch取得如此大影响力的主要原因。
“人工智能之父”马文·明斯基曾说过:乐高的语法很棒,但文学不多。这意味着,虽然乐高有一套非常适合孩子学习的模型和方法,但它并没有提供很多可供孩子学习的优秀作品范例。 Scratch 2.0中新增的“一键分享”功能体现了Scratch对“再创造”理念的重视。这种“共享”和“再创造”的理念极大地促进了学习者之间的合作和开源理解。许多经典的Scratch项目都是由来自多个不同国家的孩子通过跨境合作完成的。当然,拥有40多种语言的翻译版本是这一切跨境合作的基石。
在影响力不断增强的阶段,Scratch于2009年7月推出了编程教育者论坛ScratchED。此外,Scratch无论是三大核心设计原则还是目标群体定位策略都没有改变。 ,一贯坚持产品初衷,将使命定位为培养孩子的“数字流利度”(指使用计算机语言流利表达的能力)。 Scratch认为编程只是帮助我们表达自己的媒介,而不是谋生的手段。编程技能就像阅读和写作技能一样。即使我们不会成为专业的程序员或者作家,这些能力也是我们需要掌握的基本能力。
在这些核心概念的驱动下,在Scratch的版本更新过程中,很明显多媒体功能和多线程编程变得越来越突出,而Scratch编程语言的局限性相对也越来越明显。例如,Scratch 2.0版本增强了与外部链接设备的交互,包括基础相机、录音设备以及LEGO WeDo、LEGO Mindsorms、Arduino和Scratch板等,并增强了多媒体功能;不过Scratch 2.0版本只支持一维数组(即数组列表),虽然2.0版本和1.4版本一样支持浮点标量和字符串,但字符串的可操作范围会相对更小。
不过,Scratch毕竟只是孩子们学习编程的工具,并不是像Smalltalk、Squeak那样功能齐全的应用开发语言。早期对Scratch的诟病,比如“没有成人指导,小孩子很难学会Scratch”,现在已经通过降低语言门槛、丰富Scratch的教程资源来弥补。或许Scratch仍会受到更多的质疑和批评,但其始终如一的使命感、巨大的包容性以及博采众长的能力最终会创造出无限的成长空间,变得更加有效和有影响力。儿童编程学习工具。