187

原始问题

我被邀请到我大女儿的幼儿园小组讨论和回答孩子们关于我的职业的问题。小组中有 26 名 4-6 岁的孩子,外加 3 名老师,他们对与编程和 IT 本身相关的任何事情都相当害怕,但又足够大胆地学习新技巧。我将有大约 20-30 分钟,没有投影仪或任何东西。不过他们有一台旧电脑,从外观上看可能是 486,我什至不确定它是否正常运行(更新:它不是)。

我的研究发现了很好的早期线程,有很多很好的提示:

不过,我的情况与上述每一个都不同:后者关注的是年龄较大的孩子,而第一个是与一个孩子(或老人)交谈——20 人一组是完全不同的挑战。

我怎样才能以有趣的方式教孩子们和他们的老师编程?


基于答案的计划

感谢所有令人惊叹的答案,伙计们:-) 我认为接受一个答案是没有意义的,但我最喜欢 Jim,就像大多数 SOers 显然一样。但是,许多其他答案包含有用的提示和想法(其中一些我肯定会在学校未来的职业生涯中使用......)。

我制定了一个粗略的计划:

  1. 简要解释一下编程是什么,就像在这个答案中一样。
  2. 告诉计算机无处不在,并与孩子们一起收集示例(如下面的几个答案所示)。
  3. 用三明治做吉姆的演讲。
  4. 如果时间允许,进一步构建它:
    • 解释计算机的优势在于他们能准确地记住他们曾经教过的东西(并通过准备第二个三明治来展示它,重复第一次尝试的所有错误)
    • 进行第二轮尝试修复过程中的错误
    • 解释循环的概念:你可以让计算机n用一条指令准备三明治

这是我的计划——我很确定结果会非常不同,所以我会根据情况即兴发挥。演示文稿安排在大约 2 周的时间 - 我会在之后更新帖子并告诉它实际上是如何进行的......


结果

今天终于到了演讲的那一天……简而言之,一切顺利,取得了巨大的成功:-)

这一次,一行人显得很躁动,精力充沛,所以谈话偶尔会有些混乱。我不得不缩短它并参加大三明治制造商展。正如吉姆所描述的,孩子们喜欢它。

但是有一个意想不到的副作用:第一片面包终于做好后,每个人都想吃!所以有一段时间——在此期间我试图继续谈话并解释更多关于编程的信息——我们不得不与幼儿园老师安装一条紧急服务热线,以生产大量的果酱面包并喂饱饥饿的人群(这是一半早餐后一小时,记录在案:-)。然后我们的面包用完了,这显然意味着演示结束。清理完烂摊子后爆发出最大的笑声,孩子们注意到那台可怜的电脑踩到了一块果酱,弄坏了他的袜子:-)

老师们自己也留下了非常积极的印象——从反馈来看,这是迄今为止这个小组中最好、最有趣的职业日。再次感谢大家的好主意!

可以改进的地方(下次):

  • 当我问“你认为计算机聪明吗?”时,令我惊讶的是,他们中的大多数人都回答“不”。然后我问谁认为计算机很聪明,为什么。但是我忽略了问谁认为计算机是愚蠢的,以及为什么——因此我认为我错过了一些可能很有趣的答案。
  • 邀请孩子们围坐在桌子旁让他们积极参与……但有时可能有点过于积极。面包片开始从桌子上消失,一些观众模仿电脑,就像把自己的手指浸入黄油和果酱里一样:-)所以最好保持一定距离。
  • 为了控制饥饿的人群,应该提前明确告诉孩子们:“你可以吃所有的面包,但必须示范之后!”

但总的来说,我对结果很满意。而且我相信孩子们得到了核心信息:作为一名程序员,如果你避免造成混乱,你可以制作你的面包(即使是果酱:-)

4

18 回答 18

277

我以前做过。

我在桌子上放了很多纸巾,拿出一条(便宜的)面包、一小桶黄油、一小罐果冻和一把塑料黄油刀。

我对孩子们说:“你们中有多少人认为计算机很聪明?” 他们中的大多数人举起了手。我说:“计算机真的很笨。人很聪明。你必须告诉计算机一切。它不知道如何做任何事情。我要告诉你我的意思。我要假装我'我像电脑一样笨,你们告诉我怎么做三明治。”

当第一个孩子说“打开面包袋!” 我撕开袋子,让面包随意地落在桌子上。这引起了很多笑声。我继续听孩子们的话,直到他们学会了简短而具体的命令,最终我们得到了一个黄油和果冻三明治。有很多笑声,但他们走开了,至少有点理解程序员的谋生之道。

(我应该注意,我还在“编程入门”课程中与成年人一起完成了这个演示,它对他们也很有效。)

于 2010-03-16T18:38:11.610 回答
47

做一个动觉版本的 Logo 怎么样?

假设你有两个孩子并排。他们能弄清楚如何仅使用“前进”、“后退”、“左转 90 度”和“右转 90 度”命令来切换位置吗?我敢肯定还有其他游戏,例如穿越迷宫等。

如果你能让他们继续前进,我想你会保持他们的注意力。这会激发兴趣。他们稍后会发现这项工作是久坐不动的。;)

于 2010-03-16T15:49:45.910 回答
28

不要试图在电脑上向他们展示任何东西。看别人打字对成年人来说很无聊。对于 5 岁的孩子来说,这是无政府状态的秘诀。

相反,让它互动。某种形式的“西蒙说”,但让他们成为程序员

于 2010-03-16T15:48:57.757 回答
11

我从来没有试过这个,但它可能很有趣。

通过使用每个孩子的某些属性作为输入数据,物理地演示一个算法。

例如,让他们并排排成一条线(按照他们最初的顺序)。这可能在半圆形中效果更好,因此他们可以看到彼此在做练习,但必须在某处休息。然后,从队伍的一端开始,让他们轮流做“如果你左边的同学比你高,换位置;否则,原地不动。” 当您通过线路并且没有人交换位置时,​​游戏结束。让他们观察结果。(提示:冒泡排序!)

于 2010-03-16T18:54:47.130 回答
7

为了让孩子们开始编程,你开着你的劳斯莱斯开车去幼儿园,和你的另一半一起走进去。

如果你不是比尔盖茨,那么你只需要解释说你每天开 4 个小时无聊的会议,打印 2 个小时的 TPS 报告封面,并盯着前面那些无知的程序员写的愚蠢的东西。其他 6 小时。(不用说,你会接到那些维护你最后一个程序的人的电话,他们认为你是前面那个无知的人)。

不,我不苦,你为什么问?

说真的,(我确信我是在潜意识地抄袭这三个线程之一),让他们玩“给我关于如何做 Y 的指示”,而你以 Genie 的方式做事 - 除非指示非常精确,否则都是错误的清除。假设孩子们看到了阿拉丁,实际上提到精灵是一个很好的例子。

;^)

于 2010-03-16T15:47:33.210 回答
7

让他们为你编写简短的程序来做一些简单的事情(比如进入房间并坐下),然后逐字执行它们以展示“错误”——它们不够具体或没有考虑到某些事情,所以你会做错事。在这个过程中尽量不要伤害自己。这应该很有趣,并且会让他们很好地了解算法是什么。

于 2010-03-16T18:22:45.900 回答
4

我认为您可以在 20 分钟内完成以下演示。也许它更适合年龄较大的孩子。我真的不知道幼儿园的孩子有什么能力。我个人会避免尝试解释编程,而是描述我们作为程序员解决的问题。例如,如果有足够多的孩子,您可以交互式地向他们演示 Internet。

第一部分:它是如何工作的

首先向他们描述互联网是如何运作的,最好有道具。将通过电缆(用于视觉效果)连接到家庭路由器的笔记本电脑带入。讲述计算机程序员如何制作各种设备,包括笔记本电脑上的程序、路由器中的程序以及连接到 Internet 的其他设备(如手机)中的应用程序。

解释计算机如何不直接相互连接,因为不可能将世界上每台计算机的电缆连接到每台计算机。你的房子里需要十亿根电缆。因此,计算机连接到路由器。路由器将数据包(例如,电子邮件、图片或视频)提供给其他路由器,直到最终到达另一台计算机。

描述一台计算机与另一台计算机通信的规则:

  1. 一台计算机只能给它的路由器一个数据包。

  2. 路由器可以向与其连接的计算机或最近的路由器发送数据包。

这个解释应该很简短,但强调规则。您可能应该将数据包等同于电子邮件或图片。

第二部分:互动时间

然后让3个孩子自愿成为路由器。其他人都是电脑,平均分配。拥有可以持有的彩色卡片会有所帮助。就像持有深蓝色卡的人是路由器,可以与所有持有浅蓝色卡的人通话。假设您发出蓝色、红色和黄色牌。

将“路由器”排成一行,先是蓝色,然后是红色,然后是黄色。然后,蓝色路由器必须将数据包发送给红色路由器,然后再将其发送给黄色路由器。将其他孩子分组在他们的路由器周围。

为每个孩子带上“包”。将它与照片、字母、井字游戏的打印件混合在一起,以象征游戏,或其他任何东西。首先将一台红色计算机发送到一台黄色计算机。

“Ashley,选择一台你想发送图片的黄色计算机。好的,要将图片发送给 Brian,你必须把它交给你的路由器,Kelly。告诉 Kelley 谁应该拿到图片。Kelley,你是蓝色的,所以你不能把照片给布莱恩。你必须把它给蒂米。告诉蒂米谁应该拿到照片。蒂米是红色的,所以他不能把它给布莱恩。他必须把它给蕾妮。蕾妮,你可以把照片给布赖恩,因为他是黄色的电脑,你是黄色的路由器。”

然后让每个人都想一个人来发送他们的“数据包”,并观察你的即兴网络的运行情况。

第三部分:回到计算机编程

最后,问问路由器做一个路由器是容易还是难,因为有很多人试图一次给你照片。指出哪里出了问题,并将其与我们解决的实际问题联系起来。

“我可以看到 Timmy 的数据包超载,因为每个人都必须通过他发送数据包。作为计算机程序员,我们必须每天解决这样的问题。我们可以解决它的一种方法是给 Timmy 4 个手臂。或者添加另一个路由器,这样如果蒂米有太多数据包要传递,你可以把它交给另一个路由器。” 或者“也许我们希望更快地传送图片,所以我们可以要求路由器先传送图片,然后再传送任何其他数据包。”

于 2010-03-16T17:25:02.693 回答
3

当我试图在短时间内向不熟悉编程的人解释编程时,我会使用乐高积木来解释它。使用乐高积木,你有一堆简单的部件,这就像编程语言。然后,您可以根据需要将它们拼凑在一起,只要您拥有正确的零件,就可以制作出您可以想象的任何东西。

对于成人和儿童来说,这可能是一个非常有趣的类比,它仍然展示了编程的概念。

此外,你甚至可以把一辆乐高汽车造得不好,然后展示一辆设计非常好的乐高汽车,并向他们展示编程就是这样。你可以对汽车或机器人或任何你能想象到的东西进行编程,但不仅有一种方法可以做到,还有很多方法可以做到。有些比其他的好。

我已经让很多人开始编程,甚至用这个比喻转换他们的专业。:)

于 2010-10-24T19:48:01.143 回答
3

借用已经发布的其他想法,Simon Says 的游戏可能是要走的路。但是,您可以强调计算机将如何完全按照您的指示去做。所以,如果孩子们是西蒙,他们说,“西蒙说坐下。” 然后你就坐在地板上(而不是坐在附近的椅子或任何东西上)。遵从字面上的指示,而不是精神上的指示。(当然,让孩子们给出模棱两可的指示可能会很棘手,但我相信你能想出一些办法。)

除此之外,您还可以谈论孩子们可能使用过的视频游戏或其他计算机“东西”,您可以说像您一样的程序员创造了这些。然后也许跳进西蒙说来展示它是如何工作的。当然,这可能会导致一群孩子在成长过程中认为您整天都在工作中用电脑玩西蒙说……

于 2010-03-16T15:53:15.333 回答
3

我有时认为我的工作就是玩乐高积木。你从一组不同大小、形状和颜色的砖块开始,然后你可以建造更大的东西。您可以使用同一组砖块建造城堡或星球大战机器人。

而且,它的乐趣也差不多!

于 2010-03-16T15:56:37.193 回答
3

编程的主要优势之一是创造事物的能力。让梦想成真。我认为这对那些无论如何都可以自由发挥想象力的小孩来说不会有太大的吸引力。计算机带来了什么?

相反,你可能会让他们对解决问题和谜题感兴趣。编程所需的那种思维。我可能根本不会使用电脑。相反,让他们解决一个引人入胜的数学难题。它不一定很难,但它应该涉及创造性思维。

于 2010-03-16T16:12:52.270 回答
2

I think I'd begin by talking for 2-3 minutes about computers, and that they follow instructions about what to do.

Then I'd demonstrate with a prebuilt LEGO Mindstorms robot and program it a couple of times and run it, just to show them that it follows the program. Mindstorms programming is pretty visual and simple to grasp.

Finally I'd try to explain that there are computers running programs almost everywhere, even in traffic lights, microwave ovens and their favourite toys.

于 2010-03-16T17:41:24.630 回答
2

Talk about how pervasive computer programming is - it guides airlines, phones, cars, how you buy your tickets online etc.

Then teach them to write a simple program symbolically - 1.Draw a grid on the blackboard.
2.Draw cheese at one end, and a mouse at the other end. 3.Have them "program" the moues to get the cheese!

Walk them through their failed attempts as a class, maybe have the mouse fall in traps or something in the grid. They would get a thrill out of it.

于 2010-03-16T18:01:17.563 回答
2

如何教孩子编程是什么?
好吧,第一步可能会让一些奶牛参与进来!
将一个简单的编程游戏(如IQ Marathon)下载到笔记本电脑上并将其连接到投影仪。当你这样做的时候,你可以谈论成为一名程序员通常意味着如何使用最新的技术(并由此证明你这样做)。

一旦你完成了它的设置(练习,你可以在 5 分钟或更短的时间内让它工作),你可以使用游戏非常直观地展示(和奶牛!)计算机如何完全按照你告诉它的,以及您(程序员)如何弄清楚需要哪些指令才能使其执行您想要的操作。当你做对了,每个人都为你的成功感到高兴,以至于有跳舞的牛!
从那里你可以回答任何问题,或者只是让孩子们尝试弄清楚如何自己编程奶牛。无论他们想去哪里,真的。

奶牛!

于 2010-03-16T20:18:58.673 回答
1

给每个孩子一个剪下来的形状;圆形、正方形、三角形、不同颜色等。解释编程如何以特定顺序给出指令。举起一张笑脸的照片,让孩子们了解如何构建它。黄圈、黑点、黑点、弧线。然后展示一个更复杂的图片,让孩子们根据你的指示按顺序上来。您甚至可以犯错误(例如将黄色圆圈放在黑点上)以显示“错误”是如何潜入程序的。

于 2010-03-16T16:32:42.563 回答
1

演示一个简单的乐高头脑风暴机器人及其相应的流程图。您不必显示任何代码,他们可以通过观看乐高执行您的程序来查看您的逻辑的最终结果。

于 2010-03-16T22:21:04.760 回答
1

孩子们喜欢“做某事”和闪烁的灯光的东西。

为了我儿子的生日,我做了一个与 PC 相连的保险箱(带电锁和许多 LED 的盒子)。

他们有一些问题要回答,每个回答都会导致 LED 闪烁(绿色表示正确答案,红色表示错误答案)。如果他们正确回答了足够多的问题,LED 就会开始一个简单的动画,并以一声响亮的“叮当”声结束。保险箱现在打开了,他们可以领取奖励了。

建造很有趣,孩子们喜欢它。

于 2010-03-16T22:26:37.423 回答
0

向他们推销无人值守自动化的价值。让一个孩子走到教室前面,向全班展示他每晚刷牙时做了什么。然后让同一个孩子告诉你如果他不用刷牙那段时间他会做什么。

然后告诉那个孩子,当他做他想做的其他事情时,你知道如何在他的牙齿上移动刷子,并告诉他他永远不会感觉到。下次他妈妈去检查时,他的牙齿会神奇地干净。

然后可能会在黑板上写一些伪代码,显示 Brush API 在收藏活动后面的后台线程中访问 Tooth 资源。

于 2010-03-16T15:50:08.830 回答