Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Schedule Optimization

Optimizing Four-Year Course Planning — a mixed-integer linear programming (MILP) system that constructs optimal four-year university course schedules, minimizing total courses required while satisfying prerequisites, corequisites, course-offering terms, major/minor requirements, and per-semester credit-load bounds.

Semester project for CSE 478/578 (Soft Computing for Optimization), Fall 2025, Miami University, by Joseph Follrath, Jackson Frey, and Will Paz.

What it does

Given a student's chosen major/minor requirements, the full course catalog (with terms offered and credit hours), and prerequisite/corequisite chains, the model:

  • Builds decision variables for every (course, semester) pair across an 11-semester horizon
  • Enforces required courses, sectional requirements (credit thresholds across course groups), and choice requirements (pick N of M electives)
  • Enforces prerequisite chains (AND-within-group, OR-across-groups) and corequisites (same-semester-or-earlier) via auxiliary boolean variables
  • Bounds per-semester credit load (12–16 credits regular term, ≤3 credits summer)
  • Solves with Google OR-Tools' CBC solver, minimizing total credits taken to reach graduation
  • Produces a semester-by-semester schedule with prerequisite satisfaction diagnostics for each selected course

Structure

notebook/ScheduleOptimization.ipynb   full MILP model: constraint construction, solve, and schedule output
docs/Final_Report.pdf                 final paper: problem definition, model formulation, and results

Running it

Requires courses.json (course catalog with terms/credits), a major-requirements JSON (e.g. BachelorofScienceinComputerScience.json), and a course_requirements.json (prerequisite/corequisite data) — these were scraped from Miami University's course catalog and are not included here.

pip install ortools
jupyter notebook notebook/ScheduleOptimization.ipynb

Notes

Built as a course semester project — preliminary results are promising, but per the final report, the model needs further refinement (general-education requirements, more majors/minors) to produce fully realistic four-year plans.

About

MILP-based four-year course scheduler with prerequisite/corequisite constraint modeling, built with OR-Tools. CSE 478 team project.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages