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