楔子

我是一个程序员,一个9岁男孩-- Tiger 的爸爸。在Tiger还是很小的时候,我总是想像和他一起聊电子产品,一起聊代码,一起聊模块化编程,那是一个什么场景。

所以我就一直关注儿童的编程教育。看到在国外儿童早期的编程早已搞的风声水气了。他们还宣称让孩子们早点接触编程有如下优点:

  • 为孩子的创造力提供一个表达的工具,就像绘画一样。让孩子们把自己想法通过计算机 创造 出来。
  • 锻炼孩子们的逻辑思维能力。从分析问题,到制定实施策略,到最后实现。让孩子们的思维更有条理
  • 培养孩子们的专注力。

既然好处这么多,我们如何做才能让孩子们得到这些好处了?为了得到答案,我开启了如下的探索之路。

小白鼠上场

我的小白鼠就是我的儿子 -- Tiger 和他的表妹 -- Lucy。Tiger思维还算清晰,好玩,对乐高如痴如醉,尤其喜欢乐高里面的各种车。对自己不感兴趣的事情爱搭不理。 Lucy -- 待补充

第一步让他感兴趣

为了让他们感兴趣,我投其所好的买了一个mBlock的机器人小车。这个小车是基于Arduino的一个小板子,可以把图形化的代码(具体如下图)烧到Arduino上。让孩子们可以通过图形化的代码来操作这个小车。

果然不出所料, Tiger被这个小车迷住了。当他把程序烧到板子上,通过遥控器控制小车的前进和后退的时候。他的表情就证明了这一切。通过这个小车他能理解了基本语句,if,循环这些结构控制语句的含义。 但是在这个环境里面,他死活无法理解里面的变量是怎么回事。

于是我开始想,是不是图形化的代码封装的太多,反而让我们看不太清计算机本来的一些东西。 我需要做一些改变!

自从看到那本 <<父与子编程之旅与小卡特一起学Python>> 这本书的时候,我知道我找到了! 我找到了还不算啊,要孩子们接受了才可以。所以我就和他们说: 你们要不要尝试一下真正程序员使用的编程语言啊, 学会那个你就能干嘛,干嘛。“真正程序员”这几个字的确打动了他们。决定尝试。就这样我们开启了我们的python之旅。

为了让我们的python之旅走的顺畅我好好调整了一下我们的课程表。

我们的课程表

为了让他们远离windows, 我给他们准备了MacOX的操作系统。第一时间接触Bash, vim, python。所以我的课程主要包括以上三个部分。

  • 盲打学习。 第一步要解决输入的问题。这个只是让他们照这一个打字软件来。但是控制一下打字的时间防止他们生厌。
  • 计算机的基本组成结构。从硬件层面让他们了解什么是cpu,内存,硬盘,输入输出(显示器,键盘,鼠标)
  • vim编辑器的基本使用。只讲三点 文件的打开,模式的切换,文件的保存。
  • Python 之 “Hello World” -- 还是不能免这个俗啊!
  • Linux 基本命令 ls, cd, mkdir
  • 变量, 变量类型
  • 基本运算
  • if 语句
  • 循环
  • 函数
  • Linux 基本命令 find

我们还在前进

上面的课程表已经拟定,我们要把他赋予实践!