前 言
我们认为学习编程是每一个人的事,而非仅仅是那些希望成为职业程序员或
计算机科学家的人的事。在学习编程的过程中,人们将学会很多其他事情,他们
能学会解决问题、设计项目和沟通想法等各种策略。
——Mitchel Resnick(麻省理工学院教授、MIT 终身幼儿园小组主任)
我认为每一个人都应该学习如何给计算机编程,因为这教会你如何思考。
——Steve Jobs(苹果公司创始人)
为什么要学习编程?
每个人都知道学习写字的重大意义。我们几乎每天都需要写字,例如给朋友
发短信或微信、写日记、列购物清单等。从小学习写字,这早已被视为理所应当
的事。很少有人会问老师或父母“我长大了并不想当作家,我可以不学写字吗?”
这是因为我们知道写字可以让我们理清思路、组织语言、记录情感、提升思维等。
我们清楚,写字是每一个人都应该掌握的,而非只有作家才需要学习的技能。
从提升思考问题和解决问题的能力这个角度来说,编程与写字非常相似,并
且编程在提升我们解决问题的策略和思维能力方面,比写字所能做到的更为全面
和深刻。就像篇首引用的Mitchel Resnick 和Steve Jobs 的言论那样,编程教会我
们如何思考,所以编程与写字一样,适用于每一个人,而并非只有从事这个职业
的人才需要学习编程。
为什么选择Scratch 来学习编程?
Scratch 是一款由麻省理工学院(MIT)设计开发的少儿编程语言和软件,其 开发团队称为“终身幼儿园团队”(Lifelong Kindergarten Group)。
选择Scratch 来学习编程的第一个理由是零基础要求。因为Scratch 是基于图
形的编程工具,而不像此前存在的各种编程软件都基于文本。这意味着Scratch
编程学习者不需要提前学习大量的程序指令,也不需要过度依赖键盘。因为构成
程序的命令和参数都是通过积木形状的模块来实现的,用鼠标拖动模块到程序脚
本区“搭积木”就可以了。
第二个理由是庞大的网络社区。Scratch 不仅将计算机编程的门槛降至极
低,使学习者能够轻松入门。同时,它还构建了庞大的网络社区。目前全世界的
Scratch 开发者在这个网络社区分享了超过三千万个项目。学习者可以从网络社
区中获得取之不尽的学习资源,也可以在遇到困难时快速地得到帮助,这非常有
助于初学者有效提高编程水平。
为什么选择本书学习Scratch 编程?
本书有两大特色:其一,它是专门为儿童所写的故事编程书;其二,它用丰
富有趣的编程任务和相应的示例程序将复杂抽象的程序思维清晰地呈现出来。
儿童的学习方式与成年人有很大的差别,对成年人有效的教学方式并不一定
适用于十岁左右的孩子。单纯的知识讲解很难让孩子一直保持高度的注意力。本
书充分考虑儿童学习的特点,以故事为线索、以任务为驱动,将编程知识贯穿到
故事和任务中,让少儿阅读者在一种新奇的探索和体验中,不知不觉地掌握软件
编程技能,提升逻辑思维能力。
如果你处于7~14 岁这个年龄段,那么本书非常适合你用来学习Scratch 编程。
同时,即使你已超过14 周岁,本书第11 章至第14 章在软件开发方面的专业讲解,
仍然适合你作为进阶的材料。对7 岁以下的孩子,不建议让孩子单独阅读此书,
可考虑在家长帮助下阅读。
本书的内容是如何组织的?
本书是以主角电小白的时光旅行故事为线索组织全书的内容。“楔子”章为
全书的开端,以电小白向清青老师请教什么是Scratch 这个问题,引出电小白以
“Scratch 编程”为主题的时光旅行。 第1 章,电小白经时光隧道来到古希腊,用Scratch 编程的方式参加当时的
运动会,引导读者掌握Scratch 中的运动类指令的用法。第2 章,通过另一个故
事与场景学习外观类指令,同时结合第一章的知识编写出更为逼真和流畅的动画
程序。第3 章,学习声音类指令集,使用其中的演奏指令弹奏一首儿歌名曲。然
后在第4 章至第10 章,虚构了另外七个故事和场景,先后分别学习了画笔类、
事件类、控制类、侦测类、数据类、运算类和更多积木类的指令集。这10 章内
容侧重于讲解Scratch 软件本身和计算机编程的基础知识。
第11 章至第14 章,侧重于综合运用前十章的基础知识,完成相对复杂的
项目设计、开发、调试等专业软件开发的学习。其中,第11 章从七桥问题引出
数学的图论问题,进而提出图论中另一个经典问题人狼羊菜过河问题,然后用
Scratch 编写人狼羊菜过河问题的求解动画。第12 章分步讲解和实现了古诗词填
空的小游戏,重点涉及了列表变量的使用和字符串处理示范。第13 章开发了使
用交通信号灯控制十字路口车辆交通的模拟动画。第14 章完整地实现了一个具
有多关卡、计分板、生命值、多动画的太空对战游戏。
如何更有效地使用本书?
本书在编排上采用了由易到难、循序渐进的方式。后面的章节常常要用到前
面章节的基础,所以建议严格按章节顺序学习本书内容,层层递进,不断巩固。
为了帮助少儿学习者更易于理解书中内容,本书配套了大量的讲课视频,并
已将视频链接做成二维码置于书内相应位置。在阅读的同时,若遇到有不理解的
问题,建议扫描二维码听讲课视频,以加深理解。
另外,本书中的所有例子程序均已以完整的项目提供。所有项目的代码齐全,
可以直接运行。但建议学习者刚开始先不使用配套程序,而是按书本的任务描述,
独立从零开发,实在困难时再对比配套例程,以达到更佳的学习效果。