跳转至

实验提交要求

评分说明

课程共 5 次实验,每次实验总分不低于 20 分,实际总分取决于高级功能的分数。

实验评测通过 GitLab CI 进行,每当你 push 更新时,评测机会自动编译测试你的代码仓库。

每次实验的分数构成如下:

  • (15 分)基础功能 CI 测试结果
  • (2 分)实验报告
  • \(\geqslant\) 3 分)高级功能

你可以前往你的 GitLab 仓库查看 CI 测试结果,如果仓库显示 图标,且 CI 输出(通过点击图标来查看)中包含如下几行:

lab n passed
lab n score: 15.0
Result has been sent

则说明你的第 n 次实验成功通过基础功能的 CI 测试。

补交说明

五次实验的 deadline 分别设置在第 5、7、9、11、13 周周日晚 23:59:00,实验截止前需要通过 GitLab 的 CI 测试,并在网络学堂的作业窗口提交实验报告以及基础功能最终版本的 commit id。

第 n 次实验截止后,我们会在网络学堂发布第 n + 1 次实验,同时会发布一个为期 10 天的作业补交窗口,每迟交 1 天将扣除本次实验 10% 的分数,不足 1 天的按 1 天记。高级功能不接受补交。

此外,评测机默认情况下只会进行当前阶段的实验评测,如在第 6 周评测机将进行实验 2 的评测。由于第 6 周同时也是实验 1 的补交阶段,这会导致补交实验 1 的同学无法进行实验 1 的评测。为解决这个问题,对于补交实验 n 的同学,可以在仓库根目录下新建 LAB.txt 文件,文件内容为 n,如补交实验 1 的同学需要将文件内容设为 1,评测机会读取 LAB.txt 的文件内容,从而进行实验 n 的评测。补交评测通过后,在进行下一个实验时,请删除 LAB.txt 文件,否则评测机将不会进行后续实验的评测。

实验报告

实验报告应该具备如下 4 部分内容:

  • 基础功能实现思路与难点总结

每次实验的文档中会有对本次实验报告的具体要求,除了完成文档的要求外,你还可以说明在实现过程中遇到的难点。如果你认为实验框架中存在一些比较“坑”、花了你很多时间的地方,如反直觉的设计等,也可以在报告中指出,我们会根据反馈对实验框架做改进。

  • 高级功能的设计与实现

如果在本次实验中完成了高级功能,应在报告的开头注明高级功能代码所在的分支及 commit id,将此部分作为报告的重点内容,详细阐述高级功能的设计思路与实现方法。

可以从以下几个方面进行介绍:

(1) 相关设计思路与示意图:总结高级功能的实现思路,必要时绘制示意图。

(2) 新增代码描述:介绍在基础功能之上新增的代码部分,如新增的类、函数,或对已有函数的改写,以及新增代码的作用。

(3) 高级功能效果展示:为高级功能添加测试用例,说明新增的高级功能的正确性或优化效果。

  • 实验耗时

完成每个任务花费的时间与实验总时间(仅用于课程调查,不影响成绩)

  • Honor Code

实验过程中允许同学们阅读数据库教材,查阅同类开源系统的代码实现以及实现思路方面的交流讨论。

但是以下行为被严格禁止:

  1. 直接复制其他人的代码片段。
  2. 使用 GitHub Copilot、ChatGPT 等人工智能工具进行代码补全。
  3. 将实验代码放到公开仓库。

实验报告需包含个人独立完成实验的 Honor Code,模板如下:

  1. 我在完成作业的过程中没有抄袭他人代码,如果和他人进行过实现思路的讨论,或参考借鉴了他人的实现思路,我会在报告中写明。
  2. 我没有使用 GitHub Copilot、ChatGPT 等工具进行代码自动补全。
  3. 我不会将本人代码放于任何公开仓库。