结对编程
结对编程是一种与合作伙伴协作编程的方式。 当你学习如何编程时,这是一个很好的方法, 而且它被科技行业的许多公司使用。
在结对编程中,合作伙伴同时一起工作。 一个合作伙伴是"驾驶员",实际输入代码。 另一个合作伙伴是"导航员",观察、提问、建议解决方案, 并思考稍微长期的策略。
对于合作伙伴来说,在整个任务过程中切换角色非常重要, 要么每 10-20 分钟切换一次,要么每个问题交替切换。
结对设置
现场结对
这是结对编程的传统方法。 合作伙伴坐在一起,使用同一台电脑,理想情况下是一台带有大型或双显示器的电脑。 驾驶员控制键盘和鼠标,而导航员 查看代码和任务描述。
远程结对
幸运的是,由于各种协作云应用程序的广泛使用, 在线进行结对编程也是非常可能的。
你需要两样东西:
- 一种互相听的方式。
- 一种共享代码和命令行的方式。
为了互相听,你可以设置 Zoom 通话、Google Meet 或 Discord 通话。
为了共享代码,你可以按照VS Code 编辑器的说明操作。
通常你们会希望都使用相同的编辑器,所以你要么想找一个使用相同编辑器的合作伙伴,要么愿意尝试新的编辑器。这也可以成为学习体验的一部分!
如果由于某种原因你无法在编辑器中实际结对,你总是可以退回到共享的 Google 文档。只需确保关闭文档中的自动更正,否则你的代码会充斥着新的和令人兴奋的语法错误。
结对常见问题
何时允许结对?
我们鼓励在项目中进行结对编程。你也可以在某些实验问题上结对编程,特别是当你卡住的时候。 只要确保你们始终在角色之间轮换,以便你们都能从经验中学习。但是,你不应该在家庭作业中进行结对编程,因为你被要求自己编写代码。
有关更多信息,请参阅关于协作学习的课程大纲。
寻找合作伙伴
我们建议在你的讨论课上找一个合作伙伴,或者参考 Edstem 上置顶的寻找合作伙伴帖子。
你不需要在每个项目都有相同的合作伙伴。结对编程既关乎沟通风格,也关乎编码风格,所以找到一个能够良好沟通的合作伙伴非常重要。
我们如何作为一对提交/获取成绩?
对于非项目任务,你应该单独提交你的工作。
如果你与合作伙伴一起在项目上工作,你们可以在同一段代码上工作。 只有一人需要将任务提交到 Gradescope。你可以通过点击提交右侧你名字下的+ 添加组成员来将合作伙伴添加到你的 Gradescope 提交中。
结对中每个合作伙伴的期望是什么?
我们期望合作伙伴相互沟通,安排结对时间, 并平等参与结对编程的过程。 如果你们中的一个想在某个项目的特定部分单独工作, 你应该与你的合作伙伴沟通。
注意:如果你口头(或通过电子邮件)同意与给定的合作伙伴一起做给定的任务, 你应该期望与该合作伙伴一起完成该任务。 你不能在任务中途抛弃你的合作伙伴,除非解除结对的决定对你们双方都是共同的。 请考虑你的合作伙伴,不要让他们悬而不决,因为在任务中途找到新的合作伙伴并不容易。 如果你计划结束合作关系并单独做下一个任务,请在任务发布时尽快告诉你的合作伙伴, 以便他们可以做出其他安排。
我的合作伙伴和我对一起工作得不好...
我们有时会看到这样的反馈:
我的合作伙伴没有做任何工作,或者没有做他们那份工作,或者没有沟通或与我见面,等等。我能做什么?
或者:
我的合作伙伴做得太多了!他们霸占了键盘, 或者他们在没有等我的情况下完成了整个任务,或者他们没有与我沟通,等等。 我觉得我没有得到真正的机会来帮助解决任务。我能做什么?
你试过事先与你的合作伙伴谈论你的期望吗?许多团队问题可以通过更好的沟通和对期望的设定来解决。
如果与你的合作伙伴交谈不能解决问题,请与课程教职员交谈并解释发生的细节。我们会试图帮助你解决问题。 如果这是一个持续的问题,教职员可以帮助你找到合作伙伴,或者允许你解除合作关系并单独提交。
如果我们的结对在任务上卡住了,我们如何获得帮助?
你可以去办公时间向课程教职员寻求帮助。 我们要求只有一人排队寻求帮助。 也就是说,请不要试图通过 将你们两个人的名字都排入队伍来"加倍"。 如果我们发现一对在这样做, 我们将删除他们两个人的名字,并将其中一人移到队伍的非常后面。 感谢你的合作。