Scratch少儿编程高手的7个好习惯

978-7-115-55257-0
作者: 艾叔文一可
译者:
编辑: 李宁

图书目录:

详情

Scratch 是现今使用非常广泛的一种少儿编程语言。初学者在学习Scratch 时,往往注重功能的实现,忽略好的编程习惯的养成。本书设计了5个用于养成好习惯的Scratch 编程项目,在难度和复杂程度上依次递进,并设置有专门的编程习惯养成环节,来有效地帮助初学者快速养成编程好习惯。 本书共分6 章。第1 章介绍Scratch 编程中的7 个好习惯分别是什么,各有什么作用。第2 ~ 6 章通过5 个精选的项目—新年贺卡、神奇的数字钢琴、接苹果游戏、吃小鱼体感互动游戏、海洋保卫战,由浅入深地讲解Scratch 编程需要掌握的知识点,并反复强化这7 个编程好习惯。每个项目被分解成若干个子任务,每个子任务的输出就是一个独立的程序。每个子任务计划1 天的完成时间,共计21 天。初学者在按照书上的步骤完成程序的同时,就能够潜移默化地养成良好的编程习惯。 本书适合对少儿编程感兴趣的青少年和各个年龄段的初学者阅读,也适合家长和教师用作指导青少年进行程序设计的辅导用书。

图书摘要

智识未来

Scratch少儿编程高手的7个好习惯

艾叔 文一可 编著

李明威 审校

人民邮电出版社

北京

图书在版编目(CIP)数据

Scratch少儿编程高手的7个好习惯/艾叔,文一可编著.--北京:人民邮电出版社,2021.4

(智识未来)

ISBN 978-7-115-55257-0

Ⅰ.①S… Ⅱ.①艾…②文… Ⅲ.①程序设计—少儿读物 Ⅳ.①TP311.1-49

中国版本图书馆CIP数据核字(2020)第220622号

◆编著 艾叔 文一可

审校 李明威

责任编辑 李宁

责任印制 王郁 陈犇

◆人民邮电出版社出版发行 北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 https://www.ptpress.com.cn

临西县阅读时光印刷有限公司印刷

◆开本:690×970 1/16

印张:12.75  2021年4月第1版

字数:202千字  2021年4月河北第1次印刷

定价:59.90元

读者服务热线:(010)81055410 印装质量热线:(010)81055316

反盗版热线:(010)81055315

广告经营许可证:京东市监广登字20170147号

内容提要

Scratch是现今使用非常广泛的一种少儿编程语言。初学者在学习Scratch时,往往注重功能的实现,忽略好的编程习惯的养成。本书设计了5个用于养成好习惯的Scratch 编程项目,在难度和复杂程度上依次递进,并设置有专门的编程习惯养成环节,来有效地帮助初学者快速养成编程好习惯。

本书共分6章。第1章介绍Scratch 编程中的7个好习惯分别是什么,各有什么作用。第2~6章通过5个精选的项目—新年贺卡、神奇的数字钢琴、接苹果游戏、吃小鱼体感互动游戏、海洋保卫战,由浅入深地讲解Scratch 编程需要掌握的知识点,并反复强化这7个编程好习惯。每个项目被分解成若干个子任务,每个子任务的输出就是一个独立的程序。每个子任务计划1天的完成时间,共计21天。初学者在按照书上的步骤完成程序的同时,就能够潜移默化地养成良好的编程习惯。附录是对Scratch编程基本概念和基本操作方法的介绍。

本书适合对少儿编程感兴趣的青少年阅读,也适合家长和教师用作指导青少年进行程序设计的辅导用书。

前言

巴金说:“孩子成功教育从好习惯的培养开始。”本书就是一本培养好的编程习惯的少儿编程用书。它不满足于只教大家一些Scratch编程技巧,也不满足于只教大家做几个Scratch小游戏,而是通过21天的训练,帮助大家养成Scratch编程好习惯,搭起一座通向编程高手的桥梁。

“编程习惯”是指编程中的自发行为。根据10多年的研发和高校教学经验,艾叔发现“编程习惯”是决定一个人在编程道路上能否走远的一个关键因素。初学者往往注重功能的实现,而忽略了好习惯的养成,这很容易养成一些不好的编程习惯。由于这些不好的习惯是自发的行为,因此个人很难察觉,更不用说纠正了,久而久之,就会对编程产生非常不利的影响。

对此,艾叔在《计算机教育》学术期刊上发表了《高效程序设计的七个习惯》,并在教学实践中应用,取得了很好的效果。在随机选取的22名本科生中,获得毕业设计良好及以上的有20人,获得全国软件大赛一等奖及以上的有9人次,二等奖有7人次,还有多人获得多项大学程序竞赛奖。2015年,4名本科生参加首届全国高校云计算应用创新大赛,与14支来自“985”“211”大学的博士、硕士参赛队同场竞技,获得大赛最高奖—特等奖,新华日报和网易新闻等对此进行了报道。

从2018年开始,艾叔开始教女儿学习Scratch编程。不同的教学对象,在编程习惯的养成上有很大的不同。大学生只需要明白什么是好的编程习惯,理解这些习惯的应用原则、应用场景和注意点之后,就可以将它们自觉地应用到编程实践中,慢慢形成习惯;而对于小学生,由于他们理解力、自主性和自律程度与成人存在差异,光明白什么是好的编程习惯远远不够,还需要在教师的指导下,反复实践和刻意练习,才能养成这些好的编程习惯。为此艾叔总结出Scratch少儿编程的7个好习惯,并专门设计了5个用于习惯养成的编程项目,它们在难度和复杂度上依次递增,并设置了专门的编程习惯养成环节,可以有效地帮助大家快速养成编程好习惯。

本书共分为6章。第1章“编程高手的7个好习惯”介绍Scratch编程中的7个好习惯分别是什么,各有什么作用;第2章“项目一:新年贺卡”是一个入门程序,将实现一个多功能的新年贺卡;第3章“项目二:神奇的数字钢琴”将实现用键盘模拟琴键,打造一架数字钢琴;第4章“项目三:接苹果游戏”将实现用鼠标控制一个大碗去接住苹果树上不断掉落的红苹果,同时还要避免接到绿苹果,否则会扣分;第5章“项目四:吃小鱼体感互动游戏”是一个非常独特的游戏,玩家在摄像头前做出动作,就可以控制游戏中的河豚去吃掉小鱼,非常好玩;第6章“项目五:海洋保卫战”是所有项目中最复杂、工作量最大的游戏,一共有3关,我们将实现玩家操控小鱼丽丽发射炮弹打击海底恶霸小鲨鱼和章鱼怪,完成保卫海洋的任务。最后的“附录”介绍Scratch编程的基本概念和Scratch 3.0编程工具的基本操作方法,Scratch初学者可以先学习此部分内容。

本书每个项目被分解成若干个子任务,每个子任务的输出文件就是一个独立的程序。每个子任务计划1天的完成时间,共计21天。这么做的依据是行为心理学中的21天效应,同时子任务的个数也正好是21个。每个子任务中均设置了编程习惯养成环节,帮助大家在编程的同时进行编程习惯的养成训练,每节末尾还会总结本节学习到的编程好习惯。

学习本书的方法非常简单,只需要根据书上的步骤完成当天的内容即可。如有不清楚的地方可以及时和艾叔联系。所有的习惯养成练习都融合在实践操作中,按照书上的步骤完成这些实践操作就可以潜移默化地养成良好的编程习惯。

本书由艾叔和文一可共同完成,其中艾叔完成大纲的拟定和文字的撰写,文一可完成了书中大部分程序代码的编写和所有程序的验证,还录制了所有程序介绍视频,并提供了游戏设计的很多创意。

这是一个“软件吞噬世界”的时代,绝大部分事物都和软件相关。云计算、大数据和人工智能等新技术都和软件编程密切相关。大家能够在这么小的年纪就主动接触编程,这本身就是一件非常有前瞻性和值得鼓励的事情。

然而,编程学习的道路从来都不是平坦的,而是充满了艰难险阻,编程习惯就是其中最大的敌人。它不易察觉,而又影响巨大。就如同一束光,如果在起步阶段就有偏离,那么走得越远,偏差就越大,纠正的代价就越大。编程习惯不同于天赋,也不同于其他客观条件,这是一件靠自身刻意练习就完全可以做到的事情。很多有潜力的孩子往往因为习惯问题在编程道路上半途而废,实在是可惜。希望本书能够在编程起步阶段,帮助大家沿着正确的方向前进,走得越来越远。

感谢长沙长郡双语实验中学的李明威老师不辞辛苦,热心为本书担任审校。李老师作为长沙市教育学会中学信息技术专业委员会理事、长沙市第三届信息技术名师工作室名师,他从专家的角度,为本书提出了许多宝贵的建议,在此表示衷心的感谢!

感谢人民邮电出版社的李宁编辑,在长达数月的时间内,我们就本书的细节进行了多次细致而又高效的交流。正是由于她专业、热情和不辞辛苦的付出,才有了今天这本书,在此表示衷心的感谢!

感谢一直以来关心和帮助我成长的家人、老师、领导、同学和朋友们!

书中或有疏漏甚至错误之处,大家在阅读的过程中有任何疑问,可以通过下面的方式联系我们。

扫码添加作者微信,和作者交流。

扫码关注本书作者公众号,获取额外学习资源。

艾叔

2020年8月

第1章 编程高手的7个好习惯

编程是什么?

编程就是和电脑(计算机)说话,就像聊天一样,把我们的想法告诉电脑,然后让电脑去实现。

电脑是我们的好伙伴,它会忠诚地执行我们跟它说的每一句话,永不疲倦且极少出错。我们可以利用编程控制飞船登陆月球和火星,可以利用编程做出各种好玩的游戏,可以利用编程控制机器人去完成各种危险的任务,还可以利用编程控制汽车实现无人驾驶。总之,编程为我们的生活提供了许多便利,更重要的是,我们可以利用编程把世界变得更加美好。

那么如何才能成为一个编程高手呢?

艾叔的秘诀是,编程要从养成好的编程习惯开始

编程习惯是我们在和电脑说话的过程中无意识的自发行为。例如有的人习惯于一接到任务就动手编程,有的人则习惯于先思考再动手编程;有的人习惯于在同一份代码上从头改到尾,有的人则习惯于修改前先复制一份原来的代码。这些自发的行为我们平时很难察觉,但它们对我们的编程之路有着非常重要的影响。

艾叔接触和培养了很多大学生编程高手。他们有的在全国编程大赛中拿到了特等奖;有的完成了水平很高的编程作品,被评为大学的优秀毕业设计;还有的因为编程的特长为自己考取名牌大学的硕士研究生或博士研究生而加分。对于这些编程高手,艾叔发现他们不一定都是最聪明的,但他们身上都有一个共同点,那就是他们都有着很好的编程习惯。为此艾叔归纳和总结出了7个编程好习惯,具体描述如下。

我们会在接下来的章节中详细解释上述7个好习惯分别是什么,各有什么用。我们还按照由易到难、从简单到复杂的顺序设计了5个编程项目,分别是“新年贺卡”“神奇的数字钢琴”“接苹果游戏”“吃小鱼体感互动游戏”和“海洋保卫战”。每个项目都设置了上述7个习惯的养成练习,所有项目共分为21个子任务,每天完成1个子任务,共计21天,从而帮助大家养成良好的编程习惯。

有关“项目”的定义,请参考附录A.1节的内容。

我们要和电脑说话,让电脑按照我们的想法工作,就要选择一种编程语言,而Scratch就是其中一种。Scratch编程就像搭积木那样简单,即使是低年级的小朋友也可以很快学会。因此,本书将使用Scratch编程并进行编程习惯的养成练习,下面我们将对这7个编程习惯进行详细阐述。

如果你对Scratch还不熟悉,或者想了解Scratch的更多信息,那么可以先阅读附录的内容。

1.1 先分析再编程

是指我们在拿到一个编程任务时,不要急于动手编程写代码,而要先分析以下3个问题。

1.编程任务要实现哪些功能

我们在脑海中先想象该编程任务完成后的使用场景,对这个编程任务进行分解,得出它有哪些功能模块。如果这个编程任务有多个功能模块,我们还可以画出功能模块图。例如我们对“新年贺卡”程序进行分析,得到的功能模块图如图1-1所示。

这个分析过程非常重要,它使我们完成了对编程任务的检查、确认、设计和分解,同时还产出了文字和图片资料,这样我们后续在编程的时候,就不会漏掉或遗忘某个功能模块。此外,还可以基于这些资料随时完善设计。如果这个编程任务需要多个人完成,那么这些资料就是大家交流和编程实现的基础。

如果用专业术语来描述,这个过程属于软件开发中的“概要设计”。

2. 最重要的功能是什么

最重要的功能是指编程任务中必不可少的功能模块,我们通常采用排除法进行推断。例如,在分析图1-1中最重要的功能时就可以采用排除法,过程如下。

第一个功能是“闪烁的星空背景”,我们把它去掉后该程序还是贺卡程序,只是贺卡不闪烁了而已,因此它不是最重要的功能。

第二个功能是“嘴巴会动的小姑娘”,它会让贺卡看起来更加生动,但把它去掉后该程序还是贺卡程序,因此它也不是最重要的功能。

第三个功能是“祝福语音”,这个挺重要的,要是听不到祝福的声音,该程序就不像贺卡程序了,因此这个功能很重要,暂时保留。

第四个功能是“背景音乐”,这个功能可以让贺卡的新年气氛更浓,但把它去掉后该程序还是贺卡程序,因此它也不是最重要的功能。

第五个功能是“祝福文字”,这个也非常重要。这个功能和“祝福语音”必须要有一个,否则该程序就不像贺卡程序了。不过从效果上来说,听到祝福的声音会更能感受到祝福的温度,因此两者相比,“祝福语音”更重要一些。

使用上面的方法把不是最重要的功能去掉,最后剩下的功能就是我们想要的结果。这种方法叫作排除法,很适合我们在拿不定主意的时候用。

从上面的分析我们可以得出,“新年贺卡”程序中最重要的功能是“祝福语音”。这个分析过程非常重要,它让我们对编程任务所需实现的各个功能印象更深,而且经过对比分析,我们会清楚地知道这些功能的重要程度,从而在编程时注意轻重缓急。

3. 最难实现的功能是什么

我们需要仔细思考每个功能模块的实现细节,找出实现的难点。注意,“最难实现的功能”中的“功能”并不一定指某个功能模块,它也可以是功能模块中的某个功能点。例如在“海洋保卫战”项目中,如何创建多只小鲨鱼并单独计算每只小鲨鱼的生命值,对初学者来说就是一个难点。

总之,这个分析过程非常重要,它让我们完成了各个功能模块的初步实现。我们对完成这个编程任务大概需要多久的时间、难点有哪些、难度有多大等具体问题会有更清晰的认识,便于我们在编程中对时间、任务和人力进行更合理的安排。如果这个功能很难又很重要,那么我们就要全力以赴,想尽一切办法去攻克它;如果它不是最重要的,我们就可以先把它放在一旁,暂不实现,在平时的学习中关注攻克它的方法。

我们从学习编程开始,就要刻意练习上述分析过程,以养成的好习惯。千万不要为了图方便或者追求速度,一接到任务就动手编程,这样会导致我们后续在完成稍微复杂些的任务时容易出错且效率低下。

1.2 紧盯最重要功能

是指我们要优先实现最重要的功能模块。这样将确保我们能够始终紧盯目标,在有限的时间内完成更重要的事情,避免做无用功。

以图1-1所示的“新年贺卡”程序为例,其最重要的功能是“祝福语音”,因此我们首先要实现的就是这个功能。一旦我们实现了“祝福语音”功能,就构建了贺卡的雏形,后续就可以在此基础上进行改进了。如果我们不紧盯最重要功能,先去实现“闪烁的星空背景”或者“嘴巴会动的小姑娘”等功能,很有可能花了很多时间,付出了很多努力,做出来的程序仍不像一张贺卡。

初学者在编程过程中往往容易受到干扰,对于编程中应该先做什么后做什么缺乏经验,而我们的时间和精力是有限的,这些干扰会导致不好的结果。如果是参加考试或者竞赛,那么我们很难拿到关键分数;如果是完成一个项目,那么我们很可能会延期。因此,我们从一开始学习编程,就要刻意练习在的基础上

1.3 取名要规范

是指我们在对编程中涉及的文件和信息命名时要遵循统一的规则,具体规则如下。

1.命名要有意义

命名要能够清楚地表达取名对象的身份或作用等。图1-2所示的“第一关通过”“第二关通过”“第三关通过”就是项目五“海洋保卫战”中的消息名,这些消息默认的名字是“消息1”“消息2”等,如果不重新命名,我们就不清楚该消息的含义,代码就会变得难以理解且容易出错。

2.命名语言要统一

我们在Scratch编程中可以用中文来命名,也可以用英文来命名。Scratch中同种类型的对象所使用的命名语言要统一,例如我们在项目五“海洋保卫战”中对角色统一用中文来命名,如图1-3所示。

可以使代码更容易理解。反之,如果我们在代码中使用“角色1”“角色2”“变量1”“变量2”等无意义的名字,又或者对某个角色用中文命名,对其他角色又用英文命名,这样代码就会很混乱。一段时间过后,我们自己很可能都看不懂这些代码,别人就更看不懂了。

1.4 万事开头初始化

是指我们在Scratch编程时一旦新建了变量、角色等对象,就要先对它们初始化,再去编写其他代码。例如,我们在项目三“接苹果游戏”中新建了“计分”这个变量,那么我们在游戏开始时就要将该变量设置为0,以确保每次游戏运行时积分的初始值都是0,如图1-4所示。反之,如果我们不做初始化,那么游戏开始时,“计分”变量就还保存着上一次游戏退出时的值,从而导致游戏出错。这样的错误很难被发现,因为每次运行的结果都有可能不同。因此,当我们在Scratch中新建角色、背景和变量等对象时,一定要先对其初始化,养成的好习惯。

1.5 即时验证

是指我们编写完一段代码后要立即验证代码是否能正常运行。例如,我们在项目二“神奇的数字钢琴”中编写完数字键“1”的相关功能代码后,就要立即检查在按数字键“1”后程序是否会发出do的音,如图1-5所示。如果发现程序运行的结果不对,我们就可以立即查找原因并予以纠正。

可以有效防止错误的累积,一旦我们养成这个好习惯,即使编写复杂的程序,我们也能做到尽量不出错。

1.6 及时保存与定期备份

是指当我们编写关键代码或者实现某个功能后,要及时将Scratch项目保存到本地。例如,在项目四“吃小鱼体感互动游戏”中,我们在实现“视频控制河豚移动”功能后,就要将该Scratch项目保存到本地,如图1-6所示。

艾叔特别提醒

及时保存项目文件很重要,因为代码是临时存储在电脑的内存中的,一旦断电或者电脑崩溃,我们辛辛苦苦做的修改就没有了。

除了要及时保存项目文件外,我们还要定期备份。例如,在保存了“吃小鱼-体感互动-001-视频控制河豚移动”项目文件后,我们还要复制该文件到bk文件夹中做一个备份,如图1-7所示。这样即使我们后续不小心损坏了该项目文件,在bk文件夹中也还有一个备份文件。定期备份能够保存该项目各个阶段的代码,一旦程序出现问题,我们还可以查找每个阶段的备份文件。这样既方便定位错误,又不需要从头开始重新编写代码,从而将损失降到最低。

艾叔特别提醒

在实际编程工作中,我们除了要在当前电脑中备份文件以外,还要将该文件备份到其他电脑或者网络中,这样可以大大提升这些文件的可靠性。

1.7 先复制再修改

是指我们在开始新阶段的编程时,要先复制代码,然后在复制的代码上修改,而不要直接在原来的代码上修改。例如,在项目三“接苹果游戏”中,我们要在“接苹果-001-红苹果掉下”项目文件的基础上实现“碗的移动和计分”,那么我们在编程之前要先复制该项目文件,并把文件名改为“接苹果-002-碗的移动和计分”,如图1-8所示。这样,我们修改的是复制得到的“接苹果-002-碗的移动和计分”代码,原来的代码(“接苹果-001-红苹果掉下”)并没有被修改,不管后续怎么修改,之前做的工作都不会受影响。此外,如果我们修改“接苹果-002-碗的移动和计分”代码出了问题,那么我们还可以通过再复制一份“接苹果-001-红苹果掉下”重新编写。

相关图书

全国青少年CSP-J编程竞赛真题解析
全国青少年CSP-J编程竞赛真题解析
青少年编程魔法课堂 Python零基础入门
青少年编程魔法课堂 Python零基础入门
青少年学三维图形化编程
青少年学三维图形化编程
离散的魅力:世界为何数字化
离散的魅力:世界为何数字化
了不起的人工智能
了不起的人工智能
青少年编程魔法课堂 C++图形化创意编程
青少年编程魔法课堂 C++图形化创意编程

相关文章

相关课程