欢迎来到编程小宇宙!/ Welcome to the Programming Universe!
你有没有试过自己做一个会动的动画?或者设计一个只有你能通关的小游戏?甚至让乐高机器人帮你递个小零食?这些好玩的事情,其实都可以通过编程(Programming)来实现哦!
编程听起来好像是很高深的东西,只有戴着眼镜的大人才能学?其实完全不是!编程本质上就是给你身边的电子设备、智能玩具、机器人当“小指挥官”:你发出一条条清晰的指令,它们就会乖乖照做。比如你让智能音箱放儿歌,对扫地机器人说“去客厅打扫”,甚至玩《神庙逃亡》的时候控制角色跳跃、转弯,本质上都是在和“编程”打交道——你发出的指令,就是程序(Program)的一部分哦!
1.1 编程能做什么?/ What Can Programming Do?
小朋友的日常生活里,早就藏着好多编程做出来的有趣东西啦!不信你看:
- 你看的动画片《小猪佩奇》《超级飞侠》,每一帧画面的移动、人物的对话,都是程序员叔叔阿姨用编程做出来的;要是你学会了编程,还能自己做专属的动画小故事,讲给你身边的小伙伴听呢!
- 你玩的《我的世界(Minecraft)》《蛋仔派对》这类游戏,角色怎么跑、怎么跳、遇到障碍物怎么反应,背后都是成千上万条编程指令在运行;等你学会了,还能自己设计关卡,做只有你能通关的专属游戏!
- 还有学校科技节上看到的会走路的乐高机器人、会抓东西的机械臂,也是用编程控制的——你可以让机器人帮你送文具给同学,让它帮你把掉在地上的橡皮捡起来,是不是特别酷?
- 甚至你给好朋友做的电子生日贺卡,点一下就会播放生日快乐歌、跳出卡通动画,也是用编程做出来的哦!
你看,编程不是枯燥的代码和公式,而是把你脑洞大开的想法变成真的“魔法棒”!那问题来了:怎么才能学会编程,用好这根魔法棒呢?这就需要先了解一个非常重要的能力——计算思维(Computational Thinking)。
1.2 什么是计算思维?/ What is Computational Thinking?
你可能会好奇:“我平时整理书包、搭乐高、做手工,也没觉得自己在用什么计算思维呀?” 其实呀,计算思维就像你每天都会用的“隐形超能力”,只是你没注意到它而已!它是像计算机科学家一样思考问题、解决问题的思维方式,核心有5个小能力,我们一个一个来看,你会发现你早就会用啦!
```mermaid graph LR A[计算思维<br>Computational Thinking] --> B[分解问题<br>Decomposition] A --> C[模式识别<br>Pattern Recognition] A --> D[抽象<br>Abstraction] A --> E[算法设计<br>Algorithm Design] B --> F[把大问题拆成小问题,逐个击破] C --> G[发现事物规律,用规律快速解决问题] D --> H[抓住核心,忽略不必要的细节] E --> I[设计一步步执行的固定步骤] ```
1.2.1 分解问题:把大任务拆成小任务 / Decomposition: Break Big Tasks into Small Ones
你有没有搭过特别大的乐高城堡?要是有几百块积木,你肯定不会一次性把所有积木都堆上去,而是先搭底座,再搭城墙,接着搭塔楼,最后装饰小窗户和旗帜,把“搭城堡”这个大任务拆成一个个小任务,做起来就简单多啦!这个把复杂大问题拆成小问题的过程,就是分解问题(Decomposition)。
再比如老师让你做一张“我的家乡”主题手抄报,你也会先拆任务:先找家乡的照片,再画风景,接着写介绍文字,最后涂色装饰,不会一上来就乱画,这就是分解问题的能力呀!
1.2.2 模式识别:找规律解决问题 / Pattern Recognition: Find Patterns to Solve Problems
你玩过“猜数字”的游戏吗?对方心里想一个1-100之间的数字,你每次猜一个,对方会告诉你“大了”“小了”还是“对了”。玩了几次之后,你是不是会总结出规律:如果对方说“大了”,下次就猜更小的数;说“小了”就猜更大的数,这样猜几次就能猜中?这个发现“大小规律”的过程,就是模式识别(Pattern Recognition)。
再比如你背乘法口诀的时候,发现“一一得一,一二得二,一三得三”的规律,所有“1乘几”的结果都是几,背的时候只要记这一个规律,不用一个一个背,也是模式识别哦!
1.2.3 抽象:抓住核心,忽略无关细节 / Abstraction: Focus on What Matters
你有没有画过画?要是画一只猫,你肯定不会把猫的每一根毛、每一处皮肤纹理都画出来,只要画出尖耳朵、长尾巴、翘胡须,别人一眼就能认出这是猫,不用画得和真猫一模一样也能认出来。这个忽略不必要的细节、抓住事物核心特征的过程,就是抽象(Abstraction)。
再比如你去动物园看动物,不用记住每种动物的所有特征,只要记住“猫是喵喵叫的,狗是汪汪叫的,老虎有条纹”,就能分清它们,也是抽象的能力哦!
1.2.4 算法设计:做事情的固定步骤 / Algorithm Design: Fixed Steps to Get Things Done
你有没有注意过自己早上起床的流程?是不是先掀开被子,再穿上衣服,接着刷牙洗脸,最后吃早饭?这个固定的、按顺序执行的步骤,就是你的“起床算法(Algorithm)”——只要按这个步骤走,你就能顺利准备好去上学,不会忘事。
再比如你玩走迷宫的游戏,是不是会先选一条路往前走,遇到死胡同就退回来换另一条路,这个“选路→试错→调整”的固定流程,也是算法哦!
你看,计算思维的这四个小能力,你天天都在用!那计算思维和编程有什么关系呢?其实编程就是练习计算思维的最佳工具:就像你练武术用剑、练游泳用水一样,计算思维是你脑子里的“解决问题超能力”,而编程是帮你把这个能力练得越来越强的“训练器材”。你脑中的想法,
你脑中的想法,只要拆成一个个小步骤,就能变成让电脑、机器人乖乖执行的程序,这就是编程和计算思维的关系啦!
哦对了,你可能会问:“我要学两种编程语言吗?会不会很难呀?” 完全不会!我们这本书特意选了Scratch和Python两种最友好的编程工具搭配着学,就像学做菜先玩食材拼图,再学真的炒菜一样,循序渐进,一点都不难~
1.3 为什么选Scratch和Python?/ Why Scratch and Python?
Scratch是美国麻省理工学院(MIT)媒体实验室专门为8-16岁的小朋友设计的图形化编程工具,你完全不用记复杂的英文代码,只要像搭乐高一样把不同颜色的“积木”拖在一起,就能做出动画、游戏、互动故事,全世界有超过1亿小朋友都在用Scratch创作,它的社区里还有好多其他小朋友分享的有趣作品,你可以参考、修改,甚至和世界各地的朋友一起做项目哦!
而Python是现在全世界最受欢迎的文本编程语言之一,它的语法特别简单,读起来就像英语句子一样好懂,而且功能超级强大:你可以用它做人工智能聊天机器人、爬取你喜欢的动漫图片、做自己的个人网站、分析你收集的奥特曼卡片数据,甚至还能控制无人机、机器人呢!学会了Python,你就能把脑洞中的想法变成真正能用的
你脑中的想法,只要拆成一个个小步骤,就能变成让电脑、机器人乖乖执行的程序,这就是编程和计算思维的关系啦!
哦对了,你可能会问:“我要学两种编程语言吗?会不会很难呀?” 完全不会!我们这本书特意选了Scratch和Python两种最友好的编程工具搭配着学,就像学做菜先玩食材拼图,再学真的炒菜一样,循序渐进,一点都不难~
1.3 为什么选Scratch和Python?/ Why Scratch and Python?
Scratch是美国麻省理工学院(MIT)媒体实验室专门为8-16岁小朋友设计的图形化编程工具,你完全不用记复杂的英文代码,只要像搭乐高一样把不同颜色的“积木”拖在一起,就能做出动画、游戏、互动故事。麻省理工的叔叔阿姨设计Scratch的初衷,从来不是培养“程序员”,而是让每个孩子都能用编程表达自己的想法、发挥创造力——全世界有超过1亿小朋友都在用Scratch创作,它的社区里还有数不清的其他小朋友分享的有趣作品,你可以参考、修改,甚至和世界各地的朋友一起做项目哦!
而Python是现在全世界最受欢迎的文本编程语言之一,它的语法特别简单,读起来就像英语句子一样好懂,而且功能超级强大:你可以用它做人工智能聊天机器人、爬取你喜欢的动漫图片、做自己的个人网站、分析你收集的奥特曼卡片数据,甚至还能控制无人机、机器人呢!学会了Python,你就能把脑洞中的想法变成真正能用的工具,甚至解决生活中的小问题啦!
这两种工具搭配起来学,就像学功夫先练扎马步、再学招式一样:Scratch是你的“编程魔法启蒙玩具”,你用它玩的时候,不知不觉就学会了“什么是事件、什么是循环、什么是条件判断”这些编程最核心的逻辑;等你把这些逻辑都玩熟了,再学Python的时候,就会发现“哦!原来Scratch里的积木,换成英文就是Python代码呀!”完全不会被陌生的英文代码吓到,学起来特别快。
不信你看这个对比:Scratch里“让角色说‘你好’2秒”的紫色积木,对应的Python代码就是`sprite.say("你好呀", 2)`,逻辑完全一样,只是把积木块换成了英文单词而已。你已经在Scratch里把逻辑玩得滚瓜烂熟了,学Python的时候只要“认字”就行,是不是特别简单?
1.4 初识Scratch——你的第一个编程伙伴 / Meet Scratch: Your First Programming Partner
亲爱的小探险家,接下来就让我们一起推开Scratch的大门,认识你的第一个编程伙伴吧!首先你要打开Scratch的官网`scratch.mit.edu`,点击右上角的“创作(Create)”按钮,就能进入编辑界面啦;如果你家里装了Scratch离线版,只要双击桌面上的小猫图标就行。
第一次打开Scratch,你可能会看到好多按钮和区域,别慌!我们一个一个认识,就像认识你的文具盒一样,每个地方都有用哦:
```mermaid graph TD A[Scratch 编辑界面] --> B[顶部工具栏<br>Top Toolbar] A --> C[舞台区<br>Stage(右侧)] A --> D[角色区<br>Sprite List(右下角)] A --> E[积木区<br>Blocks Palette(左侧)] A --> F[代码区<br>Coding Area(中间)] B --> B1[绿旗:运行程序] B --> B2[红圆:停止程序] B --> B3[全屏:放大舞台] C --> C1[展示动画、游戏的“大屏幕”] D --> D1[列出所有角色、背景的列表] E --> E1[所有编程积木的“魔法盒子”] F --> F1[你搭积木的“工作台”] ```
1.4.1 认识Scratch的四大核心区域 / Know the 4 Core Areas of Scratch
① 舞台区(Stage)——你的作品展示大屏幕
舞台区就是Scratch界面最右边的大块白色区域,你做的动画、小游戏、互动故事,都会在这里显示出来。舞台区右上角有三个小按钮:绿旗是“开始运行程序”,红圆是“停止程序”,最右边的箭头是“全屏模式”,点一下就能让舞台占满整个屏幕,看起来更清楚。
② 角色区(Sprite List)——你的角色储物柜
舞台区下方的列表就是角色区,里面列着当前你所有的“角色(Sprite)”——也就是你动画里的人物、道具、背景。默认情况下,Scratch会给你一只橙色的小猫,名字叫“小橘(Scratch Cat)”,它是Scratch的官方吉祥物哦!你可以点击角色区上方的“选择一个角色”按钮,从库里选奥特曼、艾莎公主、小恐龙、甚至食物、家具当角色,也可以自己画一个专属角色!
③ 积木区(Blocks Palette)——你的魔法积木盒
界面最左边的彩色列表就是积木区,里面分了好多“分类(Category)”,每个分类都是同一种颜色的积木,代表不同的功能:
- 黄色是**事件(Events)**积木:相当于“触发器”,告诉Scratch“什么时候开始执行程序”,比如“当绿旗被点击”“当按下空格键”
- 蓝色是**运动(Motion)**积木:控制角色怎么动,比如“移动10步”“向右转15度”“跳到随机位置”
- 紫色是**外观(Looks)**积木:控制角色的样子,比如“说‘你好’2秒”“切换颜色”“变大10%”
- 橙色是**声音(Sound)**积木:控制音效,比如“播放‘喵喵’声”“弹奏音符”
- 还有控制(Control)、侦测(Sensing)、运算(Operators)、变量(Variables)等分类,以后我们会慢慢学到。
④ 代码区(Coding Area)——你的积木工作台
界面中间的大块空白区域就是代码区,你从积木区拖出来的积木,都要放在这里搭在一起。Scratch的积木设计得像乐高一样,只有形状匹配的积木才能吸在一起,比如“当角色被点击”的顶部是凸出来的,就只能接在别的积木的底部凹槽里,这样你就不用担心积木搭错顺序啦!
1.4.2 第一个互动小项目:点击小猫,让它动起来说话 / First Project: Click the Cat to Make It Move and Talk
是不是已经等不及要动手做项目了?接下来我们就用刚刚认识的四个区域,完成第一个超简单的互动小项目:点击小猫,它往前走10步,然后说“你好呀!我是编程小能手小橘!”
我们一步一步来,跟着做哦: 1. 找触发器积木:先点左侧积木区的黄色“事件(Events)”分类,找到“当角色被点击(when this sprite clicked)”积木,把它拖到中间的代码区。你看,这块黄色的积木就是“开关”,只有点了小猫,后面的指令才会执行哦! 2. 加移动指令:再点左侧积木区的蓝色“运动(Motion)”分类,找到“移动10步(move 10 steps)”积木,拖到“当角色被点击”积木的下面,你会看到它们“咔哒”一声吸在一起了!就像搭乐高一样,对的积木会自动扣紧。 3. 加说话指令:最后点左侧积木区的紫色“外观(Looks)”分类,找到“说‘你好!’2秒(say 'Hello!' for 2 seconds)”积木,拖到“移动10步”积木的下面,也让它吸在一起。
现在你的代码区是不是有三块积木排成一列了?是不是特别简单?接下来就是见证奇迹的时刻啦:点击舞台区里的橙色小猫——你看!小猫往前走了10步,头顶还冒出一个白色的气泡,写着“你好呀!我是编程小能手小橘!”,2秒之后气泡就消失啦!
【💡 小探险家提示(电子版侧边栏/纸书彩色标注)】 如果积木搭错了,Scratch会发出“咔哒”的提示音哦!只要把积木拖回左侧的积木区,就可以重新搭,不用怕出错~ 要是小猫点了没反应,先检查黄色的事件积木有没有搭,积木之间有没有空隙,有空隙的话挨紧就行啦!
1.4.3 小探险家第一次自由创作 / First Free Creation for Little Explorers
你已经完成了第一个编程项目,是不是特别有成就感?现在你可以自由修改你的项目,玩出更多花样哦:
- 把“移动10步”里的10改成20,点击小猫,它会走得更远啦!
- 把“说‘你好!’2秒”里的文字改成你自己的名字,比如“我是XXX”,时间也可以改成5秒,气泡会显示更久哦!
- 点角色区上方的“选择一个角色”按钮,把小橘换成你喜欢的角色,比如奥特曼、艾莎公主、小恐龙,做专属的互动动画!
- 试着加一块“切换颜色效果”的积木(在紫色外观分类里),放在移动积木的后面,每次点击小猫,它的颜色就会变一次,是不是像变色龙一样酷?
【❓ 小探险家疑问箱】 问:能不能让小猫点一下就跳起来呀? 答:当然可以!你可以在移动积木后面加一块“将y坐标增加10”的积木(蓝色运动分类里),y坐标就是角色的上下位置,增加10就会往上跳,是不是特别简单?
问:我做了好几个项目,怎么保存呀? 答:点顶部工具栏的“文件(File)”按钮,选择“保存到你的电脑(Save to your computer)”就行,下次打开就能接着玩啦!
1.5 这个项目里藏着的计算思维 / Computational Thinking in This Project
亲爱的小探险家,你知道吗?你刚刚做的这个超简单的点击小猫项目,已经用到了我们之前讲的所有计算思维小能力哦!我们来一起找一找: 1. 分解问题(Decomposition):你要完成“点击小猫互动”的任务,没有一上来就乱搭积木,而是先拆成三个小任务:①加点击触发的开关;②让小猫移动;③让小猫说话,逐个完成之后再拼在一起,这就是分解问题的能力呀! 2. 模式识别(Pattern Recognition):你会发现所有Scratch里的互动项目,第一步都要加黄色的事件积木,这是固定的规律,以后你做点击、按键盘的互动项目,都会先找事件积木,这就是模式识别~ 3. 抽象(Abstraction):你不用管小猫的图片是怎么画出来的,也不用知道Scratch是怎么让角色动的,只要知道“小猫是一个可以点击、可以移动、可以说活”的角色就行,忽略掉所有没用的技术细节,这就是抽象的能力! 4. 算法设计(Algorithm Design):你搭积木的顺序就是一套完整的算法:先触发点击→再移动→再说话,按这个顺序执行,就能得到你想要的效果,要是顺序换一下,比如先说话再移动,也是可以的,只要你设计的步骤是对的就行~ 5. 评估(Evaluation):做完项目你点击小猫看看效果,要是觉得走得太短,就把步数改成20,要是觉得说话时间太短,就改成5秒,这个检查效果、调整优化的过程,就是评估的能力呀!
你看,你早就已经把计算思维用得炉火纯青了,是不是特别棒?
1.6 Scratch和Python的小秘密 / The Secret Between Scratch and Python
你可能会好奇:“我学Scratch的时候搭积木,学Python的时候写代码,它们有什么关系呀?” 其实呀,Scratch里的每一块积木,都对应Python里的一行代码,逻辑完全一样,只是写法不同而已!就像你说中文和说英文,想表达的意思是一样的,只是换了一种语言:
比如你刚才搭的积木组合: ``` 当角色被点击 移动10步 说 "你好呀!我是小橘!" 2秒 ``` 对应的Python代码(等你学到第8章就会写啦)是这样的: ```python @sprite.on_click def on_click(): sprite.move(10) sprit