实验提交要求
评分说明
课程共 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
实验过程中允许同学们阅读数据库教材,查阅同类开源系统的代码实现以及实现思路方面的交流讨论。
但是以下行为被严格禁止:
- 直接复制其他人的代码片段。
- 使用 GitHub Copilot、ChatGPT 等人工智能工具进行代码补全。
- 将实验代码放到公开仓库。
实验报告需包含个人独立完成实验的 Honor Code,模板如下:
- 我在完成作业的过程中没有抄袭他人代码,如果和他人进行过实现思路的讨论,或参考借鉴了他人的实现思路,我会在报告中写明。
- 我没有使用 GitHub Copilot、ChatGPT 等工具进行代码自动补全。
- 我不会将本人代码放于任何公开仓库。