Career day in kindergarten: how to demonstrate programming in 20 minutes?
我被邀请到我大女儿的幼儿园小组,讨论和回答孩子们关于我职业的问题。这个小组有26个4-6岁的孩子,加上3个老师,他们对任何与编程和IT相关的事情都相当害怕,但是他们足够大胆地学习新的技巧。我会有20-30分钟,没有投影仪或任何东西。不过,他们有一台旧电脑,从外观上看可能是486,我甚至不确定它是否能正常工作(更新:它不能)。
我的研究发现早期的线程非常出色,有很多好的提示:
- 你如何向一个5岁的孩子解释你的工作?
- 职业日:我如何让"计算机程序员"对8岁的孩子来说听起来很酷?
- 我能在一天内教一组孩子关于编程的什么东西?
不过,我的情况与上述情况不同:后一种情况与大孩子有关,而第一种情况是与一个单独的孩子(或长者)交谈,20人一组是完全不同的挑战。
我怎样才能以一种有趣的方式教孩子和他们的老师编程?
根据答案制定计划感谢所有令人惊奇的答案,伙计们:-)我认为接受一个答案是没有意义的,但我最喜欢吉姆的答案,就像大多数国有企业显然喜欢的那样。然而,许多其他的答案包含有用的提示和想法(其中一些我肯定会在未来的学校职业生涯中使用…)。
我制定了一个大致的计划:
- 解释一下,计算机的优势在于,它们能准确地记住曾经教过的东西(并通过准备第二个三明治、重复第一次尝试的所有错误来证明这一点)。
- 第二轮尝试修复过程中的错误
- 解释循环的概念:你可以让计算机用一条指令来准备
n 三明治。
这是我的计划-我很肯定结果会非常不同,所以我会根据情况即兴发挥。演讲安排在2周左右-我会在之后更新帖子,并告诉大家它是如何进行的…
结果今天是演讲的最后一天…总之,一切都很顺利,这是一个巨大的成功:—)
这一次,大家都很不安,精力充沛,所以谈话偶尔会有点混乱。我不得不把它剪短,去看一场三明治制作大赛。正如吉姆所描述的,孩子们喜欢它。
不过,还有一个意想不到的副作用:第一片面包终于做好了,大家都想吃了!所以有一段时间,在这段时间里,我试图跟上谈话的节奏,解释更多关于编程的内容,我们不得不和幼儿园老师安装一条紧急服务热线,生产大量的果酱面包,并喂饱饥饿的人群(这是早餐后半个小时,创纪录的-)。然后我们的面包用完了,这显然意味着演讲的结束。当孩子们清理完烂摊子后,发现可怜的电脑踩到了一块果酱上,弄坏了他的袜子时,爆发出最大的笑声。
老师们自己也非常积极地印象深刻——从反馈来看,这是迄今为止这个小组中最好、最有趣的一天。再次感谢你们所有人的伟大思想!
可以改进的事情(下次):
- 当我问"你认为电脑聪明吗?"令我惊讶的是,他们中的大多数人都回答了"不"。然后我问谁认为电脑很聪明,为什么。然而,我忽略了问谁认为计算机是愚蠢的,为什么-因此我认为我错过了一些潜在的有趣的答案。
- 邀请孩子们围坐在桌子旁,让他们积极参与…但有时可能有点过于活跃。面包片开始从桌子上消失,一些观众模仿电脑,就像用手指蘸黄油和果酱一样,所以最好保持一定距离。
- 为了控制饥饿的人群,孩子们应该提前明确地告诉他们:"你可以吃所有的面包,但必须在演示之后!"
但总的来说,我对结果很满意。我相信孩子们得到了核心信息:作为一个程序员,如果你避免制造混乱,你可以做你的面包(即使用果酱-)
我以前做过。
我把很多纸巾放在桌子上,拿出一条(便宜的)面包、一小桶黄油、一小罐果冻和一把塑料黄油刀。
我对孩子们说:"你们中有多少人认为电脑很聪明?"他们大多数人举起手来。我说,"电脑真的很蠢。人很聪明。你必须把一切都告诉电脑。它不知道怎么做。我要告诉你我的意思。我要假装我和电脑一样笨,你们告诉我怎么做三明治。"
当第一个孩子说"打开面包袋!"我把袋子撕开,让面包随意地落在桌子上。有很多笑声。我继续对孩子们字面意义上的言听计从,直到他们学会了发出简短、具体的命令,最后我们得到了黄油和果冻三明治。有很多笑声,但他们离开了理解,至少一点,一个程序员为生活做什么。
(我应该注意到,我也在"编程入门"课程中对成年人进行了这个演示,而且它对他们也同样有效。)
做一个动觉版的标志怎么样?
假设你有两个孩子肩并肩。他们能不能只使用"前进"、"后退"、"左转90度"和"右转90度"命令就知道如何切换位置?我相信还有其他的游戏,比如穿越迷宫等等。
如果你能让他们动的话,我想你会保持他们的注意力。这会引起人们的兴趣。他们稍后会发现这项工作是久坐不动的。;)
不要在电脑上给他们看任何东西。看别人打字对成年人来说很无聊。对于5岁的孩子来说,这是无政府状态的秘诀。
相反,让它成为交互式的。一些形式的"西蒙说",但让他们成为程序员。
我从来没有试过,但可能很有趣。
通过使用每个孩子的某些属性作为输入数据来实际演示算法。
例如,让他们形成一条线(按照他们最初的顺序),并排。这在半圆内可能会更好,这样他们就可以看到对方在做练习,但在某个地方必须有一个中断。然后,从队伍的一端开始,让他们轮流做"如果你左边的同学比你高,就换位置;否则就原地不动。"当你穿过队伍时游戏结束,没有人换位置。让他们观察结果。(提示:气泡排序!)
让他们为你写一些简短的程序来做一些简单的事情(比如进房间坐下来),然后按照字面意思执行这些程序来演示"错误"——它们不够具体或者没有考虑到某些事情,这样你就会做错事情。在这个过程中尽量不要伤害自己。这应该很有趣,会让他们对什么是算法有一个很好的了解。
要让孩子们开始编程,你可以开车到你的劳斯莱斯幼儿园,然后和你的另一个漂亮的重要人物一起走进来。
如果你不是比尔·盖茨,那么你只需要解释一下,你每天在无聊的会议上坐4个小时,打印TPS报告的封面2个小时,然后在接下来的6个小时里盯着那些愚蠢的前程序员写的东西。(不必说,然后你会接到维护你上一个程序的人的电话,他们认为你是前一个愚蠢的人)。
不,我不苦,你为什么问?
说真的,(我确信我是在下意识地抄袭这三条线中的一条),让它们播放"给我指示怎么做Y",你用精灵的方式做事情——除非指示非常精确和清晰,否则都是错的。事实上,假设孩子们看到阿拉丁,就说精灵是个很好的例子。
^)
我想你可以在20分钟内完成下面的演示。也许它更适合大一点的孩子。我真的不知道幼儿园能做什么。我个人会避免解释编程,而是描述一个我们作为程序员解决的问题。例如,如果有足够的孩子,您可以交互地向他们演示Internet。
第一部分:工作原理
首先,向他们描述互联网是如何工作的,最好是用道具。将通过电缆连接的笔记本电脑(用于视觉效果)接入家庭路由器。告诉计算机程序员如何制作各种设备,包括笔记本电脑上的程序、路由器中的程序以及其他连接到Internet的设备(如手机)中的应用程序。
解释计算机如何不能直接连接到彼此,因为不可能将世界上每台计算机的电缆连接到每台计算机。你家里需要十亿根电缆。因此,计算机连接到路由器。路由器将数据包(例如电子邮件、图片或视频)发送给其他路由器,直到它最终到达另一台计算机。
描述计算机与其他计算机对话的规则:
计算机只能给它的路由器一个包。
路由器可以向与其相连的计算机或最近的路由器提供数据包。
这个解释应该很简短,但要强调规则。您可能应该将数据包等同于电子邮件或图片。
第二部分:互动时间
然后有3个孩子自愿做路由器。其他每个人都是一台计算机,并将它们平均分配。有彩色的卡片他们可以拿。就像拿着深蓝色卡片的人一样,路由器可以和所有拿着浅蓝色卡片的人交谈。假设你发蓝、红、黄三张牌。
把"路由器"排成一行,蓝色,红色,黄色。蓝色路由器将不得不给红色路由器一个包,然后给黄色路由器。把其他孩子围在他们的路由器周围。
给每个孩子带上"包裹"。把它和照片、字母、用井字脚趾印出来的图案混在一起,象征着一个游戏,或者别的什么。首先让一台红色的计算机发送到一台黄色的计算机。
"阿什利,选择一台黄色的电脑,你想把你的照片发送给它。好吧,要把照片发给布莱恩,你必须把它交给你的路由器,凯利。告诉凯利谁应该得到照片。凯利,你是蓝色的,所以你不能把照片给布莱恩。你得把它给提米。告诉提米谁应该得到照片。提米是红色的,所以他不能给布莱恩。他必须把它给雷尼。蕾妮,你可以把照片给布莱恩,因为他是一台黄色的电脑,而你是黄色的路由器。"
然后让每个人都想到一个人来发送他们的"包",并观看你的即兴网络的运行。
第三部分:与计算机编程有关
最后,问路由器做一个路由器是容易,还是难,因为有很多人试图一次给你照片。指出哪里出了问题,并把它与我们解决的实际问题联系起来。
"我可以看到提米的包裹太多了,因为每个人都得通过他发送包裹。作为计算机程序员,我们每天都要解决这样的问题。我们能解决的一个方法是给蒂米4只手臂。或者可以添加另一个路由器,这样如果Timmy有太多的数据包要传送,你可以把它交给另一个路由器。"或者"也许我们希望图片更快地被逐出,这样我们就可以要求路由器在传送任何其他数据包之前先传送图片。
借用已经发布的其他想法,一个西蒙说的游戏可能是可行的。然而,你可以强调计算机将如何做你告诉他们要做的事情。所以,如果孩子们是西蒙,他们会说,"西蒙说坐下。"然后你就坐在地板上(不是坐在附近的椅子上或其他什么东西上)。遵循信中的指示,而不是精神上的指示。(当然,让孩子们给出模棱两可的指示可能很难,但我相信你能想出一些办法。)
除此之外,你还可以谈论电子游戏或其他孩子们可能使用过的电脑"东西",你可以说,像你自己一样的程序员创造了这些东西。然后可能跳到西蒙说,以展示它是如何工作的。当然,这可能会导致很多孩子在成长过程中认为你一整天都在工作中玩西蒙说的电脑…
我有时把我的工作看作玩乐高积木。你从一组不同大小、形状和颜色的砖块开始,然后你就可以建造更大的东西。你可以用同一套砖块建造城堡或星球大战机器人。
而且,它也有同样的乐趣!
当我试图在短时间内向不熟悉编程的人解释编程时,我用乐高积木解释它。有了乐高积木,你就有了一堆简单的东西,这就像是编程语言。然后你可以把它们拼成你想要的任何东西,只要你有正确的部分,你就可以想象得到任何东西。
对于成年人和小孩来说,这可能是一个非常有趣的类比,它仍然展示了编程的概念。
另外,你甚至可以把一辆乐高车造得很差,然后展示一辆设计很好的乐高车,并向他们展示编程就是这样的。你可以编程汽车或机器人,或者任何你能想象到的东西,但不仅有一种方法可以做到,还有很多方法可以做到。有些比其他更好。
我让这么多人开始编程,甚至用这个类比来换专业。:)
编程的一个主要好处是创造事物的能力。让梦想成真。我不认为这会很有吸引力的孩子谁没有问题,让他们的想象力漫游自由无论如何。电脑能带来什么?
相反,你可能会让他们对解决问题、猜谜感兴趣。编程所需的那种思考。我可能根本不会使用电脑,相反,让他们解决一个迷人的数学难题。这不一定很难,但应该包括创造性思维。
我想我应该先谈2-3分钟关于计算机的事情,然后他们按照说明做什么。
然后我将用一个预先构建的乐高头脑风暴机器人演示,并对它进行几次编程和运行,只是为了向他们展示它遵循程序。Mindstorms编程非常直观,易于掌握。
最后,我要解释的是,几乎所有地方都有电脑在运行程序,即使是在交通灯、微波炉和他们最喜欢的玩具中。
谈论计算机编程是多么普及——它指导航空公司、电话、汽车、如何在线购买机票等。
然后教他们象征性地写一个简单的程序-1.在黑板上画一个网格。2.在一端画奶酪,另一端画鼠标。3.让他们"计划"发霉以获得奶酪!
把他们作为一个班级,带着他们经历失败的尝试,也许是让老鼠掉进陷阱或者网格中的什么东西。他们会从中得到刺激。
如何教孩子什么是编程?好吧,第一步可能会让一些奶牛参与进来!将一个简单的编程游戏(如iq马拉松)下载到笔记本电脑上,并将其连接到投影仪上。当你这样做的时候,你可以谈论成为一个程序员通常意味着使用最新的技术(从而演示你这样做)。
一旦你设置好了它(练习让它在5分钟或更短的时间内工作),你就可以使用游戏来非常直观地显示(和奶牛一起!)计算机如何只做你告诉它的事情,以及你(程序员)如何弄清楚要让它做你想做的事情需要什么指令。当你做对了,每个人都为你的成功感到高兴,以至于有跳舞的奶牛!从那里,你可以回答任何问题,或者让孩子们自己试着找出如何给奶牛编程。不管他们想去哪里,真的。
奶牛!
演示一个简单的乐高Mindstorm机器人及其相应的流程图。你不需要再显示任何代码,他们可以通过观看乐高执行你的程序来看到你逻辑的最终结果。
孩子们喜欢"做点什么"和闪光的东西。
为了儿子的生日,我做了一个与电脑相连的保险箱(装有电锁和许多发光二极管)。
他们有一些问题需要回答,每一个回答都会导致LED闪烁(绿色表示回答正确,红色表示回答错误)。如果他们答对了足够多的问题,LED会启动一个简单的动画,以一个响亮的"咯咯"声结束。保险箱现在打开了,他们可以领取奖励。
建房子很有趣,孩子们也很喜欢。
给每个孩子一个切掉的形状;圆、正方形、三角形、不同的颜色等。解释编程是如何按特定顺序给出指令的。拿着一张笑脸的照片,带着孩子们去看怎么做。黄色圆圈,黑色圆点,黑色圆点,弧线。然后展示一张更复杂的图片,让孩子们按照你的指示排好队。你甚至可以犯一个错误(比如把黄色的圆圈放在黑点上)来显示"错误"是如何潜入程序的。
以无人值守自动化的价值出售它们。让一个孩子走到教室的前面,向全班同学展示他每天晚上刷牙时的表现。然后让那个孩子告诉你,如果他不需要刷牙的话,他在那段时间会做什么。
然后告诉那个孩子,你知道如何在他做他更愿意做的其他事情的时候把刷子刷到牙齿上,告诉他他甚至不会感觉到。下次他妈妈去检查时,他的牙齿会神奇地变干净。
然后在黑板上写一些伪代码,显示画笔API在最喜欢的活动后面的后台线程中访问牙齿资源。