Scratch编程入门与算法进阶(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-02 10:38:06

点击下载

作者:程晨

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Scratch编程入门与算法进阶

Scratch编程入门与算法进阶试读:

前言

国务院印发的《新一代人工智能发展规划》中明确指出人工智能成为国际竞争的新焦点,应实施全民智能教育项目,在中小学阶段设置人工智能相关课程,逐步推广编程教育,建设人工智能学科,重视复合型人才培养,形成我国人工智能人才高地。而在人工智能课程当中,对于算法的学习相当重要。

2018年,麻省理工学院(MIT)设计开发的Scratch更新到了3.0版本。相比于之前的Scratch 2.0,Scratch 3.0采用HTML5语言编写,主要使用WebGL、Web Workers和Web Audio JavaScript库。JavaScript是网络浏览器中被广泛支持的语言。与Scratch 2.0需要Adobe Flash支持不同,使用JavaScript的Scratch 3.0不需要任何插件。

Scratch以用法简单著称,使用者通过鼠标拖曳程序块就能够完成程序的设计。很多人都认为它只适合制作一些交互的动画或游戏,不过我经过一些教学实践,发现使用Scratch也能进行算法内容的教学,这大大降低了算法内容教学的年龄门槛,让更低年龄段的学生也能够接触人工智能教育。正是基于这样的实践,才产生了这样一本介绍Scratch的图书。希望大家在接触了Scratch之后能够进一步地了解一些算法的概念。

本书从Scratch基础开始讲起,基本上适用于所有想学习Scratch的人。如果你刚接触Scratch,那么本书的内容会通过一个个实际案例让您进入Scratch的世界;如果您对Scratch已经有了一定的了解,那么后面的算法部分能够让您更深入地了解代码背后的计算理念,从而进一步进入人工智能的大门。

我对于编程的水平有一个阶段性的划分。第一个阶段,刚入门时,只需要完成一个没有分支的固定的动画效果即可。第二个阶段,进一步学习,能够完成分支的代码结构,根据输入的信息完成一些交互的效果。第三个阶段,能够利用变量让程序跳转到不同的部分。第四个阶段,需要理解函数和线程的概念。第五个阶段,理解对象以及对象的属性和方法。第六个阶段,需要完成对数据库的操作。第七个阶段,在能够处理大量数据的基础之上完成一些简单的人工智能算法。本书正是按照这样的层次逐步递进的,不过本书只涉及第一个阶段至第四个阶段的内容,适用于中国电子学会全国青少年软件编程等级考试预备级(1级~4级)。

由于Scratch编程主要靠拖曳程序块完成,为了更适合大家的阅读,本书采用全彩色印刷,书中实例清晰详尽,直观明了。

最后,感谢现在正捧着这本书的您,感谢您肯花费时间和精力阅读本书,由于本书从Scratch入门介绍到了算法,所以示例之间的跨度可能稍有点大,再加上时间有限,书中难免存在疏漏与错误,恳请您批评指正,您的意见和建议将是我巨大的财富。我希望在编程的领域结识更多的朋友。程晨2018年8月第0章 什么是Scratch

Scratch是由麻省理工学院(MIT)设计开发的一款面向青少年的简易编程工具,使用者通过鼠标拖曳程序块完成程序的设计,目前最新的版本是3.0。Scratch 3.0是一个在线版本,使用者不需要安装任何软件,只要打开浏览器就能够创建、编辑和运行项目。

相比于之前的Scratch 2.0,Scratch 3.0采用HTML5语言编写,主要使用WebGL、Web Workers和Web Audio JavaScript库。JavaScript是网络浏览器中被广泛支持的语言。与Scratch 2.0需要Adobe Flash支持不同,使用JavaScript的Scratch 3.0不需要任何插件。

Scratch的官方网站是挂在MIT网站上的。网站界面如下图所示。

基于网络的Scratch更加注重使用者的交流和创意。网站下方有很多网络用户提交的项目,我们可以直接查看这些样例实现的功能,甚至能够看到完整的程序。第1章 角色的控制

零编程基础的孩子独自学习使用Scratch软件可能会有一定困难,最好有老师或家长的指导。Scratch不需要使用者输入代码,所以孩子不需要记住命令,不过不用记住命令并不代表不需要知道命令。Scratch中的命令都是以积木式的程序块来实现的,这些程序块分为10个大类,有100多个功能,包括了实现一个完整程序的每个环节,甚至数组和函数。在老师或家长的指导下,孩子从模仿开始,能接触到条件语句、循环语句和判断语句,能理解参数和命令的区别。

虽然Scratch的入门学习需要相应的指导,但是网上有很多编程风格类似的网站,这些网站会提供一些基于网络的任务和引导,通过一关一关的任务达到编程教学的目的。Code.org就是这样的一个网站,它发起的“编程一小时”活动已经影响了近3亿人。“编程一小时”的项目有很多,单击其中任何一个就能进行在线学习了,这里我选择的是星球大战的主题。

界面中会有对话框和提示气泡指导你完成一个个任务,如果感兴趣,你可以自己尝试一下,上图是将“移动 向右”程序块拖曳到右侧白色的代码区。

它的编程风格和Scratch基本是一样的,而在Scratch中移动的程序块则在分类“动作”当中,对于3.0来说,是在分类“运动”当中(以后的描述以3.0版本为主)。

这里我们可以将“移动10步”程序块拖曳到中间的空白区域来实现角色的移动。上图中界面可以通过单击首页中的“开始创作”按钮来打开。下面系统地介绍一下Scratch中的编程。

整个界面右上角的区域被称为舞台区,舞台区就是最终的展示区,这里会展示程序运行时涉及的角色、背景等内容。在舞台区的最上方有几个按钮,最左边的绿旗是程序执行按钮,单击这个按钮后就会开始执行我们编写的程序。(确切地说,应该是能够执行以绿旗开头的程序,这个稍后在实例中大家会有更直观的体验。)

绿旗旁边的红色八边形是停止按钮,能够停止程序的运行。而右侧的3个按钮是用来调整舞台区大小的,3个按钮分别代表小舞台、大舞台以及全屏。默认情况下是大舞台模式,小舞台模式会比默认的舞台小,如果单击全屏按钮,舞台就会全屏展示。

舞台区的下方是角色区,这里会展示出我们用到的所有角色,其中最右边是背景。中间的区域是代码区,我们通过拖曳方式完成的程序就是放在这里。这个区域其实还有绘图和声音编辑的功能,应用起来要看我们需要进行什么操作。

而选择操作的方式就是在左侧的模块区进行,模块区有3个标签:代码、造型和声音。选择“代码”会列出我们将要用到的所有程序块,而在“造型”和“声音”下,可以通过代码区进行相应的操作,具体的内容将在之后的例子中详细介绍。

假设我们要在Scratch中完成如上图所示的“星球大战”的一关。那就需要让机器人BB8向下走一步,然后向左走一步得到第一个物品,然后再向左、向下移动得到第二个物品,最后向下、向左移动得到最后一个物品。

在角色区中背景和角色之间的底部位置有一个小猫头,猫头的右上角有一个加号。单击这个按钮能够打开一个角色库,大家可以在其中找一个自己喜欢的角色,这里我选的是一个甲壳虫。

此时角色区有两个角色,这两个角色都出现在舞台区。我们先在小猫角色上单击右键选择删除。

接下来就要对甲壳虫进行编程了,首先要将它的方向改为向下。将“运动”中的“面向90方向”程序块拖曳到代码区。单击数字90,在弹出的方向选择图示中调整箭头方向为向下。

这里需要说明,在Scratch中,0是向上的方向,如下图所示,顺时针旋转角度增大,逆时针旋转角度减小。所以0左边是负的,右边是正的,两者分界在180处。

甲壳虫转过来后,我们要让它向前移动(此时就是向下),这时就要将“运动”中的“移动10步”程序块拖曳到代码区,放在第一个程序块的下方。

接下来,按照要求,就要让甲壳虫向左转了,还是拖曳一个“面向90方向”程序块到代码区中,放在前两个程序块之后。不过这里的角度不是选择180了,而是要选择“-90”(向左)。

转向左边之后,再添加一个“移动10步”程序块,就能实现向左移动了。用同样的方式,我们再添加后面的内容。完成后的程序如下页图所示。

当我们不需要转动方向时,就可以省略一个“面向xx方向”程序块。

要让程序运行起来,还需要添加一个“当被点击”程序块。

前面说过,在舞台区有一个绿旗按钮是用来运行程序的,实际上这个按钮是一个“触发开关”,它对应的程序块就是“事件”中的“当被点击”。要想运行程序,就需要把相应的程序块放在“当被点击”的下方。

最后,为了看到程序运行时的动画效果,我们在每一个程序块后面都加了一个“等待1秒”程序块(这个程序块在“控制”当中)。

此时,当我们单击舞台区的绿旗按钮时,就会看到甲壳虫移动。

另外,在Scratch当中,还可以通过向左转或向右转来实现转向。大家如果感兴趣,可以尝试将上图程序中的“面向xx方向”替换为“左转xx度”或“右转xx度”。程序中,左转就是逆时针方向旋转,右转就是顺时针方向旋转。第2章 超人飞行

第1章中介绍了角色的移动和转向控制,其实通过这个功能就能够实现超人飞行的动画效果。角色方面,我们选用飞行的Cat Flying,另外还要添加一个名为“Buildings”的角色。

在这个例子中,我们主要控制的是角色“Buildings”,通过移动它实现小猫飞行的效果。将“Buildings”选中,这次我们先添加一个“当被点击”程序块。

接着将“控制”中的“重复执行”程序块。拖曳到第一个程序块下方,重复执行的功能是保证其中的程序块会不断地循环运行(当我们单击舞台区的绿旗按钮运行程序的时候)。

为了看到小猫向右飞行,我们需要让建筑物从右往左移动,因此程序的功能首先是将建筑物放在屏幕的最右侧,然后移动到屏幕的最左侧。

将“运动”中的“移到x:0 y:0”程序块拖曳到“重复执行”程序块当中。重复执行的程序块与之前用到的程序块不同,之前的都是下方连接其他程序块,而“重复执行”程序块的用法是要将其他程序块放在其中。这样的程序块通常是结构程序块,用来进行判断或重复这样的操作,之后我们会经常用到。“移到x:0 y:0”程序块中有两个需要填写的参数,就是希望移动到的位置的x、y坐标。这里要说一下整个舞台区的坐标系。整个舞台区的中点坐标是(0,0);水平方向为x方向,向左边是减小,向右是增大;垂直方向为y方向,向上是增大,向下是减小。

第一步是要将建筑物放置在最右侧,因为我们希望建筑物看上去是从屏幕外移动进来的,所以这里设置的x坐标是340,y坐标就是建筑物当前的坐标-27。

接着将程序块“在1秒内滑行到x:0 y:0”也放在“重复执行”之内。我们把其中的坐标值设定为最左侧,所以x坐标就变为-340,y坐标保持不变。时间可以调整,时间值越大,小猫的飞行速度越慢。这里我设定的是1.5秒。

这样我们的程序就完成了,运行一下看看效果吧。第3章 派对时间

派对的背景一定不能是白色的了,我们需要在背景库中选择一个好看的背景,这里我选择的是一个有灯光效果的背景。

然后再添加一个跳舞的人“Jamal”。

整体效果如下页图所示。

这里看到角色相比舞台来说比较大,我们可以调整角色区中的大小标签后的参数值,这个值是一个相对的百分比,默认情况下是100,即100%。这里我将角色的大小调整为70。

将角色调整到合适的大小,并摆放在合适的位置。接下来就可以编写程序了。

我们还是先在代码区放置“当被点击”和“重复执行”程序块。

为了让角色变换不同的造型,这次我们要使用“外观”中的程序块。在“外观”中选择“下一个造型”程序块,将其拖曳到“重复执行”程序块当中。

此时我们可以先运行一下程序看看效果。如果你觉得动作变化太快,可以在“下一个造型”程序块之后加入一个“等待1秒”程序块,并将程序块中的时间改为0.5秒。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载