我学到的Python教学内容

几年前最初发布在AgileCoder.net上,但随着夏季儿童夏令营的到来,我想我会重新发布它。

几年前,我自愿参加了由Utah Geek Events举办的2015年儿童代码大会。 UGE每年都会举办一些免费或极低成本的编码和技术活动,包括犹他州代码营和大山数据。我不知道他们有多少次举办过儿童活动,但这次活动非常多。位于SALT湖城市中心的Neumont大学主办了此次活动,并提供了一个绝佳的场地。

几个星期前我曾自愿提供帮助。它认为我可以在HTML / JavaScript或Python会话中闲逛,只是帮助遇到麻烦的孩子。我花了一些时间教我自己的孩子和他们的一两个朋友一点Visual Basic,或C#或Python,但我认为我没有准备或能够教一个3小时的研讨会专注于开发一个可玩的游戏。但是大约在会议开始前一个多星期的一个星期,在我的主要工作中也碰巧为我工作的一位组织者说,有几位教师退学了,并问我是否愿意教授其中一个Python价格。

让我澄清一下。在我的工作中,我根本不使用Python。我几乎没在家里用它。我不开发游戏。我下载了它并开始使用它,因为我听说它是​​一种相当简单的语言,并且对数据分析有很强的支持。那就是说。有人告诉我,另一位经验丰富的讲师正在研究大纲和示例代码,而研讨会将基于Hello,World这本书儿童和其他初学者的计算机编程。我有一份副本,所以我尽可能快地开始工作。

菲尔,另一位教练给我发了大纲和样本文件,我潜入准备教一个充满青少年和青少年的房间如何用Python和Pygame制作游戏。我原本以为我必须教授早上和下午的工作坊,但是当它成功时,我们能够结合起来并一起工作。菲尔领导了早上的研讨会,因为我从未教过Python,我领导了下午的会议。

所以,经过长时间的介绍,以下是我学到的东西:

安装和设置是关键

在早上的会议中,我们最终有大约30个孩子。我们有USB驱动器,包含Python,Pygame和Visual Studio Code的示例文件和安装文件(很快成为我的首选跨平台代码编辑器)。孩子们和家长们收到了一封电子邮件,上面有关于如何设置孩子们从家里带来的笔记本电脑的链接和说明。但即使如此,我认为只有两三个孩子准备好进入研讨会。我们最终花了整整一个小时安装和配置儿童电脑。得到它的孩子或者我们早期帮助的孩子很快就感到无聊。

经验教训:简化。 Hello,World book的网站有一个非常好的Mac,Windows和Linux集成安装程序。对于关于Python的Utah Code Camp会议,他们推荐了易于安装的Anaconda发行版(但不包括Pygame,这就是我们没有使用它的原因)。除了尝试使用集成安装程序之外,还要提供更好的会前指示,包括如何验证是否按预期安装和配置了所有内容。虽然我不是Python中包含的IDLE编辑器的忠实粉丝,但它已自动安装并可在每个平台上使用,因此使用它会更简单,并避免Visual Studio Code的额外安装/配置步骤。

小心Mac,恐惧Linux

Python预装在大多数Apple MacBook上,默认包含在大多数Linux发行版中。但是,本书和我们的价格都基于Python 2.7.x,我们看到的大部分安装都是3.x版,其中没有一个包含Pygame。 Phil和我都不是Mac或Linux专家,所以帮助孩子解决这些安装问题尤其困难。当我们让孩子们复制文件或访问终端时,它也提出了一个小小的挑战。我们知道Windows快捷方式,右键单击以查看上下文菜单没有问题。很难帮助孩子解决这些问题。我们知道我们会看到至少一些MacBook,但不知道每个班级中至少有三分之一的孩子会使用一台。 Linux更为罕见。我想我们每个会话中只有一个Linux用户。

经验教训:这里有两节课。首先,Mac用户(或他们的父母)可能会认为,如果他们可以运行Python,他们已经准备好了,但不会担心版本或Pygame。这里的修复可能与第一点相同;更好的安装和配置说明。第二个是给我的。我可以访问iMac和MacBook,真的应该利用它们为我的下一个研讨会做准备。

四对一是关于权利

非常幸运的是,我们能够将价格结合起来,因为早上的价格让我们有菲尔教,另外一位志愿者和我一起漫游帮忙。这还不够。如果我只有15-16个孩子,我会遇到安装问题和实际教学问题。我们很幸运,在两次会议中至少有一位家长可以帮助他们自己的孩子,也许他们周围有一两个孩子。

经验教训:在下午的会议中,我们有一个父亲在房间里和自己的孩子以及3个朋友,菲尔和我一起。我们三个人之间仍然有点争吵,以确保每个孩子都得到他们想要的帮助,或者如果他们真的被困在某事上可以得到帮助。我认为大约1名教师/志愿者与4名学生的比例是正确的。如果父母在附近,即使他们不是程序员,他们通常也会选择,但通常只能帮助一两个孩子,因此对于儿童编码训练营的志愿者需要比成人编码研讨会更高的需求。

你只会覆盖你的大纲的一半。

我们有一个很好的大纲,菲尔已经组建了一组非常有组织的源文件和挑战。例如,这是主题“列表”的源文件的一部分。我们将介绍该主题,展示一些示例和演示,然后在挑战中将它们松散几分钟:

#这是一个列表(其他语言称之为ARRAY) my_numbers = 1 2 3 4   打印my_numbers  #---- CHALLENGE 1 ----#在自己的行上显示每个数字。  #---- CHALLENGE 2 ----#用“Number:”前缀每个数字并显示它。  #---- CHALLENGE 3 ----#将数字6添加到列表末尾  #---- CHALLENGE 4 ----#显示列表中的第三项(值3)。  #---- CHALLENGE 5 ----#通过调用range()函数替换文字列表。 

我们有大约16个主题,从Hello World介绍,基本类型,循环,函数……到Pygame,精灵,动画的介绍,最后是一个玩家类似Pong的游戏。菲尔在他上午的会议上,也没有在下午的会议中,在Pygame的内容附近。幸运的是,在功能和类别领域,我们构建了一个猜谜游戏,所以我们可以诚实地说孩子们确实学会了构建游戏。

经验教训:孩子们通常会开始冷,所以你需要准备好涵盖非常基本的信息。我认为他们玩得很开心,学到了很多,并且很兴奋地学习编程。对于一群真正的新手,我认为在三小时内你能想到的最好的是通过基本的语法,类型,条件,循环,函数和类。这足以让你建立一个基于文本的算命者或数字猜谜游戏。在我们的价格结束后与Phil交谈我认为最好的格式是在早上做两个初学者价格,然后在下午为那些参加过Scratch或JavaScript价格的人重复一个开始价格,然后在那里你可以专注于Pygame并构建更高级的游戏。这样可以简化初始类的设置,因为安装和配置的次数会减少。

如果孩子没有打字,移动或回答问题,那么你就丢失了。

失去孩子的注意力是非常容易的。在早上的会议中,设置麻烦杀死了我们,即使在我们开始教学之后,我们也很难让每个人都在一起并弄清楚谁可能会挣扎或无聊。我发现当我下午在教学时,我必须使用我在任何教学环境中学到的所有技巧来让孩子们和我在一起。我没有使用定义的,有时是抽象的例子,而是非常努力地使用孩子们想要的例子。我向他们寻求帮助来构建示例。我故意犯了简单的编码错误,并要求他们帮我修复它们。在做任何挑战时,我会让他们在完成时举手,或让他们站起来站在墙边,或者转动他们的笔记本电脑,这样我才能看到它。这让我可以看到谁在挣扎,并且那些正在努力寻找的人试图帮助那些正在挣扎的人。

经验教训:孩子不是成年人。然后需要不同的例子。他们需要非常快速,易于消化的信息,然后他们需要在应对挑战时获得非常快速的胜利。他们需要感觉自己是成功和有帮助的。这是最好的,特别是在较长的研讨会中,如果你能找到让它们站起来并频繁移动的方法。例如,在教授列表/数组时,请制作学生的实际“列表”。让两个人伸出手臂做括号,然后追加,删除,排序并找到这两者之间的实际学生。你做的任何事情都是为了让他们保持活跃并保持注意力,这将有助于你获得成功。

所以你有它。准备好并教孩子们编码:

  • 简化设置
  • 如果他们自带电脑,请为不同的环境做好准备
  • 如果可能的话,接近1比1,不超过4-1
  • 管理期望并涵盖基础知识
  • 有孩子专注的例子;让他们小而有吸引力

祝好运

资讯来源:由0x资讯编译自DEV,原文:https://dev.to/geekcyclist/what-i-learned-teaching-python-to-kids-1l7l ,版权归作者所有,未经许可,不得转载
你可能还喜欢