实验说明

代码位置

对于基础功能,仅需要正确补充填空区域的代码,实现对应的功能即可。 各次实验的填空区域均进行了注释,以LAB 1为例,仅需要在如下区间内填充代码即可。

// LAB 1 BEGIN

// LAB 1 END

各位同学仅需要搜索对应的注释"// LAB N BEGIN"即可快速定位补充代码的区域。

更新说明

实验框架可能会有更新,此时需要将实验框架更新部分添加到当前的实验框架上。为了新增一个远程仓库,在你的 dbtrain-lab 仓库目录下执行:

git remote add upstream git@git.tsinghua.edu.cn:dbtrain/dbtrain-lab-template.git

之后每次需要拉取新的分支时,执行

git fetch upstream

然后再将更新的分支并入你的代码,例如将 upstream 的 master 分支以 merge 方式并入当前分支,执行

git merge upstream/master

merge 后可能产生冲突(如果你和上游仓库对同样的地方进行了不同的修改),这种情况请手动解决所有冲突并执行 git 的 add 和 commit 指令完成合并。

提交说明

评测通过 CI 进行,每当你在 master 分支上 push 更新时,评测机会自动将仓库的 src 文件夹进行编译,然后运行测试脚本进行测试。

不要私自修改 .gitlab-ci.yml 文件。

评测机环境为 Ubuntu 22.04,各工具版本如下:

cmake 3.22.1
make 4.3
g++ 11.3.0
flex 2.6.4
bison 3.8.2
  1. 第 N 次实验截止后发布第 N + 1 次实验,防止出现提交错误。

  2. 第 N 次实验截止后发布一个 10 天的作业补交窗口。

  3. 作业仅需要提交对应版本的 commit id 以及实验报告,commit id 直接使用提交窗口的输入框提交,报告以 pdf 形式通过附件提交。

补交说明

CI 评测默认情况下只会进行当前阶段实验的测试,如在 lab 3 实验阶段会对 lab 1 至 lab 3 的相关测试进行评测,因此,若在 lab 2 补交阶段(同时也是 lab 3 实验阶段)才完成 lab 2 的实验,则会导致评测结果失败。

对于在 lab 3 实验阶段补交 lab 2 实验的同学,如想要只进行 lab 1 和 lab 2 的评测,可在实验仓库根目录下新建 LAB.txt 文件,文件内容为 2,表示想要进行 lab 2 阶段的测试,评测机会读取 LAB.txt 文件内容进行 lab 1 和 lab 2 相关测试。后续实验补交流程同理。

高级功能

  1. 高级功能不要求严格按照各次实验文档给出的推荐选项,只需要选择老师课程讲解过程中与实验相关的知识即可。

  2. 高级功能的添加要尽可能设计对应的测试用例,可以使用 SQL 测例,也可以使用 google-test 等工具进行单元测试。

  3. 高级功能的总评为 3 分,只需要给出一个合理的设计也能获得部分分数,但是希望取得高分则必须实现一些有挑战性的功能。

评分说明

每次实验 20 分,五次实验共 100 分。

对于每次实验:

  • 15 分是自动化测试的结果,通过所有测试即可得到满分,可在 gitlab 的 CI 中查看测试结果。
  • 2 分是实验报告分,具体见报告说明。
  • 3 分是高级功能分,具体见每次实验的高级功能说明。

报告说明

内容要求

报告需要至少包括如下内容:

  1. 基本功能的实现难点。
  2. 实现每个功能大致用了多少时间,实验总耗时多少(该条仅用于课程调查,不影响评分)。
  3. (可选)高级功能的设计与实现方式,以及代码对应的分支和commit id(如果有的话)。

报告格式

  • 要求为 pdf 格式。
  • 没有具体内容模板,但是建议从报告结构上突出重点内容,例如采用标题突出段落重点。
  • 不要直接将大段代码复制到报告中。
  • 报告不要过长,过于冗长的报告可能会影响你的分数。
  • 可以使用标准的示意图来展示自己的设计,不要使用过于抽象的手绘示意图。

BUG Report

对于实验框架的BUG可以在网络学堂的课程讨论区进行发布,方便其他同学查看。此处给出BUG Report的标准格式。


【重要BUG】\【一般BUG】
位置: xxx.cpp(文件名) 117(debug分支中对应起始行号)
说明: ......(简要的说明文字)
(如果有补丁文件,直接利用git diff创建补丁,置于附件中即可)

git diff补丁文件制作方法教程:


## 建议每次修复BUG重新建立分支

git checkout -b debug-patch(任意分支名)

## 修复BUG

git add .
git commit -m "Fix a bug in ..."
git diff debug > xxx.patch(任意patch名)

## 提交xxx.patch文件到讨论区

其他说明

1.时间规范

各位同学需要严格按照各个实验的截止时间完成各次实验任务,对于没有按时完成实验的同学会在实验得分上收到一定影响。 迟交实验具体的惩罚措施如下: 迟交成绩 = MAX(0, 实际成绩 × (1 - 0.1 × 迟交天数))

2.诚信规范

各位同学一定要独立完成各次实验,本课程鼓励同学们思想上的交流,但不建议同学们直接进行代码交换也不要抄袭往届学长学姐的代码。如果发现严重的代码雷同,可能会面临助教谈话甚至于实验记为0分的风险。

3.保密规范

各位同学一定不要将本实验放到公共仓库上

results matching ""

    No results matching ""

    results matching ""

      No results matching ""