使用结对编程进行学生协作

结对编程允许学生在同一台计算机或平板电脑上并排共同完成编码项目。 这个想法是两个头脑比一个头脑更好,通过配对和协作,学生对计算机科学概念建立了更深入的概念理解,增加了编码的乐趣,并对他们的个人表现有了更积极的看法。1 结对编程可用于所有 VEX 平台中的编码活动。

协作.jpg


什么是结对编程?

结对编程是一种协作学习方法,学生结对编程而不是单独编程。 在结对编程中,学生在同一台计算机或平板电脑上一起完成编码任务。 一对学生将一起构建编码项目并协作改进他们的项目并解决问题。

学生两人应交替扮演两个角色:“司机”和“领航员”2 ,并经常交换角色。 “驱动程序”使用键盘、鼠标或触摸屏来控制计算机的主要操作。 “导航员”通过回答问题、指出代码的潜在问题以及识别改进机会来帮助驾驶员。

孩子们指着 vexcode-vr.jpg
  • “驱动程序”专注于即时细节,例如项目的下一步、语言语法和控制结构。
  • “导航员”考虑大局,例如检查编写的代码并思考项目如何与活动的目标联系起来。

这些角色会定期切换,以便学生从每个角色中受益,并且两位程序员共同承担项目的各个方面的责任。


实施结对编程的策略

结对编程可能会有所不同,具体取决于您的学习环境、学生的年龄以及您使用的 VEX 平台。 然而,战略性地分配配对并制定明确的目标和期望将为所有学生的成功做好准备,使他们能够专注于跨任何 VEX 平台的编码任务和项目。 以下建议旨在帮助您开始并运行结对编程:

  • 分配具有类似经验的结对伙伴 - 在她对结对编程与其他形式的协作相比的有效性的研究中,3 Colleen M. Lewis 发现,如果与经验不足的学生合作,经验不足的学生可能不会积极参与任务更多的经验。 他们更有可能被动地观察更有经验的合作伙伴代码,并且当他们的合作伙伴做了他们不理解的事情时不太可能提出问题。 然而,当经验较少的学生与经验水平更接近的学生合作时,他们在项目评估中会更成功。 分配具有类似编码经验的合作伙伴,并经常更换合作伙伴,以提供一个所有学生都有权积极参与的场景。 例如,与两名刚接触 VEXcode VR 的学生搭档可能比让一名新学生与另一名已经完成多项 VR 活动和挑战的学生搭档获得更好的体验。
  • 与学生一起定义角色 - 确保学生清楚了解每个角色的职责,以便他们能够积极参与项目并防止伙伴关系中发生冲突。 在学生开始结对编程课程之前,将职责发布并与学生一起审查。

驱动程序导航图.png

    • 例如,如果学生正在开发 VEXcode VR 活动,则驱动程序应在 VEXcode VR 中构建项目并描述他们正在做什么并听取导航员的建议,而导航员则进行故障排除并检查项目是否实现了目标如 VR 活动中所写,并分享建议。
  • 频繁切换角色 - 在结对编程中经常切换角色非常重要,这样学生才能从每个角色中获益,并确保双方都积极参与任务。 当学生不开车时,注意力可能会分散,因此目标是建立一个时间间隔,使驾驶员和导航员都能专注于任务。 转换角色的频率取决于学生的注意力持续时间。 从 5 分钟的间隔开始,然后根据学生的表现缩短或延长时间间隔。

  • 建立角色转换例程并进行练习 - 与其他课堂例程一样,需要定义和练习学生如何以及何时转换角色。 明确定义此例程将确保顺利过渡并使学生能够专注于编码。 例如,为既定的时间间隔设置计时器,并为角色切换提供视觉提示。 当计时器响起时,两人可以交换座位并在需要时参考视觉提示。 当学生通过结对编程和角色转换获得更多经验和信心时,可以缩短严格的时间间隔,并允许他们按照自己的节奏转换角色。

  • 鼓励积极的沟通和协作 - 让学生清楚地了解结对编程所鼓励的讨论类型。 建立清晰边界的一种方法是建立结对编程规范。 与学生共同制定规范,以提高学生的认同度,将其张贴在课堂上并定期参考。 以下是如何在课堂上传达结对编程基本规则的一个示例。

Screen_Shot_2021-04-22_at_10.52.28_AM.png

  • 为学生制定解决问题的策略 - 创建熟悉的问题解决流程可以帮助学生发现问题并独立前进,从而最大限度地减少干扰和挫败感并提高复原力。 尝试使用以下问题解决周期来帮助学生解决他们的项目问题并提出自己的解决方案。 有关如何帮助增强解决问题和应对挑战的能力的更多信息,请参阅本文。 虽然本文重点关注 STEM 实验室,但所确定的策略可以轻松应用于各种环境中的结对编程。

Problem_Solving_Cycle_gray.png

  • 两人一组排除故障 - 建立一个程序,让学生在解决问题和排除故障时先询问其搭档,然后再让老师参与。 对于年龄较小的学生来说,有一个像“在我之前尝试 3 个”这样的绰号会很有帮助,学生应该在向老师寻求帮助之前尝试三种可能的解决方案。

练习结对编程为学生创造了一个合作的机会,可以发挥彼此的专业知识,并一起享受学习的乐趣。 想象一下,在计算机科学课上,教室里充满了“驾驶员”和“导航员”之间关于完成编码任务的最佳方法的激烈讨论。 结对编程鼓励学生协作、解决问题,并掌控自己的项目。 当定期搭建和练习时,结对编程可以为学生和教育工作者提供愉快的体验。


1 布劳特、格兰特、蒂姆·沃尔斯和 L. 马林·伊比。 “计算机科学课堂中结对编程的案例。” ACM 计算教育汇刊 (TOCE) 11.1 (2011):1-21。

2 威廉姆斯,劳里。 “将结对编程集成到软件开发过程中。” 第 14 届软件工程教育和培训会议论文集。“寻找软件工程职业”(Cat. 不。 PR01059)。 IEEE,2001。

3 Colleen M. Lewis “对于年轻学生来说,结对编程比其他形式的协作更有效吗?” 计算机科学教育,21:2, 105-134, 2011

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: