第1章 如何学习编程

Scratch的软件界面与PhotoShop的软件界面就有几分相似。
编程知识的学习只是少儿编程学习中的一小部分。学习流程图,可以掌握描绘编程应用逻辑的能力;学习编程语言语法,可以掌握代码编写的能力。学习顺序结构、循环结构、选择结构、变量、数组、函数等一系列的编程知识和编程技巧,通过运用这些编程知识和编程技巧,可以设计简单的程序,帮助我们解决一些重复性或流程化的工作。



将数学、物理、化学等学科知识运用到一个个实实在在的项目上,融合相关知识来模拟现实场景、解决问题或者进行发明创造。这可以赋予知识更蓬勃的生命力,而不仅仅是停留在纸上作业或考试中。

孩子大部分时间是生活在他律的状态,被管着上课不能交头接耳,被要求作业按时完成,被规定玩游戏不能超时,等等。编程可以很好地将他律变成自律,因为在程序的世界里不需要外人评说,程序本身会直接告诉你对与错,运行的结果也会给出实际反馈。
每一门编程语言都有自己的规则,我们无法讨价还价,程序的运行也会完全按照规则来执行。编程通过严谨的逻辑判断和程序规则帮助孩子不断地提升自律性。通过编程制作项目、设计动作都不是一蹴而就的,它需要一个过程。例如,完成一款自己脑海中设计的作品,需要先进行策划分析编程测试调错优化这一过程,可以给予孩子很好的延迟满足感。
孩子的想象力是无穷的,哪怕是梦境也是一部有趣的动画片。编程可以将孩子的想法结合音乐、绘画通过游戏、动画、模拟等一系列的方式生动地表达出来。创新创造的意识会在孩子不断表达和实现内心想法的过程中得到充分的锻炼和提高。具备了自律性和高效学习能力的孩子,再融合上想象力和创造力,将会是未来极具竞争力的人才。
新课标中明确提出提高孩子们的计算思维,这是一种具有逻辑性和抽象化的利用计算手段科学地解决问题的能力,主要包括4个方面:分层思维、模式识别、流程建设和抽象化。
分层思维·
分层思维帮助我们将大项目拆分成若干个小项目,将复杂的大问题拆解成一个一个的小问题,让复杂的大部分变成容易理解和解决的小部分。通过完成小项目、解决小问题来完成大项目、解决复杂的大问题,使整体变得更加易懂和简单。
如同制作汉堡,乍一看是一个多层级的复杂项目,但是当我们运用分层思维将它拆解后,就会变得更加简单。
首先,将汉堡分层划分出它的组成部分。

然后,完成每一个组成部分,再将各部分组合起来,一个汉堡就做好了。
模式识别·
任何事物都有相似性,模式识别正是教会我们找到事物之间的共性规律。通过总结以往经验并进行类比推理,利用这些相同的规律去解决问题。当我们将大项目、复杂的大问题分解为小项目、小问题后,通常可以在这些小项目、小问题中找到模式和规律。
一个典型的例子就是多个数字的加法。我们都会运算两个数字的小加法,那么把这些小加法组合起来,就可以用相同的加法逻辑来解决更大范围的加法问题。
9+10+8+6+7=?
第一步:先分解为4个式子。
9+10=? ?+8=? ?+6=? ?+7=?
第二步:运用我们掌握的加法逻辑逐个进行计算。
9+10=19 19+8=27 27+6=33 33+7=40
或许上面的每一个加法式子我们之前都没有计算过,但是加法法则的模式和规则是相同的,所以我们可以快速地计算出每个小式子的答案,通过一层一层的计算,得到最终的答案。
流程建设·
流程建设是一步一步解决问题的过程,按照一定的顺序完成一个又一个的任务。设计程序的每一个步骤,编写程序的每一行代码,都是流程建设的过程。
我们已经在日常生活中运用到了流程建设。

比如:今天该去哪儿?

抽象化·
抽象化是关注关键信息,将重要的内容提炼出来,忽略不必要的细节。掌握了抽象化的能力,我们就可以将一个解决方案应用于其他事物中,制定出解决方案的总体思路。
例如,或许我们并不认识所有贝类,也叫不出它们的名字,但是关注到它们都有坚硬的贝壳、柔软的肉质,并生活在水域,因此可以进行抽象化,把它们统一叫作贝类。当我们知道如何烹饪花甲的时候,对于其他贝类,通过它们都是贝类这个关键信息,就可以忽略它们的外形和名字,得出它们能用与花甲相同的方式进行烹饪。
因此学习编程还能培养描述性思维、批判性思维、类比思维、程序思维、逆向思维、发散思维、组合思维、求异求同思维、因果思维、建模思维等跨学科的综合能力。
什么是图形化编程
Scratch图形化编程是一种专门为低龄学童的程序设计语言,使用它可以很容易地创造交互式故事情节、动画、工具,还可以把自己的作品分享给其他人。使用这种计算机编程语言的目的是帮助孩子发展科技特长,培养核心思维,提升思考质量,习惯沟通协作。
与其让孩子玩游戏,不如让孩子创编程。
Scratch图形化编程可以制作实用工具、文艺作品、游戏、动画等的编程工具。一旦掌握了这个工具,孩子就能自由自在地挥洒他们无限的创意,享受创造的乐趣。在中小学的教育中,通过Scratch图形化编程扩展了语文、数学、外语、音乐、体育、科学的教学深度,实现了跨学科学习。
Scratch图形化编程与Java、Python、C、C++、C#不同,因为它的形式不是基于文本的,而是一种可视化的积木式编程。无须输入任何复杂的命令和代码,孩子要做的仅仅是像搭建积木一样搭建程序块。这样的编程模式可以完全避免语法错误,使得孩子能更专注于逻辑思考和程序化的分析。
几乎所有的孩子都会喜欢上Scratch这个软件,并且产生编写程序的欲望。图形化编程不是密密麻麻的英文代码,它是积木式的,没有复杂的语法,有的仅仅是积木一样的凸槽和凹槽。所编即所得,一边写代码,一边看效果。
图形化编程初体验
下面通过几个小例子来看看Scratch程序块是如何搭建的。
案例:一个积木块的程序Scratch

下面这个例子稍微复杂一点。
案例:多个积木块的程序
用一段小程序出一个考题“1+1等于几?”,通过程序判断你的回答是正确的还是错误的。分别给出正确答案和错误答案,看看程序返回的结果是什么。
下面简单地讲解这个程序的积木块组合,逻辑思考部分在这里暂不涉及,将会在后面章节详细讲解。



翻阅秘籍 椭圆形积木块放入椭圆形框中,六边形积木块放入六边形框中,这就是Scratch的语法,形状不匹配是放不进去的。
提示:建议先完成小模块的积木块拼接,再嵌入大模块的积木块程序中。
这里我们先完成“回答=2”积木块的拼接,再嵌入如果……之中。不建议先将等于积木块嵌入如果……之中,再修改成“回答=2”。
建议

不建议






如果你回复的答案是2,小猫咪会告诉你“回答正确!”。
这就是Scratch编程,是不是很神奇,很有趣。
从一个一个的单积木块到复杂的积木块组合,从基础模块到特色模块,都需要不断尝试。单击运行积木块并观察舞台和角色的变化,了解每一个积木块在程序中所起到的作用。
1需要知道每一个积木块所在的位置,但不是一个一个地死记硬背。在编程中一定不能生搬硬套,要理解性记忆,通过尝试、观察、修改、比较来掌握每一个积木块的作用。
2理解每一个模块所对应的含义,然后有针对性地寻找积木块,在这个过程中会很自然地记下所有积木块的位置和功能。
3暂时略过那些看不懂变化也看不懂书中解释的积木块,不需要着急,因为有些知识你还没有学习到。例如运算模块中的平方根,可能你还没有学习到相关数学知识,此时需要跳过这块的学习,到后面结合课堂学习再回过头来体验。
4挑出你能明白作用的积木块,尝试修改其中的一些参数,再观察会有什么变化,并且去总结它的作用。
5掌握了单独积木块的作用后,尝试将自己熟悉的积木块组合到一起,再观察有什么神奇的变化。
6最后有针对性地选择积木块,并将它们组合到一起,实现自己的想法。
右转15度积木块的学习方法

猜测——这是让小猫咪右转。
尝试——单击积木块,看看小猫咪有什么变化。
观察——小猫咪旋转了。
修改——修改积木块中的数字15,继续观察。
总结——这是一个控制小猫咪右转的积木块,数字越大小猫咪旋转幅度越大。
结合——结合数学知识,理解角度的概念和应用。
组合积木块的学习方法

观察小猫咪从单个积木块到组合积木块的变化。如果你已经可以自由组合积木块,并且能达到想要的效果,那么恭喜你已经入门了,基本掌握了简单的积木块。下面需要仔细地跟随本书内容制作一个一个小游戏,培养逻辑思维,提升思考质量。注意要多思考、多观察、多尝试。
如何亲子共学
如果你是一位家长,想教孩子学习编程。那么首先可以把自己当成好奇好玩的孩子,掌握每一个积木块,做一个博学的家长,然后摇身一变成为孩子们的玩伴。
在教学过程中需要特别注意,在你看来十分简单的程序和过程,对于孩子来说或许并不简单,因此需要更多的耐心。此时此刻你不是老师,也不是家长,而是孩子的一个玩伴,陪伴孩子一起探索程序的奥秘,感受程序的神奇,体验游戏的乐趣。在教学过程中,不能灌输理念,应该更多地进行演示,并让孩子自己动手修改程序,观察通过修改程序所带来的变化。

在造型界面,让孩子分别单击两个小猫咪造型,观察舞台中小猫咪的变化。
多次对比不同单击方式带来的效果,让孩子明白,原来造型切换就是这样的。
有时候孩子的学习是“知其然而不知其所以然”的,让他们理解这个事情为什么会这样,不能只是纯粹的概念解释和灌输,而应该让孩子保持对世界的好奇心、想象力以及创造力。因此,这需要我们站在孩子的视角去思考问题、看待问题,减少书面式的告知,让孩子尽量动手尝试,去改变、去创造。
STEM(Science、Technology、Engineering、Mathematics,科学、技术、工程、数学)教育其实是基于标准化考试的传统教育理念的转型,更加注重学习的过程,而不是结果。从本质上来说,要敢于让孩子们犯错,让他们尝试不同的想法,让他们听到不同的观点。与标准化试题相反,我们希望孩子们有与众不同的想法,并且创造能够应用于真实生活的知识。
教学需要注意以下5点:
1联系(Connect),注重学习与现实世界的联系。
2建构(Construct),“玩中学”“做中学”“创中学”,逐渐形成建模思想。
3反思(Contemplate),反思编程过程,更深刻地理解和思考。
4延续(Continue),应用到生活中,去解决一些实际问题,不断挑战和积累。
5过程(Course),注重学习的过程,而不是体现在试卷上的知识结果和作品展示。
第2部分 踏入编程世界
1.界面初体验
双击打开Scratch 3.0软件,清爽的编程界面映入眼帘,这里就是我们尽情编织梦想的地方。

编程界面划分为功能区、积木区、脚本区、舞台区、角色区和背景区,它们就像人体的器官一样有着自己的特性和作用,为编程的正常运转贡献着自己的一份力量。
现在就跟随我一起来探寻它们。只有当你实实在在地看到了它们,才能有更直观的感受和更深刻的记忆。

接下来,我们将迎来新的任务挑战和学习计划,那就是了解每一个区域的特性和作用。
2.功能区

下面让我们逐个看一看,功能区中的每个按钮都蕴含了什么功能。
(1)语言小地球