Scratch软件是免费的、免费的、免费的。任何需要花钱才能下载Scratch软件的全是骗子。
1、什么是Scratch
Scratch是麻省理工学院的“终身幼儿园团队”开发的一种图形化编程工具。是面向青少年的一款模块化,积木化、可视化的编程语言。
什么是模块化、积木化?
我们看一下传统编程语言的代码,如下图:
再来看一下Scratch的代码,如下图:
传统编程语言是主要是由英文字母构成的。Scratch是一个一个的模块,每一个模块就是一行代码,各个模块像积木一样拼接起来。所以叫模块化,积木化的编程语言。他的优点就是使用者不需要懂英文单词,甚至不用打字。使用鼠标进行拖拽进行编码。极大的简化了编程语言,降低了使用难度。
什么是可视化?如下图:
功夫熊猫
我们编写的代码效果随时可以在右边的舞台区到,我们也是对右边舞台区的角色或背景编程,编程的结果非常直观。
2、Scratch的版本
Scratch有三个大的版本,1.4版,2.0版,3.0版
1.4版本:用Smalltalk开发。(我也不知道这是个什么东西)。生成文件后缀名为sb
2.0版本:用Flash及ActionScript。(Flash是一个多媒体软件平台,在世纪初的时候非常火爆,都用来做小游戏和小动画,随着技术的发展,现在有很多局限性。ActionScript是Flash平台下的脚本语言,主要用于实现功能)。生成文件后缀名为sb2
3.0版本:用H5及JavaScript开发,H5用于界面制作,JavaScript用于功能开发。现在有一些少儿编程机构也会教JavaScript。生成文件后缀名为sb3
说明1:Scratch软件是用Smalltalk、Flash、ActionScript、H5、JavaScript开发的。并不是孩子要用这些语言开发,孩子就是用Scratch里的脚本语言开发。
说明2:上面三个版本是统称,并不是某一个版本,比如:3.5版本,3.18版本,3.21版本统称3.0版本。
Scratch有windows及mac版本可供下载
Scratch安装包
3、Scratch的设计思路
简单!!!非常简单!!!为了让儿童能快速上手,Scratch设计的超级简单。菜单栏设计的超级简单,只有语言、文件、编辑三个选项。对于儿童来说,可以非常快的上手学习,对于成年人来说,很多地方一看便知。
传统编程语言配置环境,安装插件就得几个小时。Scratch直接下一步、下一步,会用电脑的就会用Scratch。
Scratch界面支持中文、英文等几十种语言。
4、Scratch模块
Scratch一共有九个模块:运动、外观、声音、事件、控制、侦测、运算、变量、自制积木,包含了绝大多数传统编程语言拥有的代码。可以做出功能非常丰富的产品。
5、Scratch扩展:音乐、画笔、视频侦测、文字朗读、翻译、Makey Makey、micro:bit、LEGO MINDSTORMS EV3、LEGO BOOST、LEGO Education WeDo 2.0、Go Direct Force&Acceleration。扩展有些是直接可用的,有些是需要硬件的,有些是需要连接外网的。
6、Scratch优点
Scratch是现在用户最多、免费资源最丰富的少儿编程软件,没有之一。Scratch是开源的,他的源代码可以在Github上下载到。现在绝大多数的类似软件,都是在Scratch源码的基础上修改的。
网上很多培训机构的话术是少儿编程能提高学习能力、创造力、逻辑思维能力、建立自信心、专注力等。我觉得,少儿编程和其它学科相比最大的优点是“好玩”,玩是孩子的天性,少年儿童能通过简单的拖拽,制作出故事,动画、游戏。极大了满足了孩子玩的欲望,玩的过程中学到了很多知识。与其看动画片,不如玩编程。看动画只有输入,没有输出,玩Scratch可以通过学习,创造出自己喜欢的东西。还能跟自己创造出来的小游戏互动,甚至分享给同学、朋友。
7、Scratch很难
前面说过,Scratch非常简单,但不影响他功能的丰富,Scratch拥有非常多的传统编程语言的语法和概念。比如:“重复”对应传统编程语言的for循环,“如果”对应if判断语句,自制积木对应传统编程语言的方法,角色对应类,角色属性对应属性,甚至变量和列表的名字和传统编程语言都是一样的。Scratch可以用几行代码做出一个简单的游戏,也可以用几百几千行代码做出相对复杂的游戏,比如:植物大战僵尸,五子棋等。Scratch也可以写出各种算法,比如查找:顺序查找、折半查找。比如排序:插入排序、 冒泡排序、 选择排序、 快速排序、归并排序。这些算法在传统编程语言中也不算非常简单。再难点可以刷力扣(一个专门写算法的一个网站)上的题。在科学的课程体系及专业老师的教导下,Scratch可以超级强大!
Scratch功能是有限的,能做出来的东西是无限的。
8、Scratch和其它学科的关联
Scratch和其它学科都有关联,孩子要想好好玩Scratch,就需要自己去学习其它学科的相关知识。
首先,也是最重要的,编程,这个就不细讲了。Scratch本来就是一个编程软件。
声音:Scratch可以播放声音、录制声音。其中涉及到了相关知识有音调、音量等。
数学:Scratch可以进行数学运算。涉及到相关知识有:加、减、乘、除、随机、大于、小于、等于、逻辑运算(与或非,这个在传统编程中使用的及其普遍)、取余、四舍五入、绝对值、向上(下)取整、平方根、sin、cos、tan、asin、acos、atan、ln、log、e^、10^等小学到初中非常多的数学知识,孩子们可以通过简单的数学知识做出简单的效果和功能,如果想做出更厉害的功能,就会促使孩子自己主动去学习。孩子可以通过圆的相关知识自己去计算π,用Scratch可以比先贤祖冲之计算的更精确。也可以解决一些经典的数学问题,比如:鸡兔同笼、李白沽酒等。
音乐:Scratch可以模仿各种乐器的声音,根据音符、节拍等基础的音乐知识,可以创造出简单或复杂的音乐效果。
色彩:画笔功能提供了丰富的关于色彩的知识,可以画出各种优美的图案,根据相关数学知识,可以画出各种形状。
物理:Scratch可以模仿重力、模仿光的反射
9、不要神化Scratch,Scratch是一款非常棒的学习软件,Scratch只是学习用的,虽然能开发出非常复杂非常丰富的游戏和功能,但也改变不了他是一种学习软件的事实。Scratch与Python,Java,C,C++等传统开发语言不是一个层次的东西,传统开发语言是学习工具,更重要的是生产工具,传统编程语言开发出的产品可以供非常多的人使用,可以便捷我们的生活,可以卖钱。Scratch只能是学习用的。
10、Scratch和传统编程语言区别
Scratch与Python,C,C++等传统编程语言有什么区别?怎么选择?
开发目的不同,Scratch是学习工具,是用来学习的。传统编程语言虽然也能学习,但主要还是开发工具,是用来创造软件产品的。
功能不同,Scratch拥有所有传统编程语言的基本语法,循环语句,判断语句,顺序执行,方法等,但很多高级语法是没有的,比如:接口,虚方法,重载……
学习方式不同:Scratch入门几乎零基础,会用鼠标,知道电脑基本操作就能学。传统编程语言有比较高的门槛。
我建议低年纪(小学、初中)同学学Scratch,高年级(初中、高中)同学学Python,C等传统编程语言。
11、Scratch和其它少儿编程语言怎么选择
其它少儿编程语言大多都是在Scratch的基础上进行的扩展,当然也有一部分自主研发的,都是基于模块化,积木式的编程语言。他们会比Scratch功能更强大一些,扩展会更多一点。Scratch因为用户多,所以会有相关的考试,比如:电子学会的图形化考试,蓝桥杯等。其它少儿编程语言因为用户比较少,所以没有形成一个比较统一的评判标准。这里我说的少儿编程语言是指软件编程,不包括乐高、机器人等硬件编程。对于硬件编程我个人不了解,不做评判。
12、Scratch教程
我是专业的程序员,做开发多年。接触Scratch之后觉得挺有意思,就自己学了一下。看过非常多的前辈们的教程,发现有些教程不全,有些不成体系,当然也有非常好的教程值得借鉴。因此,萌生了自己做一套最全,最完备,最成体系的教程的想法,供孩子、家长及老师们一起学习。
能力一般、水平也有限,如果大家觉得喜欢,也是站在前辈们的肩膀上。