Solver as a Service
Sign Up Now →Sign Up Now

Course Scheduling

Multi-semester academic planning and scheduling. Assigns students to course sections across multiple terms while respecting degree requirements, prerequisites, time conflicts, capacity limits, and student preferences.

Previewproblem type class_schedulingmanifest 2.0

Constraints#

A hard constraint must hold or the problem is infeasible; a soft one adds a penalty when broken.

ConstraintWhat it requiresKindOn by default
Section Capacity
section_capacity
Enrolment in a section cannot exceed its seat count. Expressed as a sum of per-student seats against the section's own capacity rather than a flat group-size cap, because sections differ in size and a single declared limit could not say so.hardYes
Requested Course
requested_course
A student may only be enrolled in a section of a course they asked for. HARD, not a preference: preferred_courses is the student's declaration of what is acceptable, and placing someone in a class they never requested is not a near miss, it is the wrong answer. A student who declares no list has stated no requirement and is vacuously satisfied.hardYes
Balanced Section Enrolment
balanced_sections
Prefer even enrolment across sections. Soft: an uneven but legal timetable is a worse timetable, not an invalid one.softYes