课程导航
2026年10月3日 · guide

选课怎么选才不踩坑:课程先修关系、满负荷上限与时间表三件事

先看先修关系:三种写法决定两门课能不能同一学期修

选课时排在第一步的通常不是"哪门课有意思",而是"这门课现在能不能注册"。先修要求写在院校官方课程目录里,读的时候有固定语法,读错一个符号就可能把整个学期的顺序排反。

第一件事是分清 prerequisite(先修课)和 corequisite(并行必修课)。按 MIT 课程目录 Subjects 说明页的写法,Prereq: 引出先修课,Coreq: 引出核心课,后者用斜体标注,指的是应当与本课程同时修读的课程,目录顺序上先修课列在核心课之前。这个区分很实用:标了 Coreq: 的两门课必须放进同一个学期,而标了 Prereq: 的课必须先于本门课完成。

第二件事是看清单里的罗列方式。MIT 目录给出了三种写法:一整串先修课且没有任何附加文字时,表示全部都要修完,例如 Prereq: 6.1220[J], 6.4100, 18.417;出现 "or" 时表示一串里只需修其中一门,超过两个选项时用逗号分隔,例如 Prereq: 7.03, 7.05, 7.06, or 7.28;括号用来把单个先修课与"一串中选一门"分开,或者把几串分开,例如 Prereq: 18.06 and (6.1220[J] or 6.3800),这里的意思是 18.06 必须修,另外在两门中任选其一。第三种写法最容易读错——括号内的"或"只作用于括号内。

第三件事是隐含先修不会被列出。MIT 目录明确说:如果 7.06 已经列为先修课,就不必再列 7.05。也就是说目录里那一行并不是你需要准备的全部,前面被覆盖的低阶课程仍是你自己要补的链条。手工核对的办法是:看到一串先修课时,逐门回到目录中查它自己的先修行,一层一层往上推,直到没有为止。

至于没修完先修课的后果,MIT 目录的规定很直接:未完成所列先修课的学生,必须取得任课教师(instructor)的许可才能注册。这是注册环节的限制,不是入学或身份环节的限制——实操上意味着你可以早早给任课教师写信问许可,但不能默认系统会放行。

再看学分上限:全日制下限、正常负荷、超负荷审批是三个不同的数

学分限制分三层,分层之后才知道"为什么各校不一样"。原因有两个:一是学制单位不同,有的学校按 semester(学期)计,有的按 quarter(学季)计;二是计数的单位本身不同,有的写 units,有的写 credit hours,两者不是同一个东西,不能直接换算。因此跨校比较时只能逐个学校查自带的那个数字。

全日制身份的下限,看 NC State 的 REG 02.20.05 Course Load:全日制本科学位生的最低负荷是每学期 12 credit hours,唯一例外是最后一学期——如果完成学位要求只需更少的学分,可以低于 12。

正常负荷与学院下限,看 UC Berkeley Office of the Registrar 的 Undergraduate Classifications 页面:本科生每学期 15 units 被视为正常负荷,一般被期望注册不少于 15 units;部分学院的最低负荷要求是 12 或 13 units;研究生的正常全日制负荷是每学期 12 units。同一页还规定,本科生降低负荷(reduced course load)必须经所在学院或学校的院长办公室(dean's office)批准。注意这里"12 或 13 units"的学院下限是低于正常的 15 units,但不等于没有下限。

上限与超负荷审批,NC State 的 REG 02.20.05 写得最细,且门槛是两道而不是一道:本科学位生每学期的学分上限是 21 credit hours(夏季学期是两个课程加一门体育课);注册 19 credit hours 或以上的,必须先取得学术顾问批准;要超过 21 的上限,则需同时取得学术顾问与学院院长的批准。研究生那边,秋季或春季学期上限是 15 credit hours,夏季学期 6 credit hours。注意 19 和 21 是两个性质不同的门槛:19 触发顾问批准,21 是上限本身,超过它要顾问加院长两道签字。

手工核算时按这个顺序来:先用全日制下限确认身份不受影响,再看自己所属学院有没有高于全校的额外下限(UC Berkeley 的例子说明学院要求可以是 12 或 13 units),最后看打算选的总数有没有触到 19 或 21 这类门槛,触到就提前启动审批,不要等系统拒了再补。

最后排时间表:先有完整时间表才谈得上冲突

时间表这件事的最大坑,是不同学校的选课与排课流程顺序相反,导致"冲突在哪一步暴露"完全不同。

Stirling 大学教学时间表页说明的是选了才看得全的流程:所有学生必须完成注册步骤(enrolment steps)和小组环节报名(group sign-up),才能查看完整时间表;在此之前,时间表只显示 lecture 这类全班活动的必修模块时间,seminar 等小组环节要等报上名之后才出现。这类流程下,选修课的时间冲突在第一阶段根本看不见,你能做的是先用已知的必修时段占住主干,注册开放后尽早完成 group sign-up,冲突通常在这个环节才真的暴露出来。

Edinburgh 的 Student Timetables FAQ 说明的是先模拟再选的流程。该校建议先研究课程选项,再考虑它们如何排进时间表,需要同时看上课地点与时间、课时是否跨校区分布、所选课程的教学活动是否前后紧接。其中 Course Timetable Browser(CTB)是 Path 的一个子组件,可以对候选课程组合做建模,用来尝试排出一份无冲突的时间表,看看每天大概是什么样子。但同一页写得很清楚:这些工具只辅助你考虑选项,不确认任何选课;学生选完课程后由 Timetabling Team 分配班级,最终选修课的选择按各 School/Deanery 通知的流程确认。

两类流程下的冲突处理顺序可以统一成一条:必修课时段是不可动的固定项,先把它标出来;选修与各并行环节往剩余空档里填,同时检查跨校区通勤和前后课程之间的衔接;如果选修之间仍有叠压,回到第一步——看它们是否属于 Coreq: 标注的必须同修组合,或者是否落在同一串"or"或同一个括号内,可以从里面挑一门时段不冲突的。做完这轮之后再下手,比选完再退改要省事得多。

参考资料

本文引用的学分与时间表规定均出自上表校方文件,各校规则会调整,实际选课请以目标院校官方最新发布为准。