Explaining Programming to 6 Years Old Kids
The task: explain what you do at work to a group of 6 years old kids.
Level: high (my own daughter was among the kids).
Many people shared their ideas of such “lectures” – you can find some really interesting examples on Stack Overflow (e.g. here). Many of them are based on the idea of presenting how computers are stupid and that you need to tell them very precisely what and how to do things to succeed. Fun guaranteed, but I seriously doubt if afterward kids understand anything about programming.
关于这个任务/主题，之前网上已有许多人分享了他们对这种“讲座”的想法，你可以在 Stack Overflow 上找到一些非常有趣的例子（例如这里）。其中许多人的想法是关于计算机是多么愚蠢，因为要取得成功，你需要非常准确地告诉它做事的方法和规律。我保证这样很有趣，但我也很怀疑，过后孩子们能对编程有什么了解。
My ideas for a successful presentation were:
Keep them engaged by asking questions and drawing. The original drawings were pretty big (flipchart) and I drew them while talking – which BTW is a nice way to keep a young audience engaged (they had so much fun laughing at programmer straw man or pointing out that Peppa Pig doesn’t look like this, etc). I do not have the original drawings (forgot to take pictures) but I drew them once again so you get the idea.
Build upon what they already know (YouTube, laptops, tablets, DVDs). Nowadays every kid watches cartoons on YouTube, plays games on tablets and observes mom or dad working on their laptops. They also know the movies are kept on CDs/DVDs and that the smartphones and tablets are pretty similar (when it comes to games and movies).
所有演讲的内容要基于他们已知的事物（比如：YouTube、笔记本、平板、DVD）。现在每个孩子都在 YouTube 上观看卡通片，在平板上玩游戏，看到爸妈在笔记本上工作。他们也知道电影是保存在 CD/DVD 上的，以及（在涉及游戏和电影时）智能手机和平板非常相似。
I started with the basic question, “Who knows what a programmer does?” I knew they had some discussion about this yesterday so I wasn’t surprised they had some idea. I gave them my own definition: “Programmer is someone who writes computer programs, who knows the languages used to tell the computer what it should do. A programmer knows a lot about computers.”
Then I draw a programmer at work.
The next step was to discuss computers. All kids started talking about laptops of their parents (it is really lovely how they mention the same thing over and over again). I interrupted after some time pointing to them that there are many computers in different places – like smartphones or watches, but also in cars and lifts. I draw each of the mentioned items and discussed in few words what a computer is used for in each case. I also asked them how they think the weather forecast works (one smart kid answer: “the satellite knows what the the weather will be the next day”) and told them about computer calculating the prognosis based on data coming from thousand of measurement devices.
I wanted to move to computer programs next so I mentioned that computers do what they do thanks to the programs which instruct them to do certain things.
I moved to YouTube because I knew they would know a lot about it. I started by drawing UI that they are all familiar with.
话题随之转向 YouTube，我知道他们很了解它，我从他们熟悉的 UI 开始。
I asked how many movies there are on YouTube. Some of them were confused, but a few shouted “millions” or “infinity”. So I asked if it is possible that all the movies fit on one disc. Then I drww many discs and asked “how it happens that after you tell YouTube to watch certain episode of Peppa Pig it finds the right disc?” They responded with silence so I draw a database and quickly described its role.
我问他们 YouTube 上有多少部电影。有些人比较困惑，而有些人高喊“数百万”或“无限”。我问所有的电影是否都可以放在一张光盘上。然后我画出许多光盘，问他们“在给 YouTube 下达观看 《粉红猪小妹》某一集的指令后，你了解它是如何找到那个正确的光盘吗？”他们以沉默回应，所以我画了一个数据库，并快速描述了它的作用。
I wanted to give them some idea that what they see is only a tip of an iceberg and that the programmers are responsible for much more. I explained how we must take care of various stuff like:
protecting the movies against bad people (“what would happen if someone changed the database so that instead of Peppa Pig you would see some football match?” – answered with horror silence)
making backups (“what would happen one disc broke? then you would never be able to watch this Peppa Pig episode in which Daddy Pig tried to hang a picture?” – horror silence again)
so that YouTube works on different devices (smartphone, tablet, laptop)
使得 YouTube 可以在不同的设备上运行（智能手机、平板、笔记本）
counting the number of people watching each movie
showing thumbnails of similar movies, etc.
This was a good time to remind them that the programming is teamwork. The programs are big and demand knowledge of different areas so that many people are involved in their creation. At this point, I updated the first drawing, adding another programmer so that two were sitting close to each other.
The next topic was how computers work – very roughly of course. All I told them was that:
mouse and keyboard are for people to give commands to a computer
a computer screen is for computers to respond
inside every computer there is a processor (you can think of it as of a brain of the computer)
there is also some disk which allows computers to store information
I concentrated on processor telling them that it uses a funny language which consists only of zeros and ones. Then we had a bit of a fun when I pretended to talk in a language using only As and Bs. Then I explained that the programming languages used by programmers were created so that it is easier to talk with processors.
我把注意力集中在处理器上，告诉他们计算机使用一种只包含 0 和 1 的有趣语言。当我假装只用 A 和 B 开头的词说话时，我们获得了一点乐趣。然后我解释程序员之所以使用编程语言，是为了更容易与处理器沟通对话。
I followed with the simplest possible examples of programming languages statements (using some pseudocode). I wanted to show them some more but I felt they were losing their focus so I did not even present the for loop.
然后我使用了一些最简单的编程语言进行示例（使用一些伪代码）。我本想再给他们看一些东西，但我觉得他们正在失去注意力，所以我甚至没有提出 for 循环。
To finish my lecture I drew, once again, symbols of what we talked about. I drew them one by one and asked questions like “what is this?” and “what do you remember about it?” and so on. It went pretty well.
Additional comments, do’s and don’ts, tips & tricks:
It was more fun than I expected! I treated this seriously and I was well prepared, and it paid off. The kids were interested and I think they might even remember something.
Drawing pictures is the right way to go. It grabs their attention and lets me remind them about things we have discussed few minutes ago by pointing to a certain drawing.
Be prepared for repeating things over and over again. When I asked about languages they know then one guy raised his hand and said: “I know a little bit of English.” And then his colleague did the same. And then one more. And another. And then rest of the group joined one by one (or few at once). All saying exactly the same about English. It gets even more chaotic when you touch the subject they love like cartoons.
Some kids will get bored no matter what you do. Their attention span is simply too short.
Write carefully – e.g. they will protest when you write 1 so it looks like 7.
注意书写。举个例子，当你写 1 时，他们会抗议这看起来像 7。
During the presentation I understood that there is no point in correcting them – for example, I think they understood that YouTube keeps cartoons on DVDs and when you ask for one then computer selects the right disc and plays it. I think this is perfectly fine. I wanted them to understand the concept (how the search looks like and what does a database do) and not the technical details. I feel this is the right way to go.
在这次演讲中，我明白了纠正他们是毫无意义的。例如，我认为在他们眼中， YouTube 会将卡通片保存在 DVD 上，当你要求某个卡通片时，计算机会选择正确的光盘并播放。我个人觉得这种想法很好，我想让他们理解的是概念（搜索是怎样的，数据库做什么的），而不是技术细节，这才是我认为正确的方法。
The presentation took me ~25 minutes. No sense to make it longer.
演讲花了大约 25 分钟，感觉没必要更长了。