计算机系统基础实验须知
特别注意:所有的提交都以 Git HEAD 为准——这意味着如果你本地的修改没有被 make 自动提交 (或是手动提交),将不会被 Online Judge 评测。请大家使用我们提供的 Makefile 编译而非手工编译,确保你的代码被正确提交。
1. 学术诚信 (Academic Integrity)
所有课程作业都需要独立完成。
详情请参考 MIT 对学术诚信的解释。如果你对做某件事是否合理感到困惑,可以参考第一次课程的 slides 或询问老师。此外,请不要将你的代码以任何形式公开发布或给他人传阅,这么做可能导致代码相似被判定为抄袭。
2. 实验提交
在实验的目录中执行 make submit
将会自动完成提交。
设置正确的 TOKEN
我们为每个同学分配了唯一的 TOKEN (8 个字符),已发送至你的 smail.nju.edu.cn 邮箱,请查收。你需要确保这个字符串在提交时处于
TOKEN
环境变量中。如何设置环境变量请 STFW。前期请自行开始实验所需环境安装(详情请参考PA0实验)。
2.1 PA 提交方法
脚本会自动根据你的 git 分支提交到对应的实验上,例如 pa0
分支会自动提交到 PA0。提交成功后会返回提交的文件 ID:
[SUCC ✓] Received ... ics2022.tar.bz2 at 13:51:36
提交到系统的代码会进一步经过 Online Judge 的检查,包括:
- Git 记录检查
- 代码相似度检查
- 编译、运行测试用例。特别注意:Online Judge 编译运行的是 Git repo HEAD 中的代码。因此请确保你的代码最后的修改被编译且被追踪。未提交到 Git repo 中的代码将不会被评测。
2.2 Lab 提交方法
在 Lab 对应的目录中 make submit
。如 Lab1 的工作目录为 multimod/
,则在 multimod
目录中执行 make submit
。需要设置 STUID
(学号) 和 STUNAME
(中文姓名) 环境变量。
2.3 PA与Lab的OJ查询
在相应的oj页面查看 Online Judge 的返回结果,页面地址为:http://why.ink:8080/oj/ICS2024/拼接实验项目与邮件给每人自己发的TOKEN。 例如:对PA1实验,TOKEN为AABB的同学可于http://why.ink:8080/oj/ICS2024/PA1/AABB页面查看该实验的实时提交OJ结果。对Lab1实验来说,该页面地址为:http://why.ink:8080/oj/ICS2024/Lab1/AABB。
3. 评测与评分须知
3.1 截止时间
每个 PA/Lab 实验都设有两种 deadlines:
- Deadline: 为正常实验的提交ddl,分别在每个实验对应页面上公布,按照100%系数算分。
- Hard Deadline: 所有实验在 Hard deadline (通常是期末考试后的一小段时间) 时截止,不接受过期提交,为了公平,最终延期的提交成绩会乘以系数0.8。
所有提交时间以服务器时间为准。请大家注意:本课程的实验即便对于最优秀的同学来说也具有一定的挑战性。因此请不要把开始的时间拖到 deadline 临近。建议按照Deadline要求提交每一次实验,把控进度,最终每次实验成绩择优记录。
本课程中 PA 和 Labs 分别计分,100% 封顶 (即 PA 部分的加分不能代入到 Lab 部分)。
3.2 实验评分标准
如被发现有违反学术诚信的行为 (抄袭他人代码等),将会被扣分。注意 Online Judge 会编译运行你的代码,并且我们将使用我们的脚本/Makefile、在我们的环境下进行评测。因此如果你在本地修改了编译选项 (如去掉了 -Wall -Werror
等)、硬编码了路径 (例如直接打开绝对路径文件 "/home/log.txt"
) 等,提交后可能会发生编译/运行错误。
本学期每一次实验Deadline后,会开展抄袭检测,检测结果将以匿名方式发布在课程主页或OJ查询界面,若存在质疑,请单独邮件联系王慧妍老师并面谈。
一次抄袭,仅本次实验不得分但允许Deadline后重新提交; 两次抄袭,本次不得分且最终实验总分降至系数0.6; 三次抄袭,最终实验总分为0。请务必重视!
3.2.1 PA: 几乎完全客观评分
- Rejected, 编译错误或没有通过任何测试用例: 10% (诚信分)
- Partial Accepted, 部分 easy 测试通过 (此时不运行 hard 用例): 10%~60%,根据比例加权换算
- Partial Accepted, 全部 easy 测试通过,部分hard测试通过:60%~80%,根据比例加权换算
- Accepted, 通过全部 easy/hard 测试: ≥ 80%,剩余部分由人工评价给出
没有通过全部 easy 测试用例的作业将没有人工评分的机会 (即意味着实验报告不得分 。但我们会阅读你的反馈)。
3.2.2 Labs: 完全客观评分
- Rejected, 编译错误或没有通过任何测试用例: 10% (诚信分)
- Partial Accepted, 部分 easy 测试通过 (此时不运行 hard 用例): 50%
- Partial Accepted, 全部 easy 测试通过 (hard 用例没有全部通过): 75%
- Accepted, 通过全部 easy/hard 测试: 100%
3.2.3 Homework: 提交即得分
- 不论正确与否。请大家独立完成作业。
4. 遇到困难?
这时候,两个反复提到的词再次出现:
其中的 “F” 让它们更具有传奇色彩。