Scratch是由MIT的LLK团队专门为儿童设计的积木式(也叫图形化)编程软件。Scratch简单易学,且趣味性十足,深受全球儿童的喜欢,是小朋友们开始编程启蒙的首选软件。值得一提的是,Scratch是开源软件,其源代码是公开的。市面上许多积木式编程软件(这里就不点名啦)其实都是在Scratch源代码基础上开发的,因此和Scratch大同小异。小朋友们想学习编程,认准Scratch就可以啦!
Scratch又分为两个版本,分别适合不同年龄段的小朋友们。其中ScratchJr是Scratch的裁剪版,更适合5~7岁的学龄前儿童。Scratch3.0是Scratch的最新版,更适合8~10岁的低年级学生。
如前所述,ScratchJr功能更加简单,比较适合5~7学的龄前儿童。Scratch3则相对比较复杂,适合8~12岁的低年级学生。学龄前儿童在学习ScratchJr之后,很容易就可以过渡到Scratch3。一二三年级小学生已经有了一定的知识储备,理解能力也更强,可以直接从Scratch3学起。我们在后文会详细介绍二者在功能和操作上的各种差异。学习少儿编程的诸多好处我们有专门的文章进行介绍,这里就不赘述了,家长朋友们可以按照下面这幅图来为自己的孩子选择合适的。
ScratchJr专门针对手机和平板电脑设计,更适合触摸屏设备,小朋友们拖拖拽拽就可以操作,非常简单。Scratch3由于功能更加复杂,比如可以响应鼠标和键盘事件,因此更适合在笔记本电脑和台式机上安装。虽然ScratchJr可以在手机上安装,但是我们并不推荐。因为手机屏幕太小,长时间盯着手机屏幕看可能会影响孩子们的视力。
在ScratchJr里,编程积木块是横着摆放的,更适合触摸屏设备。在Scratch3里,编程积木块则是竖着摆放,更适合在笔记本电脑和台式机上操作。
ScratchJr面向的是学龄前儿童,因此刻意削减了编程积木块的种类和数量,只能编写一些较为简单的动画、故事或者小游戏。ScratchJr没有分支积木,因此是非图灵完备的。Scratch3则有完备的编程积木块,比如各种分支和循环积木,是图灵完备的编程语言,可以编写出非常复杂的故事或者游戏。
Scratch3其实已经非常接近真正的代码编程语言了,比如Python、Swift等。小朋友们通过Scratch3入门以后,很轻松就可以过渡到代码编程语言,用英文而非积木块来编写程序。
除了内置积木块,Scratch3还支持自制积木块,也就是利用现有的积木块制作新的积木块。另外,Scratch3还可以添加扩展积木块,增加画笔、视频侦测、文字朗读等积木块,并且可以通过扩展为Micro:bit迷你板或者乐高EV3机器人等硬件设备编程,这些都是ScratchJr所不具备的。
看过话剧的小朋友们都知道,话剧演出需要一个舞台,舞台可以有不同的背景(幕布),各种角色们可以在舞台上尽情的表演。与此类似,Scratch里也有一个虚拟的舞台。在ScratchJr里,舞台在屏幕上半部分的正中央。在Scratch3里,舞台在右上角。
在ScratchJr里,我们可以添加最多4个舞台,每个舞台都可以独立放置各种角色,并且可以通过组合积木块对每一个角色进行编程。Scratch3则更接近现实中的剧场,也即只有一个舞台,但是可以切换不同的背景,并且背景也没有数量限制。在Scratch3里,也是可以通过组合积木块给每一个角色编程。不仅如此,Scratch3还可以给每一个背景进行编程。因此,相对于ScratchJr,通过Scratch3可以编写出复杂的多的故事和游戏。
ScratchJr和Scratch3都自带了许多背景图片和角色,如果这些自带的背景和角色不够用,还可以通过自带的绘图工具来绘制背景或者角色。ScratchJr和Scratch3的绘图工具大同小异,都比较简单,但足够小朋友们画出各种好看的背景和角色了。
ScratchJr和Scratch3绘图板的一个比较大的不同之处是可选颜色的数量。ScratchJr绘画板只有40种颜色可供选择,不过应该也够用了吧,毕竟面向的是学前班小宝贝们。相比而言,Scratch3的绘画板可选的颜色那可就多了。Scratch3绘画板使用了HSB(颜色、饱和度、亮度)色彩模型,可以在几百万种颜色之中选择,而且支持渐变等效果,足够用了!
ScratchJr和Scratch3都有播放声音的积木块,都自带了一些声音,也都支持通过话筒录制声音。
ScratchJr和Scratch3都有消息机制,不同的角色之间可以通过收发消息来进行互动。在ScratchJr里,消息是由信封来表示的,通过颜色来区分。ScratchJr消息只有6种颜色,因此可以传递的信息非常有限。在Scratch3里,消息是通过文字来表示的,不同的文字就表示不同的消息,因此可以传递的信息基本没有限制。
ScratchJr的舞台是基于网格的,一共有15x20个网格。我们可以通过舞台上方左数第二个按钮来打开或者隐藏网格,如下图所示。舞台上的每个角色都有一个中心点,我们可以通过这个中心点的行号和列号来定位它。另外,角色的移动也是基于网格的。上下左右移动积木块的默认移动格数是1,可以改成其它整数。虽然ScratchJr也有旋转积木块,但是它只能旋转角色本身,无法改变角色的移动方向。
图形化编程界面:Scratch Jr采用图形化编程语言,孩子们不需要输入复杂的代码,而是通过拖拽和组合形状来编程。这样的设计使得编程更加直观和有趣,降低了入门门槛,让孩子们能够快速上手。
创造性表达:Scratch Jr鼓励孩子们发挥想象力,通过自己的创造力来设计故事、游戏和动画。它提供了丰富的角色、背景和声音资源,孩子们可以自由选择和运用这些资源,创造出属于自己的作品。
多媒体编程:Scratch Jr支持多媒体元素的编程,孩子们可以通过拖动图像、录制声音和添加背景音乐,为自己的作品增添更多的互动和趣味。
社区分享:Scratch Jr提供了在线社区,孩子们可以将自己的作品分享给其他人,还可以观看和学习其他人的作品。这样的分享机制,不仅能够激发孩子们的创造力,还能够让他们从互动中学习和成长。
适龄性:Scratch Jr针对4-7岁的孩子设计,软件界面简单直观,操作容易上手,很容易引起孩子们的兴趣。而且,Scratch Jr注重培养孩子们的逻辑思维和创造力,循序渐进地引导孩子们进行编程学习。
互动性:Scratch Jr支持孩子们分享自己的作品和观看他人的作品,这样的互动和交流机制能够激发孩子们的学习兴趣,并且从中学习到更多的知识和经验。此外,Scratch Jr还提供了丰富多样的角色和背景资源,可以让孩子们创造出更加生动有趣的作品。
创造性表达:Scratch Jr鼓励孩子们发挥想象力,以自己的创造力来设计故事、游戏和动画。这样的创造性表达方式,不仅能够提高孩子们的创造力和创新能力,还能够培养他们的问题解决能力和逻辑思维能力。
培养未来技能:编程已经成为了21世纪的一项重要技能,未来的就业市场对于懂得编程的人才需求也将越来越高。通过Scratch Jr的学习,孩子们可以从小开始接触和了解编程,培养他们未来需要的技能和思维方式,为他们的未来发展打下坚实的基础。