前言

我怎么会去写一本教孩子学编程的书?时至今日,我偶尔还会觉得这件事挺奇怪,因为它原本不在我的计划之中。不过回想一下,整个过程似乎突然但其实也自然。

上高中时,我才第一次见到计算机,所有计算机相关的知识都是成年以后开始学习的,所以开始时我并没有孩子应该从小接触编程的想法。直到几年前的一天,我按照平常的习惯来到书店,打算看看计算机书柜上的新书,偶然发现一本很特别的书。它是由国外著作翻译而成的,书上写着“推荐家长使用这本书带着孩子学习编程”。

当时我的孩子到了开始接触计算机的年龄,而且被计算机游戏所吸引,于是家中出现关于计算机使用时间的争执。虽然我们这一代的家长不会再把计算机游戏当成“洪水猛兽”,不准孩子接近,但

是确实也不愿意让孩子在这上面花费过多的时间。有意思的是,我在教育孩子的过程中发现,以前被我认为是错误做法的“禁止使用”,原来却是最有效的手段。当我第一次采用强制手段停止孩子使用计算机时,我不由在心里苦笑,并想到一句话:我最终成为了自己不想成为的人。

于是我开始思索,为什么小孩子都会被电子游戏吸引?我隐约意识到,也许吸引孩子的并不是游戏,而是人类最强大的工具——计算机。计算机的强大功能对好奇心强的孩子具有天然的吸引力。只不过对于孩子们而言,这种强大的功能首先是通过娱乐形式展现出来的,所以很多人才会认为是游戏吸引孩子。因此,在看到那本书提出让孩子学习编程时,我眼前一亮,把计算机的强大能力展现给孩子的正确方式不就是编程吗?

可是,这能实现吗?我抱着怀疑的态度仔细翻看了那本书,感叹它真是一本耐心给孩子解释编程知识的好书。作者在讲解时大量使用了类比、拟人等方法,并非都是专业的术语和严谨的说明。我第一次认识到,原来还可以用这种方式写编程书。对呀, 孩子学习编程的主要目的是建立对计算机的正确认识,没有必要用培养专业程序员的要求来指导教学,令我困扰的问题终于有了解决方案,于是我兴冲冲地把书买回了家。

很快我就开始行动了,但教学过程不如我想象的那么顺利。作为一名工作多年的教师和一个孩子的家长,我觉得使用那本书进行教学的主要困难有如下几条。

□ 没有教学经验的家长很难把书本内容设计成教学过程。

□ 书中仍然有不少孩子很难理解的理论和概念,这不符合孩子的学习特点,难以 让孩子产生兴趣。

□ 书中的举例都是国外的事物,与中国孩子的认知环境有较大的差异。

发现这些问题后,我突然想也许我看清了编写儿童编程教材的正确道路,而且为中国孩子编写一本编程启蒙书也是一件很有意义的事情。于是就这样,我既突然又自然地改变了所有工作计划,开始写作了。

第一次成稿后,我询问了多家出版社,但均因对市场前景没有把握,不愿出版, 就搁置了下来。后来,人民邮电出版社图灵公司表示有出版意向,于是我花了大半年的时间对内容重新进行了编排和扩充,并于2018 年1 月正式出版。当时书中采用了

Python 2,随着时间的推移,现在Python 相关的书都转为Python 3 了,所以为了方便大家学习,我基于Python 3 升级了本书,这就是第2 版的由来。

内容和特色

为了适应孩子的学习特点和方便家长进行教学,本书采用了全新的组织方式和讲解方式。书中把内容拆分成多个知识点,针对每个知识点专门设计问题案例,并把知识点融入解决问题案例的过程中。本书首先选取编码、变量、数据类型、循环分支语句、函数、模块、面向对象方法作为基本知识点进行简要介绍,然后选取游戏动画制作、表格数据处理、计算机网络等孩子日常接触的内容作为范例,讲解如何应用计算机编程来实现这些功能。

本书的特色主要有:用解决实际问题的方式设计教学内容,激发孩子的学习兴趣; 在每个教学环节中配套了完整的实现代码,强化输入代码的重要性,让孩子每步都是在实践中理解知识;把整个教学过程划分成清晰的实施步骤,家长可以直接按书中指示进行教学。

读者对象

本书适用于初中生和高年级小学生自学,低年级小学生可在家长的带领下学习。

第2 版与第1 版的区别

经过第1 版读者的使用,本书的实用性得到了认可,也符合青少年朋友的学习要求。在了解读者反馈的过程中,我发现大家除了希望使用Python 3 以外,最集中的问题是无法顺利安装编程软件,所以这也是我在第2 版中要认真改进的问题。经过仔细比选,第2 版采用了非常简易的安装方案,可以说较好地解决了这个问题。

下面是第2 版的主要变化。

□ 不再使用 Python 2,使用 Python 3 作为教学语言。

□ 简化了所需软件数量,大大降低了编程环境的安装难度。

□ 问题案例的数量由原来的 42 变为 49,删除第 30 个案例(打倒三号纸老虎), 增加了关于海龟模块绘图的案例(详见案例 21~ 案例 23)、图形用户界面的案 例(详见案例 33)、计算机网络的案例(详见案例 46~ 案例 48),以及人工智 能的案例 49。

□ 多单词的变量名统一使用驼峰式命名法。

致谢

感谢人民邮电出版社图灵公司的王军花编辑,她在写作过程中给了我许多良好的 建议,并且她对本书出版价值的认可给了我不断改进内容的动力。

感谢为本书写序和推荐语的各位老师,感谢你们对本书的支持和推荐。

最后,也对我的孩子说一声谢谢,因为你,我写了这本书,你也因此充当了这本 书的“实验品”。

相关资源

本书的所有代码、安装程序以及闯关任务的答案都可在图灵社区(https://www. ituring.com.cn)中下载。在网站首页搜索本书书名“和孩子一起玩编程(第 2 版)”, 进入本书页面后,在其右侧的“随书下载”栏中即可找到相关资源。另外,读者也可 以加入本书的 QQ 交流群 1026375571,一起交流学习。

目录

  • 前言
  • 1 先来三道小测试
  • 2 打倒一号纸老虎
  • 3 从手指到计算机
  • 4 来给数字起名字
  • 5 培养优秀服务员
  • 6 奥运宝宝算年龄
  • 7 发现循环的秘密
  • 8 敢和高斯比赛吗
  • 9 循环也能讲条件
  • 10 程序里面走迷宫
  • 11 程序里面找套娃
  • 12 书山有路勤为径
  • 13 做道难题试一试
  • 14 自己也能设密码
  • 15 做到利人又利己
  • 16 程序里面设暗号
  • 17 使用函数做计算
  • 18 自己做一个模块
  • 19 模块拿来就能用
  • 20 程序里面摸大象
  • 21 海龟陪你学编程
  • 22 创作一幅抽象画
  • 23 古老游戏的玩法
  • 24 打倒二号纸老虎
  • 25 让计算机画个圆
  • 26 轻轻吹气圆会动
  • 27 方块不动圆才动
  • 28 自己也能做动画
  • 29 听我指挥的动画
  • 30 用鼠标控制的动画
  • 31 有模有样的动画
  • 32 自己做个小游戏
  • 33 程序的服务窗口 
  • 34 考试分数出来了
  • 35 修改考试分数表
  • 36 此处无表胜有表
  • 37 数据仓库小管家
  • 38 列表还有两兄弟
  • 39 了解函数的执行
  • 40 函数也能做参数
  • 41 银行账户要转账
  • 42 计算机的小魔法
  • 43 显示格式有讲究
  • 44 文件写入与读取
  • 45 了解变量作用域
  • 46 程序之间有协议
  • 47 服务器与浏览器
  • 48 网站里面有什么
  • 49 人工智能初体验
  • 附录A 进制与编码
  • 附录B 变量
  • 附录C 变量的数据类型
  • 附录D运算符
  • 附录E MATH 模块
  • 附录F 文件相关概念
  • 附录G 英文速查表