教孩子编程

你好 我叫Mikhail Kapelko。 我从事专业软件开发超过10年。 其中,近年来与iOS相关。 在业余时间,我会开发游戏和创作工具。


复习


今天,我想谈谈我在教孩子编程方面的经验,特别是我们将考虑:


  • 学习过程的组织
  • 培训计划
  • 记忆游戏
  • 编程工具
  • 课程
  • 结果和计划

学习过程的组织


培训是企业社会责任的一部分:公司为办公场所提供设备,并把想要尝试自己当老师的员工和想要教育孩子的员工团结在一起。 所有这些完全是自愿的。


潜在的教师被分成几组,因此,由三名教师组成的小组由一名经验丰富的和两名新来者组成。 一组老师带领一组学生。 学生按年龄和技能分类。


2018年,我第二次参加了针对10岁左右儿童的培训计划。 我们的小组从2018年10月至2018年12月在星期六的10:00至12:00工作。 利用我的正式职位,我还把我的妻子拖到了课程上。


培训计划


当我第一次参加时,我们的小组漫不经心地教孩子们编程:我们提出了一些简单的任务来解释操作员。 结果,在培训结束时,我们没有要评估的具体内容,吹嘘的内容和分析的内容。


我第二次决定让我的孩子们和我一起实施所谓的记忆游戏。 作为培训成功的标准,我确定了以下条件:在课程结束时,每个学生在1小时内从头开始独立创建一个简单的记忆游戏。


为了达到这个标准,我决定检查“重复是学习之母”这一说法,因此我们在每节课中都从头开始创建了所有内容。 我强调我们没有在学生帐户中保存任何东西。 任务是保留在头脑中而不是在计算机中创建游戏的技能。


记忆游戏


让我们看看什么是记忆游戏。


1)在最简单的情况下,我们有16张卡,只有8张是唯一的,其余8张是它们的对。



在显示的图像中,我们只有两张卡片,上面有猫,狗等。


2)在游戏开始时,我们将卡片洗牌并朝下放置。



3)游戏中的第一个参与者展示了两张牌。



4)如果卡不同,请将它们放回原始位置: 面朝下。



5)游戏中的下一位参与者打开另一对牌。



6)如果纸牌匹配,请将其从比赛场地中移出。



游戏的目的是从现场移除所有卡牌。 这种形式的游戏不包含比赛,因此您可以玩一个人。


一方面,记忆游戏非常简单,另一方面,游戏的实现会影响创建或多或少复杂游戏所需的基本功能:


  • 创建元素
  • 他们在球场上的位置
  • 项目选择
  • 比较所选项目
  • 隐藏匹配项

编程工具


作为工具,我们使用了Scratch介质。 它旨在教孩子编程,因此其中的每个动作和每个操作员都以图形方式表示。


例如,使用以下脚本,您可以将猫每秒旋转360度:



结果如下:



我注意到,这是一种以图形方式呈现代码的相当成功的解决方案。 例如,现在由SAP推广的一种付费解决方案包括使用所谓的多维数据集进行编程:



在这里,您只能在必填字段中输入所需的值。 如果您需要一些非标准的内容,则只有脚本会有所帮助,该脚本将再次与多维数据集一起显示。


从个人经验来看,我会说Scratch解决方案完全不会放慢脚步,这不能说是SAP解决方案。


第一课


第一课是入门课程,因此我们没有使用计算机。


该计划如下:


  1. 认识
  2. 玩记忆游戏
  3. 学习算法的概念
  4. 编写游戏算法
  5. 分析课程

1)相识


有学生的老师围成一圈。 这使所有人平等,并使每个人都成为团队的成员。


第一位参与者称呼他的名字,并谈论他为什么决定参加此课程。 第二个及以后的参与者首先重复每个先前参与者的名字和故事,然后他们命名自己的名字并讲述。


看起来像这样:


  1. Vasya:“我的名字叫Vasya,我想学习Scratch,因为我父亲造就了我”
  2. Dima:“这是Vasya,爸爸强迫他做Scratch。我叫Dima,这是我Scratch的第四年。”
  3. Olya:“这是Vasya,他的父母强迫他。这是Dima,他实际上是Scratch的资深人士。我叫Olya,我在教书的第一年,我将和所有人一起学习。”

此约会格式的目标如下:


  • 熟人
    • 每个团队成员必须以其他团队成员的名字知道
  • 公共空间
    • 圈子中的所有参与者,而不是落后于工作,这减少了计算机上游戏的分心
  • 平等
    • 老师和学生都围成一圈,这使每个人作为团队成员保持平衡而没有等级
  • 注意事项
    • 每个团队成员必须认真听取团队其他成员的意见,以正确重复他们所说的话。
  • 意见反馈
    • 团队中的每个成员都应尽可能清晰地表达自己的想法,否则其余成员将无法重复
  • 好玩
    • 记住名字的问题使每个人都笑

2)记忆卡游戏


  1. 我们拿两副牌,从中选择8张相同的牌
  2. 我们将卡片以4x4网格朝下放在桌子上
  3. 学生站在桌子旁边
  4. 每个学生轮流翻转两张牌
    4.1。 如果卡片匹配,则将其从字段中删除
    4.2。 如果卡不同,则将它们面朝下

学生们非常喜欢玩棋盘游戏。 在比赛中,老师会说出正在发生的事情。


经过几次聚会之后,我们继续研究算法的概念。


3)算法的概念


  1. 首先我们问学生,我们有发言的机会,我们找出每个学生的水平
  2. 如有必要,请纠正陈述是否接近预期答案
  3. 我们建议编写一种算法,将人从“站在办公室门外”状态转移到“在办公室的计算机上工作”状态

学生们真的很喜欢去董事会上写字,因此我们依次叫每位学生编写算法的一个段落。 我们使用最活跃的学生作为算法执行者。


4)游戏的算法


我们建议编写一个游戏算法,再一次召集大家在董事会上加分。 完成算法描述后,我们再次玩纸牌,但这一次,每个学生都必须宣读算法步骤。


看起来像这样:


  1. 瓦西亚:“我们正在折16张纸牌,面朝下”
  2. 迪玛:“交几张牌”
  3. 帕夏:“如果两张牌不同,则将它们正面朝上”
  4. 菲利普:“交出几张纸牌”
  5. Misha:“如果有两张牌重合,则将它们从场上移开”

5)课程分析


第一堂课到此结束,老师们将有机会讨论他们对本堂课和学生的印象,开发让安静的人和激进主义者相处的方法,并商定下一堂课的进一步计划。


我们有以下解决方案:


  1. 为了保持安静和激进主义者之间的平衡,以保持安静和平衡。 否则,一群激进主义者会创造暴风雨的温床,而一群沉默寡言者会创造沙漠的温床,这会减慢学习过程。
  2. 学生的需求准确性 维权人士喜欢做鬼脸,这对纪律有不良影响。

第二和第三课


我们通过热身再次开始了随后的课程:我们围成一个圈,起了个名字,并告诉谁做了什么。 如果没有,那为什么呢。 和以前一样,每个参与者首先重复以前的发言,然后才谈论自己。


在第二课中,我们为游戏环境中的元素创建了要求,并尝试在Scratch中创建该元素。 这是完全成功的。


在第三课中,我们尝试创建16个元素并将它们排列在4x4网格中。 我们在这里停滞不前,因为 学生无法理解在网格中排列16个元素的坐标系。 很明显,课程计划只是计划,而现实正在发生变化。


我们有两种方法可以解决坐标系问题:


  1. 继续讲授坐标系,可能会在课程结束前没有时间创建游戏
  2. 更改游戏的要求,以便不需要坐标系

我们决定走第二条路,因为 我们仍然不是一所学校,我们的目标是教如何创建游戏,即 在实践中而不是理论上应用知识。 因此,我们决定用16个元素的圆替换4 x 4的元素网格。


这个决定使我得出以下结论:


  1. 要解决该问题,通常可以找到一种更简单的方法。
  2. 尽管不太灵活,但此路径更易于理解。
  3. 稍后在确实需要时,您可以走一条艰难的道路来提高灵活性。
  4. 简化使最终目标更趋近,复杂性也随之而来

第四课及后续课程


从第四课开始,我们取消了写作要求阶段,因为 她开始学习大部分课程:在最后期限之前,我们再次偏离了实践而不是理论。 这次,所有要求都已预先编写并“从上方”发布。 但是仍然没有人读过它们。


在第四和第五课中,我们用圆形创建了16个元素,选择了一对元素并检查它们的重合性。


从第六课到第九课,包括第九课,我们每次都从头开始重新创建游戏。 每次发生的速度越来越快,因此从第八节课开始,我们引入了排行榜,记录了游戏创建的阶段和每个学生的时间。


最后一课


上一课,每个人都在一两个小时内或多或少地独立完成了游戏的开发。


这是上一课的排名(姓名被隐藏):



在下面,您可以查看在Scratch中为最快创建游戏的学生创建的记忆游戏:30分钟。



结果和计划


培训的结果超出了我的期望:


  • 三个学生在大约一个小时或更短的时间内完成
  • 在大约一个半小时或更短的时间内完成两次

今年,我计划不使用Scratch,而是使用Opensource Game Studio工具包进行培训:学生将使用Lua,Git和GitHub Pages。



PS英文版在这里可用


更新: 关于2019年培训的文章

Source: https://habr.com/ru/post/zh-CN438278/


All Articles