快乐编程:青少年思维训练
上QQ阅读APP看书,第一时间看更新

前言

2017年,《国务院关于印发新一代人工智能发展规划的通知》中明确提出“实施全民智能教育项目,在中小学阶段设置人工智能相关课程,逐步推广编程教育”,于是“计算机普及要从娃娃抓起”再一次成为教育界的热点话题,这对于我国从计算机应用大国发展为研发强国具有重要的战略意义。

2008年,我接触到了Scratch软件,当时就被它深深吸引,认为这是一个极好的编程学习辅助软件。在给自己的孩子(小学三年级)试用后,我发现他很快便不满足于模仿教学案例,非常乐于迎接编程挑战。这么多年来,我不断给朋友们推荐这款软件,不时写点课程和案例满足小朋友的学习需求。

Scratch软件简单易用,符合青少年的认知特点,使用它可以轻松地创作出多媒体交互式的程序作品(如游戏、动画片等),特别适合培养青少年的编程思维。Scratch软件能够让孩子们在极短的时间内体会到创作的乐趣,获得成就感,有利于他们保持浓厚的兴趣,将编程学习进行到底。

随着编程教育的热度不断升温,Scratch软件随之成为青少年学习编程的首选。于是,我决定基于自己多年的授课经验,结合青少年的认知水平和心理特点,编写一本超级简单的编程入门书。同时,我希望本书能够激发非计算机科班出身的老师和家长的兴趣,让他们与孩子一起学习编程。当然,和孩子一起挑战编程难题也是其乐无穷的!

本书共15章,希望下面的介绍能够帮助你快速判断本书是否值得购买。

第1章介绍了编程和逻辑思维的关系,建议老师、家长和孩子一起阅读。我希望通过本章的学习,让大家对编程有一些新的认识,树立学习编程的信心。

第2章着重讲解了Scratch软件的工作模式。通过本章的学习,读者能够迅速掌握Scratch软件的基本用法,做到“心中有数”地创作作品。这是我着力编写的一章,也是其他Scratch编程书中所没有的。

第3章讲解了积木指令的精髓。本章能够让初学者脱离“碎片式”学习积木指令的困境,帮助大家从全局的角度快捷掌握所有积木指令的使用规则。即使遇到没有学过的积木指令,也能够举一反三,自己学会如何使用它们。

第4章介绍了程序的3种基本结构。采用4C教学法1,本着“生活无处不程序”的原则挑选生活中常见的情景进行程序分析,保证非计算机科班出身的老师、家长和孩子学得懂、记得牢。同时,老师和家长可以很好地把社会阅历与编程结合,帮助孩子们顺利通关。

1 乐高的4C教学法:联系、建构、反思、延续。

第5章讲解程序流程图。我要求老师、家长和孩子必须学习并实践。现在很多编程书中不再包含程序流程图的讲解,认为没什么作用。但是我坚持认为,程序流程图是学习编程不可或缺的工具,是厘清思路、解决问题的法宝。如果不能绘制出条理清晰的程序流程图,就几乎无法编写出合理的程序。

第6章基于积木式编程软件,“拔高”讲解面向对象编程的概念。采用4C教学法,将编程初学者对Scratch软件的认知引导至面向对象编程领域。这是我精心设计的一个学习思路,可以为学习高级编程语言奠定基础。

第7章至第11章将带领大家练习程序的3种基本结构。这部分强调了程序流程图的重要性,通过案例带领读者分析问题、提炼解题思路,在实践中领悟3种基本结构的精髓。案例难度循序渐进,希望读者可以在有了解题思路之后独立完成程序。此外,我在参考程序中“埋”了一些“小陷阱”,都是编程初学者容易犯的小错误,还能够防止大家照搬程序。

第12章教大家如何化繁为简地构建程序。很多人虽然知道程序的3种基本结构,但是依然不能顺利地编写程序。经过交流、分析和思考,我发现主要问题在于编程初学者不会化整为零地构建程序,希望本章能引导读者“捅破这层窗户纸”。

第13章带领大家完成一些程序小挑战,能够加深读者对“化整为零地构建程序”的理解和运用,同时介绍了自建积木(函数)。这一章可以帮助大家更合理地利用各类积木,让程序的主体部分更加短小精悍,让程序的各个分支更专注于具体功能的实现。

第14章简单介绍了人工智能与算法。这一章想要打破人工智能的神秘感,让编程初学者认识到:单纯学习编程语言是毫无意义的,编程最核心的能力在于构建算法。

第15章讲解了机器人的控制程序,包括巡线功能和避障功能的原理。我编写了一个模拟程序控制机器人实现上述功能。通过对比模拟机器人和实体机器人的运行效果,让初学者认识到:与前面学过的程序相比,为机器人编程需要考虑更多因素,对数学能力的要求也更高,鼓励大家继续学习高级编程语言。

秉承哈尔滨工业大学“规格严格,功夫到家”的校训,我力争细致地讲解每个知识点、透彻地分析每个案例的解题思路,希望可以锻炼初学者的逻辑思维,帮助其提升分析问题、解决问题的能力,逐步建立工程思维。我自认为在编写的时候做到了功夫到家,本书作为编程入门书,值得初学者一读。

人工智能的大潮已经到来,是时候让孩子学习编程啦!中国的乒乓球冠军基本是从五六岁开始学习打球的,编程也完全可以。