> ## Documentation Index
> Fetch the complete documentation index at: https://wiki.hoa.moe/llms.txt
> Use this file to discover all available pages before exploring further.

# 添加课程

> 在网页中添加课程

<Callout variant="tip">
  由于学校课程变动较大，因此推荐对于课程沿革较为了解的同学上手修改课程映射。查找旧课程可以在`本研教学管理与服务平台-选课业务-全校课表（本）`中查看往年课程信息。
</Callout>

<img src="https://mintcdn.com/acme-2db5a96e/p6nSzxM_KeU3caaN/images/course-mapping/course_inquiry.png?fit=max&auto=format&n=p6nSzxM_KeU3caaN&q=85&s=0c1e7ce202eb9e8e767330deb46ccfed" alt="" width="1153" height="480" data-path="images/course-mapping/course_inquiry.png" />

## 课程沿革

学校每年会有课程进行增删调整，部分课程会被另一门课程替换。 对此，我们不可能对每一年新出现的课程都新建一个仓库，对于修改较小的课程，我们选择沿用原有的仓库，通过课程代码映射的方式将不同课程代码映射到同一个仓库。

以下是截止 2026 年 4 月一些课程沿革举例：

* 高等数学：主要内容为考研数学 I 的高等数学部分，参考教材为同济大学的《高等数学》和哈工大的《工科数学分析》
  * 19 - 21 级：MATH1001 高等数学
  * 22 - 24 级：MATH1015 微积分
  * 25 级：MATH1011 数学分析
    * MATH1011 数学分析还曾作为 19 - 22 级数据科学与大数据技术专业的数学分析课程使用
* C 语言：主要内容为 C 语言编程，参考教材为哈工大苏小红版《C 语言程序设计》
  * 19 - 23 级：COMP2021 高级语言程序设计，3 学分 48 学时
  * 24 级：COMP1011 程序设计思维与实践，4 学分 64 学时
  * 25 级：COMP1013 计算思维与实践，2 学分 48 学时

## 课程仓库映射

课程仓库映射表被储存在 [hoa-major-data/lookup\_table.toml](https://github.com/HITSZ-OpenAuto/hoa-major-data/blob/main/lookup_table.toml) 中。

<img src="https://mintcdn.com/acme-2db5a96e/p6nSzxM_KeU3caaN/images/course-mapping/find_majordata.png?fit=max&auto=format&n=p6nSzxM_KeU3caaN&q=85&s=ab3f2ffd15338da5d17af9dfc2de3259" alt="" width="1536" height="1039" data-path="images/course-mapping/find_majordata.png" />

课程仓库映射表的结构如下：

* 表名 (\[table]): str
  * 课程代码
* 键 (Key): str
  * 培养方案号，用于区分不同专业的同名课程；若无同名课程，使用 DEFAULT 表示该课程在所有培养方案中通用
* 值 (Value): str
  * 对应的 OpenAuto 仓库 ID

对于新加入的课程，一般只需要将`课程代码`填入`表名`，将 `对应的 OpenAuto 仓库名`填入`值`，`键`保持默认的 `DEFAULT` 即可。注意，表名的字符串无需 ""，而值的字符串需要使用 "" 包围。

如：对于 25 级 COMP1013 计算思维与实践，课程仓库为 `COMP1011`，则映射表如下：

```toml theme={null}
[COMP1013]
DEFAULT = "COMP1011"
```

<Callout variant="tip">
  需要修改`键`的情况：

  课程代码曾用于其他课程，需要不同培养方案号来区分不同专业的课程。

  如 MATH1011 数学分析，曾用作大数据专业的数学分析课程，现用作非数学系的高等数学课程。

  此时培养方案号不能使用默认，需要在 [hoa-major-data/major\_mapping.json](https://github.com/HITSZ-OpenAuto/hoa-major-data/blob/main/major_mapping.json) 中查找到对应年级专业的培养方案号填入。
</Callout>

## 新建仓库

如果你发现某门课的课程在[培养方案](https://github.com/HITSZ-OpenAuto/hoa-major-data/tree/main/plans)中，但是 HOA 中并没有建立对应的课程仓库，请在仓库 [hoa-major-data](https://github.com/HITSZ-OpenAuto/hoa-major-data) 中[提交 issue](https://github.com/HITSZ-OpenAuto/hoa-major-data/issues/new/choose)。HOA 维护者会帮忙创建仓库。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.