Everlasting Pages

返回

Lab 5:同伴代码审查

介绍#

在本实验中,你会与实验课中的另外 1–3 名学生比较自己对 Project 1 的解答。本周要求准时出席。如果无法参加自己通常参加的实验课,可以改去另一节。如果(并且只有在)你完全无法参加任何一节实验课,请填写这个豁免表单

作为本实验的一部分,TA 会讲解 Project 1 解答的一部分。在你向 Gradescope 完成 Project 1 最终提交之前,不要参加本实验,否则你会因学术不诚信而被记录。

LinkedListDeque 概览#

你的 TA 会先简要介绍工作人员提供的 LinkedListDeque 解答。

LinkedListDeque 同伴审查#

与另外 1–3 名学生组成小组并比较解答。你们应当在 Discord 房间中与其他学生组队。不要害怕认识新同学!61B 中的程序员在编程经验和熟悉程度方面差异很大。这里的目标是互相帮助,让彼此变得更好。请友善一些;如果你的解答不够优雅,甚至丑得离谱,也不要感到难过。

我当然也写过极其丑陋、毫不优雅的代码!如果你好奇,这里有我在 1997 年写的一个 1600 行怪物,以及它运行时的视频演示knaveos 不会出现在期中考试中。

不要忍不住向同伴逐字解释自己的实现究竟如何工作。相反,应当把讨论集中在更具体的问题上。下面列出了一些建议问题:

  1. 你遇到的最烦人的 Bug 是什么,又是如何修复的?你使用调试器了吗?你是通过添加特殊情况修复的吗?你是否做过“改一点然后祈祷”(即做一个很小的修改,然后希望自动评分器认可)?
  2. 为了让代码更简单,你最后有没有删掉某些内容?如果有,删掉了什么?
  3. 你的代码中有没有特殊情况?
  4. 你有没有私有辅助方法?
  5. 你的代码有没有在某些地方重复自身?私有辅助方法会有帮助吗?
  6. 你有没有在某些地方调用或复用代码?

讨论结束后,在 self_reflection.txt 的前半部分填写你自己的反思。

ArrayDeque 概览#

你的 TA 会讲解 ArrayDeque 解答。

ArrayDeque 同伴审查#

现在,再次结对,像讨论 LinkedListDeque 那样讨论你们的 ArrayDeque 解答。填写你的 self_reflection.txt。我们建议你与讨论 LinkedListDeque 时不同的人交流,但继续留在原小组中讨论 ArrayDeque 也没有问题。

自我反思与提交#

确保你已经回答了起始代码中所提供的 self_reflection.txt 文档里的至少 4 个问题。请 TA 检查你的 self_reflection.txt,并给你一个需要填写到 magic_word.txt 中的魔法词。推送到 GitHub,然后提交到 Gradescope。


原始页面:https://sp21.datastructur.es/materials/lab/lab5/lab5