最近和女儿一起做存钱罐App时,我发现有一些基本编程概念很难给她解释清楚。关键是我找不出足够简单的词汇来描述一些相对抽象的编程概念。
于是我找了一些专门写给小朋友的编程教材来参考。下面这本是我找到针对年龄层最低小朋友的编程书。它介绍了一些非常简单的编程概念并附以抽拉卡片的形式让小朋友互动练习。

基于这书中概念的定义,我又做了进一步的简化。今天我在女儿身上实验了一下,介绍了编程中的五个基本概念:算法、顺序、条件(分支)、循环和变量。感觉她基本上都掌握了。我们是从讨论什么是算法开始的。
Algoirhtm(算法):List of steps for completing a task.
在谈到算法时,我尝试让她理解算法的本质是解决问题的步骤,并不一定需要使用计算机或编程来实现。这时我邀请她一起来做一个麦当劳汉堡的“算法”。小布丁描述的步骤如下:
- 放面包
- 放肉饼
- 放奶酪片
- 放面包
我告诉她这就是最基本的算法了。在这里我又顺便提到了顺序的重要性,让她意识到我们需要按照顺序来执行steps,不能先放两片面包,再放肉饼。
Sequence(顺序):The order of the steps to follow.
下面我问小布丁,如果她很饿需要吃三个汉堡怎么办?她说就按照这个步骤重复三遍,于是这里我们就顺势引入了循环的概念。我强调了一下,如果没有循环结构,我们需要写出12个steps,而使用循环后我们只需要写一遍。
Loop(循环):Steps that repeat many times.
下一个问题是如果我们还需要给妈妈做一个呢?她知道妈妈不喜欢吃奶酪片,就说如果是妈妈就不放奶酪了。于是我们就引入了选择分支的概念。
Conditional (条件分支):Steps to run if something is true (of false).
这里我想测试一下她是否理解了,问她如何给爸爸做一个汉堡。她说使用Conditional如果是爸爸就多加一个肉饼😏。
我接着又问她,如果爸爸很饿要吃三个汉堡怎么办?她说就用Loop三次。我说如果你之前不知道爸爸多饿怎么办,你就不知道需要几个汉堡了?最后我在这里引入了变量的概念。
Variable(变量):A box that stores numbers(or words) that can change.
这里我们定义一个名为”饥饿度”的变量,爸爸运行算法时会告诉你一个“饥饿度数字”,如果饥饿度为3就做3个汉堡,为5就做5个。
希望通过我的讲解,下一次小布丁在和我编游戏时可以用到一些今天学会的概念。
注:上面的英文概念并不是很准确,我主要的目的是尝试使用最简单的单词帮助小朋友理解这些编程概念。
留下评论