1 介绍
- NUSMods API 包含用于渲染 NUSMods 的数据。这些数据包括新加坡国立大学(NUS)提供的课程以及课程表的信息,还包括上课地点的详细信息。
- 可以使用并实验这些数据,它们是从教务处提供的官方 API 中提取的。
- 该 API 由静态的 JSON 文件组成,每天从学校的 API 抓取一次数据。所
- 有成功的响应将返回 JSON 格式,所有的端点以
.json
结尾。
- 有成功的响应将返回 JSON 格式,所有的端点以
NUSMods API
2 主要键值
2.1 lessonType & classNo
- 每个课表中的每一堂课都有一个
lessonType
(课程类型)和一个classNo
(班级号)。- 每个学生必须参加模块提供的每个课程类型的其中一堂课。
- 例如,如果一个模块提供了两节辅导课和一节讲座,那么学生必须参加讲座,并且可以选择参加其中一节辅导课。
- 同一个classNo必须参加一次
- 例如,某模块有两个讲座,分别在周二和周三进行,学生必须选择其中一个
- 例如,某模块有两个讲座,分别在周二和周三进行,学生必须选择其中一个
2.2 weeks键
weeks
键返回的值通常是一个排序的数字数组,表示课程在哪些学校周上进行,范围从第 1 周到第 13 周。- 有些课程会有不同的时间安排,
weeks
可以返回一个WeekRange
对象。该对象会包含一个start
和end
键,表示课程的开始和结束日期。编辑
- 有时还会包含
weekInterval
键,它表示课程每隔多少周进行一次,或者weeks
键,它是一个包含多个周数的数组
2.3 学习负担(workload键值)
workload
键通常是一个五元组,表示学生每周在讲座、辅导课、实验室、项目/实地工作以及课前准备中需要投入的小时数。例如,[2, 1, 1, 3, 3]
表示每周:
- 2 小时讲座
- 1 小时辅导课
- 1 小时实验室
- 3 小时做项目工作
- 3 小时课前准备
每个学分代表每周 2.5 小时的工作,因此标准的 4 学分模块每周需要 10 小时的工作。模块学分不一定是整数。
2.4 先修、同修和排除模块(Prerequisite, corequisite and preclusions键值)
这些键决定学生是否可以选修某个模块。
- 先修模块 是指学生在选修该模块之前必须完成的模块。
- 排除模块 是指与当前模块内容有很大重叠的模块,学生不能同时选修这些模块。
- 同修模块 是指必须与当前模块一起选修的模块。