
Scratch 是可视化的编程语言,其丰富的学习环境适合所有年龄阶段的人。利用它可以制作交互式程序、富媒体项目,包括动画故事、读书报告、科学实验、游戏和模拟程序等,此外,Scratch 也是人工智能科创教育领域的重要工具。本书的目标是将Scratch 作为工具,教会读者最基本的编程概念,同时揭示Scratch 在教学和科创方面的强大能力。本书使用升级后的Scratch 3.0 版本,该版本尤其适用于人工智能科创教育领域。全书共分9 章,前三章讲解如何使用Scratch 绘制几何图形,并创建富媒体应用程序,其余章节使用Scratch 讲解各个编程概念。每一章都有许多完整的案例,读者可以模仿它们制作许多类似的程序。当读完整本书后,相信你一定可以亲自完成各种编程项目。本书假定读者没有任何编程基础。本书内容的难度基本不会超过高中数学,个别有难度的模拟程序可以先行跳过。
译者序1 为什么我们要学习编程?为什么欧美发达国家的孩子更具有创造力?为什么中国青少年素质教育总是家长谈起的话题?带着一系列的问题,我便开始寻找答案。微软创始人比尔·盖茨曾说过孩子学编程要从小开始,从兴趣出发,通过学习计算机编程来培养创造力,未来我们的下一代才具有竞争力。为此,欧美发达国家掀起一股青少年学习计算机编程的浪潮。 Scratch 是由麻省理工学院(MIT)媒体实验室所开发的一款面向青少年的图形化简易编程软件。使用者只需将色彩丰富的指令方块进行组合,便可创作出多媒体程序、互动游戏、动画故事等作品。 近几年本人一直从事少儿编程的研究工作,在研究中发现中小学生使用C 语言编程的难度较大,许多学生受困于语法的规则和数学算法,无法理解程序之间的逻辑关系,一般的程序语言均采用英文编写,又增加了学习难度。而对于使用Scratch 的学生来说,他们觉得编程就像是在设计一款游戏或者编写动画故事。他们不需要撰写复杂的文字语法,只需要通过指令流程安排和一连串积木模块的组合,就可以在短时间内完成有趣的游戏和动画设计。目前Scratch 已被翻译成40 多种语言在全球使用,并且能够直接在互联网浏览器上执行。 关于本书 本人有幸先于广大读者读到本书英文版Learn to Program with Scratch,通过阅读发现,本书在内容编排上难度适中,非常适合中学生阅读,可作为中学科创教育教材或学生自学手册,同时也可以作为大学选修课辅助教材,实用性较强。为此,本人向电子工业出版社编辑推荐引进,并联合国内资深创客李泽先生将其翻译出来,早日跟广大师生分享,共同学习。2019 年,随着Scratch 3.0 版本的普及,本书又推出了新的版本,更加适合作为人工智能科创教育领域的教材使用。 全书中的“试一试”和“练习题”的答案可以登录博文视点官网的本书页面http://www.broadview.com.cn/37616,在“下载资源”区下载相关资源。 因书中图文内容丰富,设计精彩,难免会出现疏漏与错误,如果读者在阅读过程中发现任何问题,希望找到译者共同探讨,可以加入“爱上Scratch”主题QQ 群(157658050)。在这个群里,你会获得更多关于科创方面问题的解答。 致谢 首先要感谢麻省理工学院(MIT)媒体实验室的开发人员和本书作者为广大Scratch 爱好者做出的巨大贡献,本人因寻找关于Scratch 的学习资料有幸结识译者李泽先生,没有他的辛勤付出,本书不可能顺利完成。其次要感谢本书编辑林瑞和与高丽阳先生,他们为引进本书多次与外方进行沟通,并对译稿进行多次审阅。最后,感谢每一位投身于科创教育的老师。 值此出版之际,本人特别希望通过本书来唤醒更多的中国青少年从小喜欢编程,热爱创造,未来成为一个能够改变世界的科学家。 于欣龙 奥松智能创始人、资深创客 译者序2 2014 年春节午夜时分,我和弟弟在一起探讨儿童编程教育时,第一次听说 Scratch,从此便与 Scratch 邂逅、结缘。随后我尝试开办培训班,录制教学视频。10 个月后,我幸运地获得了翻译本书的机会。当我看到本书的目录时,我便下定决心:一定要将本书的思想传递给国内广大的 Scratch 爱好者、教师、学生以及家长。2019 年,鉴于Scratch 3.0 版的普及,我又对本书做了升级整理。该版本更适合青少年读者在人工智能科创领域的学习。 纵观国内外的 Scratch 书籍,大都以独立或进阶的案例作为主线。本书虽然基于 Scratch,却完全超越 Scratch 本身。作者不仅贡献了众多优秀的案例,更重要的是,作者仅把 Scratch 视为工具,讲解了计算机科学常见的概念,如递归、字符串处理、列表等。因此,本书的适用范围很广,任何想了解计算机科学的人都能从中获益。 本书循序渐进地从计算机科学常见的概念出发,配合 Scratch 脚本演示说明,然后通过大量的项目、练习题加以巩固。作者详细地解释了每段脚本的含义,相信读者一定能理解其中的原理。 最后感谢好友于欣龙的翻译推荐,感谢研究生导师张学良院长的支持,感谢我的女朋友刘剡细致地审阅。有了大家的信任和支持,我才能竭尽全力完成本书的翻译。如有疏漏和不足之处,恳请读者批评、指正。如果读者在阅读过程中发现任何问题可以与我共同探讨,若下载本书的素材文件,可以加入“科技传播坊”的QQ群(633091087)或者关注微信公众号“kejicbf”。 李泽 作者简介 Majed Marji 拥有韦恩州立大学的电子工程博士学位和达文波特大学战略管理的MBA 学位。他在汽车行业工作超过15 年,开发了许多软件,涉及实时数据采集、设备控制、实验室管理、工程数据分析、嵌入式系统、远程信息处理、混合动力汽车,以及与安全相关的动力系统。Marji 博士还是韦恩州立大学电气工程系的兼职讲师,主要讲授通信工程、机器视觉、微处理器、控制系统,以及算法和数据结构等相关课程。 技术编辑简介 编辑Tyler Watts 是一位富有创造性的计算机教育家。他在堪萨斯城的联合学区教授六到八年级的学生,还在密苏里大学堪萨斯分校教授成人学生。他从2009 年开始使用Scratch,并不断地用它弥补数字鸿沟,告诉学生如何像计算机科学家一样思考。在教学过程中,Tyler 逐渐认识到让学生独立思考、接受挑战,以及成为数字创造者的重要性。他认为编程是一种个性表达和教导学生的方法,和任何其他的艺术形式一样有趣。 致谢 虽然本书封面上只有一个作者,但是有许多人都参与了创作。感谢No Starch 出版社的专业人员,特别是本书的编辑Jennifer Grifith-Delgado 和出版编辑Alison Law。他们的建议和专业知识让本书更加完善,甚至在每一页上都有批注。同样感谢Paula L. Fleming和Serena Yang 对本书的贡献。 感谢本书的技术编辑Tyler Watts 提供的宝贵意见,他深思熟虑的建议在本书中多次出现。 最后感谢我的妻子Marina 和我的两个儿子——Asad 和Karam。他们是我完成这个长期项目的不竭动力,而且给予了我充分的时间和空间。现在终于可以弥补我曾经错过的那些时光了! 本书介绍 Scratch 是可视化的编程语言,其丰富的学习环境适合所有年龄阶段的人。利用它可以制作交互式程序、富媒体项目,包括动画故事、读书报告、科学实验、游戏和模拟程序等。与其他编程语言相比,Scratch 的可视化编程环境让我们更容易领略编程的魅力。 Scratch 不仅仅是编程工具,它还提升了我们解决问题的能力,而这才是生活中不可或缺的。该平台提供即时反馈,可以快速检查你的逻辑正确与否。可视化的结构让跟踪程序流程变得更加简单,利于完善思考的方式。从本质上讲,Scratch 缩短了大众与计算机科学思维的距离。它不仅可以激发学习的内在动力,促进你对知识的追求,还鼓励动手实践,通过探索和发现自主学习。学习Scratch 的门槛非常低,创造力和想象力才是最重要的。 现在有不少Scratch 编程教学的图书,但它们大多数都面向青年读者,而且案例简单、数量有限,指导读者通过Scratch 的用户界面进行操作。这类书突出的是Scratch 本身,而非编程的思想。相反,本书的目标是将Scratch 作为工具,教会读者最基本的编程概念,同时揭示Scratch 在教学上的强大能力。 本书为谁而写 如果你渴望探索计算机科学,那么这本书就是为你准备的。本书讲解基本的编程概念,可以作为中学的教材或自学手册。针对不同专业背景的学生,本书还可以作为大学教材,也可以作为类似课程的辅助教材。 通过本书的讲解,Scratch 授课老师将深化对编程的理解。老师们可以开发相应的教案,鼓励孩子们使用Scratch 满足自己的需要。 本书假定读者没有任何编程基础。本书内容的难度基本不会超过高中数学,个别有难度的模拟程序可以先行跳过。 致读者 程序员的美妙之处在于创造。试想一下:你提出了一个问题,然后在数小时内使用键盘创造出一个软件,这是不是很让人惊叹呢? 然而,编程技能和任何技能一样,唯有勤奋练习,方能游刃有余。 在编程时,你可能会经常犯错,但是不要气馁,不要放弃,花时间思考其中的概念和逻辑,并使用不同的思路和技术,直到纠正它们。 然后不断前行学习新的内容。 本书特点 本书的理念是亲自动手解决问题,从而掌握编程和计算机科学的相关概念。我希望培养读者的想象力,并向大家分享我在计算机编程领域的经验。 在这种理念下,本书的编写是以项目为导向的。我会详细说明某个概念,然后制作多个运用此概念的案例。因此,我们的重点是解决问题,而非Scratch 的具体使用方法。 为了更好地解释编程的概念,不断增强你对知识点的理解,本书的案例都是精心挑选的,而且涉及各个领域的知识。 书中的“试一试”和每章结尾的“练习题”不断地挑战着你的编程能力。这两部分也能提供许多新的思想。我建议你尝试完成这些练习,并提出在编程时遇到的问题。如果你能够解决自己提出的问题,说明你对编程已经有了深刻的理解。 本书结构 为了快速入门,本书前三章讲解如何使用Scratch 绘制几何图形,并创建富媒体应用程序。其余章节使用Scratch 讲解各个编程概念。 第1 章:准备开始,介绍了Scratch 的编程环境、积木的概念和创建程序的方法。 第2 章:运动和绘图,讲解了运动模块和Scratch 的绘图方法。 第3 章:外观和声音,讨论了Scratch 的外观模块、声音模块和音乐模块。 第4 章:过程,说明了过程是一种让程序结构化、模块化的方式。从本章开始,我们会关注良好的编程风格。 第5 章:变量,讲解了如何使用变量跟踪记录信息,向用户询问并得到用户的输入,这为制作交互式应用程序打下基础。 第6 章:用逻辑做决定,概括了用逻辑做决定的方法和控制程序的执行流程。 第7 章:深入循环,详细讨论了Scratch 中的循环结构,并通过具体案例展示循环的使用方法。 第8 章:字符串处理,讨论了字符串数据类型,展示了许多常见的字符串操作过程。 第9 章:列表,阐明了列表是变量的容器,展示了如何使用它们制作功能强大的程序。 每一章都有许多完整的案例,你可以模仿它们制作许多类似的程序。 本书最后还有附录A :分享与合作,讲解Scratch 3.0 网络版的相关内容。 当读完整本书后,我相信你一定可以亲自完成各种编程项目! 符号约定 为了用文字表达Scratch 的编程界面,我们使用如下设计。 y 积木的名字 :当绿旗被点击时。 与本节相关的文件名显示在左侧(如左侧的Filename.sb3 ),“试一试”部分如下所示。 Filename.sb3 在线资源 访问博文视点官网本书页面可下载本书的额外资源。下载并解压后的文件包括如下内容。 Bonus Applications :此文件夹含有许多Scratch 案例供读者自行学习。其中Bonus Applications.pdf 详细讲解了每个程序。 Chapter Scripts :包含书中的所有脚本。 Extra Resources :此文件夹包含三个PDF 文档,深入讲解了三个你可能感兴趣的专题,包括绘图编辑器的使用、数学函数和绘制几何图形。 Solutions :包含所有的课后练习题和“试一试”的解决方案。
目录 致谢................................................................................................. VIII 本书介绍............................................................................................ IX 第1 章 准备开始............................................................................... 1 什么是 Scratch .................................................................................. 2 试一试 1-1 ...................................................................................... 3 Scratch 编程环境 .............................................................................. 3 舞台 ......................................................................................................... 4 试一试 1-2 ...................................................................................... 5 角色列表 ................................................................................................. 5 试一试 1-3 ...................................................................................... 6 积木区 ..................................................................................................... 7 试一试 1-4 ...................................................................................... 8 脚本区 ..................................................................................................... 8 试一试 1-5 ...................................................................................... 9 试一试 1-6 .................................................................................... 10 造型标签页 ........................................................................................... 10 试一试 1-7 .................................................................................... 11 声音标签页 ........................................................................................... 11 试一试1-8 .................................................................................... 12 背景标签页 ........................................................................................... 12 试一试 1-9 .................................................................................... 13 角色信息 ............................................................................................... 13 菜单栏 ................................................................................................... 14 绘图编辑器 ...................................................................................... 15 设置图像的中心 ................................................................................... 15 试一试 1-10 .................................................................................. 16 设置透明色 ........................................................................................... 16 制作第一个 Scratch 游戏 ................................................................. 17 第一步:准备背景 ............................................................................... 18 第二步:加入反弹板和小球 ............................................................... 18 第三步:让角色动起来 ....................................................................... 19 试一试 1-11 .................................................................................. 20 第四步:添加声音更有趣 ................................................................... 21 Scratch 积木一览 ............................................................................ 22 算术运算符和函数 ........................................................................... 23 算术运算符 ........................................................................................... 23 随机数 ................................................................................................... 24 数学函数 ............................................................................................... 25 本章小结 .......................................................................................... 25 练习题 ............................................................................................. 25 第2 章 运动和绘图.......................................................................... 28 使用运动模块的积木 ........................................................................ 28 绝对运动 ............................................................................................... 29 试一试 2-1 .................................................................................... 30 相对运动 ............................................................................................... 31 试一试 2-2 ...............................................................................33 其他运动积木 ....................................................................................... 33 画笔模块和一个简单的画图程序 ...................................................... 34 试一试 2-3 .................................................................................... 35 试一试 2-4 .................................................................................... 36 神奇的重复执行 ............................................................................... 36 试一试 2-5 .................................................................................... 38 旋转的正方形 ....................................................................................... 38 试一试 2-6 .................................................................................... 39 图章积木 ............................................................................................... 39 试一试 2-7 .................................................................................... 40 Scratch 项目 .................................................................................... 40 猫咪收集钱袋 ....................................................................................... 40 接苹果游戏 ........................................................................................... 44 关于被克隆的角色 ........................................................................... 47 本章小结 .......................................................................................... 48 练习题 ............................................................................................. 49 第3 章 外观和声音.......................................................................... 52 外观模块 .......................................................................................... 53 切换造型创建动画 ............................................................................... 53 试一试 3-1 .................................................................................... 54 让角色思考并说话 ............................................................................... 55 试一试 3-2 .................................................................................... 55 图形特效 ............................................................................................... 56 角色大小和可视状态 ........................................................................... 56 试一试 3-3 .................................................................................... 57 角色间的图层 ....................................................................................... 57 试一试 3-4 .................................................................................... 58 声音和音乐模块 ............................................................................... 58 播放音频文件 ....................................................................................... 58 弹奏鼓声和其他声音 ........................................................................... 59 创作音乐 ............................................................................................... 60 控制音量 ............................................................................................... 61 试一试 3-5 .................................................................................... 61 设定演奏速度 ....................................................................................... 61 试一试 3-6 .................................................................................... 61 Scratch 项目 .................................................................................... 62 在舞台上跳舞 ....................................................................................... 62 烟花效果 ............................................................................................... 66 本章小结 .......................................................................................... 68 练习题 ............................................................................................. 68 第4 章 过程.................................................................................... 72 消息的广播和接收 ........................................................................... 73 发送消息和接收消息 ........................................................................... 74 使用广播机制协调多个角色 ............................................................... 75 将大型程序分而治之 ........................................................................ 77 使用广播模拟过程 ............................................................................... 79 创建自己的积木 ................................................................................... 80 给积木添加参数 ................................................................................... 82 试一试 4-1 .................................................................................... 86 过程的嵌套 ........................................................................................... 87 试一试 4-2 .................................................................................... 89 分析问题的思维方式 ........................................................................ 89 自顶向下分析 ....................................................................................... 90 试一试 4-3 .................................................................................... 92 自底向上分析 ....................................................................................... 93 本章小结 .......................................................................................... 95 练习题 ............................................................................................. 95 第5 章 变量.................................................................................... 98 Scratch 的数据类型 ......................................................................... 99 参数凹槽与积木形状 ........................................................................... 99 数据类型的自动转换 ......................................................................... 100 变量详解 ........................................................................................ 101 什么是变量 ......................................................................................... 101 创建并使用变量 ................................................................................. 104 试一试 5-1 .................................................................................. 107 变量的作用范围 ................................................................................. 107 修改变量的值 ..................................................................................... 110 绘制蜘蛛网 ..........................................................................................111 绘制风车 ..............................................................................................111 试一试 5-2 .................................................................................. 112 克隆体中的变量 ................................................................................. 112 变量值显示器 .................................................................................115 在程序中使用变量值显示器 ............................................................116 欧姆定律模拟实验 ............................................................................. 116 试一试 5-3 .................................................................................. 118 串联电路模拟实验 ............................................................................. 118 试一试 5-4 .................................................................................. 120 计算球体体积和表面积 ..................................................................... 120 试一试 5-5 .................................................................................. 122 绘制玫瑰花瓣 ..................................................................................... 122 试一试 5-6 .................................................................................. 124 葵花籽分布模型 ................................................................................. 124 试一试 5-7 .................................................................................. 126 XVIII 目 录 获得用户输入 ................................................................................ 126 读取数字 ............................................................................................. 126 读取字符 ............................................................................................. 127 执行算术运算 ..................................................................................... 127 本章小结 ........................................................................................ 128 练习题 ........................................................................................... 128 第6 章 用逻辑做决定.................................................................... 131 关系操作符 .................................................................................... 132 布尔表达式的求值 ............................................................................. 134 比较字符和字符串 ............................................................................. 134 分支结构 ........................................................................................ 136 如果……那么积木 ............................................................................. 136 将变量作为标志变量 ......................................................................... 137 如果……那么……否则积木 ............................................................. 139 嵌套分支结构 ..................................................................................... 140 菜单驱动程序 ..................................................................................... 141 逻辑运算符 .................................................................................... 143 与操作符(and) ................................................................................. 143 或操作符(or) ................................................................................... 144 不成立操作符(not) .......................................................................... 145 使用逻辑运算符检查数值范围 ......................................................... 146 Scratch 项目 .................................................................................. 148 坐标猜测游戏 ..................................................................................... 148 试一试 6-1 .................................................................................. 150 三角形分类游戏 ................................................................................. 150 试一试 6-2 .................................................................................. 154 猫咪巡线 ............................................................................................. 154 试一试 6-3 .................................................................................. 155 求解直线方程 ..................................................................................... 156 目 录 XIX 试一试 6-4 .................................................................................. 160 其他应用程序 ..................................................................................... 160 本章小结 ........................................................................................ 160 练习题 ........................................................................................... 160 第7 章 深入循环........................................................................... 163 循环结构 ........................................................................................ 164 重复执行直到积木 ............................................................................. 164 试一试 7-1 .................................................................................. 166 将重复执行和如果……那么结合 ..................................................... 166 试一试 7-2 .................................................................................. 167 停止积木 ........................................................................................ 168 试一试 7-3 .................................................................................. 169 结束过程调用 ..................................................................................... 170 验证用户输入 ..................................................................................... 171 循环计数器 .................................................................................... 172 密码验证 ............................................................................................. 172 试一试 7-4 .................................................................................. 173 灵活的循环计数 ................................................................................. 173 循环的嵌套 .................................................................................... 175 试一试 7-5 .................................................................................. 177 递归:调用自身的过程 .................................................................. 177 试一试 7-6 .................................................................................. 179 Scratch 项目 .................................................................................. 179 模拟时钟 ............................................................................................. 179 试一试 7-7 .................................................................................. 181 小鸟射击游戏 ..................................................................................... 181 试一试 7-8 .................................................................................. 185 自由落体实验 ..................................................................................... 185 试一试 7-9 .................................................................................. 188 抛体运动模拟器 ................................................................................. 188 试一试 7-10 ................................................................................ 191 其他应用程序 ..................................................................................... 191 本章小结 ........................................................................................ 191 练习题 ........................................................................................... 192 第8 章 字符串处理........................................................................ 194 字符串数据类型 ............................................................................. 195 特殊字符统计 ..................................................................................... 195 字符比较 ............................................................................................. 196 试一试 8-1 .................................................................................. 198 字符串操作示例 ............................................................................. 198 Igpay Atinlay ....................................................................................... 198 试一试 8-2 .................................................................................. 200 单词修正 ............................................................................................. 200 试一试 8-3 .................................................................................. 202 解密游戏 ............................................................................................. 202 Scratch 项目 .................................................................................. 205 射击游戏 ............................................................................................. 205 试一试 8-4 .................................................................................. 208 将二进制数转换为十进制数 ............................................................. 208 试一试 8-5 .................................................................................. 209 试一试 8-6 .................................................................................. 211 刽子手游戏 ......................................................................................... 211 试一试 8-7 .................................................................................. 216 分数运算教学工具 ............................................................................. 217 试一试 8-8 .................................................................................. 222 本章小结 ........................................................................................ 222 练习题 ........................................................................................... 222 第9 章 列表.................................................................................. 224 Scratch 的列表 .............................................................................. 225 创建列表 ............................................................................................. 225 试一试 9-1 .................................................................................. 227 列表的积木 ......................................................................................... 228 添加和删除 ......................................................................................... 228 插入和替换 ......................................................................................... 228 获得列表中的变量 ............................................................................. 229 试一试 9-2 .................................................................................. 230 包含积木 ............................................................................................. 230 边界检查 ............................................................................................. 230 动态列表 ........................................................................................ 231 向列表填充用户输入 ......................................................................... 231 绘制柱状图 ......................................................................................... 233 试一试 9-3 .................................................................................. 236 数字列表 ........................................................................................ 236 寻找最值 ............................................................................................. 236 试一试 9-4 .................................................................................. 237 计算平均数 ......................................................................................... 237 试一试 9-5 .................................................................................. 238 搜索和排序 .................................................................................... 238 线性搜索 ............................................................................................. 238 频数统计 ............................................................................................. 239 试一试 9-6 .................................................................................. 241 冒泡排序 ............................................................................................. 241 试一试 9-7 .................................................................................. 243 寻找中位数 ......................................................................................... 244 Scratch 项目 .................................................................................. 245 我是诗人 ............................................................................................. 245 试一试 9-8 .................................................................................. 246 四边形分类游戏 ................................................................................. 246 试一试 9-9 .................................................................................. 248 数学魔法师 ......................................................................................... 249 试一试 9-10 ................................................................................ 252 花的结构测验 ..................................................................................... 252 试一试 9-11 ................................................................................ 254 其他应用程序 ..................................................................................... 254 本章小结 ........................................................................................ 254 练习题 ........................................................................................... 255 附录A 分享与合作........................................................................ 256 创建 Scratch 账号 ......................................................................... 256 使用书包功能 ................................................................................ 259 创建项目 ........................................................................................ 261 创建新的项目 ..................................................................................... 261 改编项目 ............................................................................................. 262 项目页 ................................................................................................. 262 分享项目 ............................................................................................. 263