SO2——基本规则和评分

基本规则

1. 实验室

我们没有在分配学生方面设置正式的规则;只要遵守以下规则,每个人都可以参加任何实验课。相应组(34xC3 或选修课)的学生拥有参加实验课的优先权。每个实验室的人数限制为 14 人。从第三周开始,实验课的参与名单将被“冻结”。只要有空位,补考的学生可以参加任何实验室。像其他学生一样,从第三周开始,补考学生的参与名单将被“冻结”。分组是基于实验室时间分配页面进行的。你可以补上最多 2 个实验(可以参加其他小组)(在有空位的实验室中)。实验课不能补上。你不能在某个实验周内补上一周的实验。实验活动只在实验室内进行。我们鼓励你在家中阅读简介和实验室练习。你可以在家解决练习,但在实验室中你必须从头开始。

2. 分配作业的最后期限

提交 SO2 作业的最后期限为 2024 年 5 月 29 日星期三,23:59。超过此日期,将不再接受作业提交。请确保按时提交具有完整信息的作业以供评分。我们不接受此日期后提交的作业或未在 vmchecker-next 上提交的作业。测试部分中,作业将获得在 vmchecker-next 上的测试产生的分数;由于与 vmchecker-next 无关的原因导致的测试失败将不计分。不能为 2023 年 6 月的特别考试提交作业。在 待定日期 之后,可以重新为 2024 年九月考试提交作业。提交 2024 年秋季课程作业的截止日期待定。

3. 作业演示

SO2 团队保留要求某些作业进行演示的权利。演示涉及与至少两位助教的讨论,内容包括作业的完成情况、使用的解决方案以及遇到的问题。作业演示的目的是澄清关于作业完成方面的任何不确定因素并验证其正确性。SO2 团队将至少提前 24 小时通过实验室助教与将要演示作业的学生联系。最有可能的是,在 SO2 课程前/后或 SO2 实验课程结束时使用 15 分钟的时间段。

4. 作业规则

除非明确说明作业可以由团队解决,否则操作系统 2 的作业需要由个人完成。这是因为作业的主要目标是让你获得或深化实践技能。如果合作的程度过高或者你在网上寻找解决方案,这一目标将无法实现。每个作业都由应学生自行完成,学生不得查阅同伴的源代码。

我们理解团队合作很重要,但在操作系统 2 课程中我们没有进行团队项目的环境。如果你在完成作业时遇到任何问题,请使用讨论列表或向实验室助教或课程教师提问。帮助你解决问题是我们的责任。请放心依赖 SO2 团队。

你可以在合理范围内进行讨论;也就是说,你不应该向某人直接提供解决方案,但可以提供一个大致的思路。如果你被同学提问,希望能提供解释,请考虑将其引导到讨论列表和 SO2 团队。不允许在 StackExchange、Rent a Coder、ChatGPT 等网站上请求作业的解决方案。你可以提出更通用的问题,但不要直接请求作业的解决方案。

你可以随意使用实验室中的代码以及我们提供的骨架。你可以使用外部资源(GitHub、开源代码或其他资源),只要它们不代表作业的明显解决方案,无论它们是有意公开还是无意公开。另请参阅下一段。

不允许发布作业解决方案(即使在课程结束后)。如果你在 GitHub 或其他地方发现作业解决方案,请将其报告给讨论列表或私下向实验室助教或课程教师报告。我们再次强调,如果你遇到问题,不要去找高年级同学、其他论坛、StackExchange 或其他来源,请使用讨论列表和 SO2 团队。这是最安全、最诚实的解决问题方式。

不允许在同学之间传输文件。总体而言,我们建议不要与同学共享屏幕,无论是为了获得灵感还是帮助他们完成作业。避免在同学的系统上进行作业测试。可能会有例外;你可以帮助某人解决问题,但请确保这种帮助不会从“让我们一起解决这个问题”变成“让我帮你完成作业”。然而,我们建议使用讨论列表或SO2团队来提问。

5. 抄袭作业的惩罚

总的来说,我们将惩罚措施视为最后的手段。只要作业是个人完成的,没有来自外部来源的问题源代码贡献,那就不算是抄袭作业。

抄袭作业的概念包括但不限于以下情况:

  • 两份作业相似到我们可以确信得出这个结论;
  • 使用明显是作业解决方案的互联网上的源代码;
  • 使用其他同学的代码片段;
  • 在做作业期间访问其他同学的代码;
  • 修改现有的作业;
  • 按照其他同学的代码进行操作;
  • 直接帮助完成作业(由他人编写或口述代码);
  • 他人代写作业(自愿、出于报酬或其他好处)。
  • 如果两份作业被认为是抄袭的,则抄袭者和被抄袭者/提供抄袭者都将受到同等的处罚,无论谁抄袭了谁以及是谁的错。

警告

抄袭作业将导致该次作业及之前提交的作业全部 0 分处理,并且在该学年内不能重新提交。如果在该学期中有抄袭作业的情况,可以在夏季九月开始课程从 尚未 提交的作业中获得分数。我们再次强调,我们的目标不是也不会是对抄袭行为进行惩罚。我们认为作弊是不诚实的行为,如果发生作弊行为将受到惩罚。然而,我们的目标是预防作弊;为此,我们会以各种形式(讨论列表、与 SO2 团队的面对面讨论)提供支持和资源。请放心使用它们;我们相信诚实完成作业也将使你获得知识和技能的提升。

6. 补考/提分

在 9 月的补考/提分期间,你只能提交作业以及重考期末考试。你可以继续按照学期的截止日期提交作业,这意味着每个作业的最高分为 7 分。作业使用 vmchecker-next 界面进行提交。如果在学期期间没有抄袭作业,你可以(重新)提交任何作业。如果在学期期间有抄袭作业的情况,你只能提交尚未在学期期间提交的作业。提交截止日期待定。

如果你不想重新参加期末考试,可以选择不参加考试。根据 SO2 目录,成绩将记录在官方目录中。

在 6 月的特殊补考/提分期间,你只能重考期末考试,不能提交任何作业。

补考场次的考试将包括 11 个权重相等的主题(总共 3 分,其中一个主题是额外加分)。要想通过考试,你需要获得课程分数 3 分中的 1 分。实际上,也就是说你需要在考试中正确解答 11 个主题中的 3 个。

如果你重考期末考试,较高的成绩将保留(学期成绩和补考场次成绩之间)。

在单个考试期间,你只能参加一次考试。

7. 重新上课

如果你愿意,你可以保留上一个学年的整个学期活动(实验、作业、课程工作)的分数,而只重新参加期末考试。你不能只保留学期的单个组成部分的分数(例如只保留作业或只保留课程工作)。

如果你希望保留上一个学年整个学期活动的分数,必须在学期开始时宣布这一决定。否则,根据默认模式,上一个学年学期的分数将重置。

默认情况下,学年的分数将在 10 月 1 日重置。如果你在当前学年没有通过课程,你将需要在下一个学年完全重新上课。

评分

你必须获得至少 10 分中的 4.5 分才能通过。

1. 讲座(3 分)

  • 完成课程的条件是获得课程分数的 30%(10 分中的 3 分)。
  • 讲座分数将从 11 个讲座测验中获得,这些测验需要在每节课前完成(有一个测验是额外加分)。
  • 每个课程作业包含一组 4 个问题,涵盖上一堂课程的内容(有一道问题是额外加分)。
    • 不会有期末考试。
    • 每个问题得分为 0 或 1。
    • 一道问题只有完全正确回答才会得分。
    • 回答不完整或完全回答但不符规范或有错误将不会得分。
    • 课程作业不能重新做。
    • 每个作业计时 3 分钟。
    • 分数通过以下公式获得:min(作业分数总和 / 10 * 4/3, 10)。
    • 作业为闭卷考试。
  • 对于无法参加课程作业或希望提高课程分数的学生,我们将在学期末(最后一节课)进行一项覆盖整个课程内容的作业。
    • 学期末作业(最后一节课)由 11 个问题组成,涉及 3 个课程要点,持续 60 分钟。
    • 学期末作业为开卷考试。你可以使用课堂笔记、书籍、幻灯片、笔记本电脑或平板电脑,但不能联网。
    • 不允许使用手机。手机在考试期间必须关闭/静音/停用。
    • 你可以下载课程材料、实验或其他资源供离线使用。

2. 实验(2分)

  • 实验在 EG106、EG306 和 PR706 中进行。
  • 完成实验练习可获得为实验分配的 10 或 11 分。
  • 实验的最终成绩计算公式为 (sum(l1:l12)/ 12)。

3. 作业(5 分 + 额外加分)

  • 有 4 个作业:
    • 作业 0——“内核 API”——0.5 分
    • 作业 1——“基于 Kprobe 的追踪器”——1.5 分
    • 作业 2——“驱动程序 UART”——1.5 分
    • 作业 3——“软件 RAID”——1.5 分
  • 额外活动:
    • SO2 传输协议——2 分
    • 使用 KVM 的 SO2 虚拟机管理器——2 分
  • 如果作业总分 + “额外”活动的分数超过了 5 分,将按照以下程序进行:
    • 5 分被视为总分的一部分。
    • 总分与 5 分之间的差异将与讲座中获得的成绩成比例地调整。
S = A0 + A1 + A2 + A3 + Extra;
if (S <= 5)
    作业成绩 = S;
else
    作业成绩 = 5 + (S - 5) * 课程成绩 / 3; // 0 <= 课程成绩 <=3
  • 作业的验证和评分:
    • 作业将进行抄袭检测。
    • 作业将使用与 Moodle 集成的 vmchecker-next 基础设施进行自动验证。
    • 验证测试是公开的。
    • 在 Moodle 上上传作业的学生必须等待检查器在作业上传页面的反馈部分给出的反馈。
    • 反馈部分列出的成绩将是作业的最终成绩。
    • 在某些特殊情况下,可能不考虑此规则(例如,如果作业仅仅是为了通过测试而实现,而不满足作业要求)。
    • 验证系统会(自动)对某些情况(如分段错误、未处理的异常、编译错误或警告)进行扣分,而不考虑测试结果。
    • 扣分在指令列表和作业说明中指定。
    • 扣分从作业成绩(最高为 10 分)而不是作业分数中扣除。
  • 迟交作业
    • 每个作业的截止日期为发布日期后的两周。 (例外!作业 0)
    • 截止日期后,将每天扣除 0.25 分(在每个作业的最高分 10 分中),持续 12 天(最高分为 7 分)。
    • 扣分是从成绩(最高 10 分)中扣除的,而不是从分数中扣除。无论作业的分数如何,每天都会从最高分(10 分)中扣除 0.25 分。
    • 例如,对于作业 3(得分为 1.5 分),如果延迟 4 天,你将从成绩中扣除 4 * 0.25 = 1 分,最终得到最高分 9,相当于最高分 1.35 分。
    • 超过 12 天后,不再进行扣分;如果在截止日期过后的第 13 天或 50 天,或者更长时间内提交作业,最高分为 7 分,包括在补考期间。