University Timetable Scheduling with Constraint Solving
A timetabling system for universities and colleges that takes rooms, teacher availability, course enrolments and lab requirements and produces a clash-free schedule, explaining which constraints conflict when no schedule exists. An advanced final year project in constraint programming and optimisation with a usable web interface.
Advanced
Needs a team, real planning, and a supervisor who knows the area.2 semesters · 2 to 3 students
7 to ship
3 optional extrasSuggested stack
What you should ship
- Data model for programmes, courses, sections, teachers, rooms, room features, time slots and student groups
- Constraint model separating hard constraints (no clashes, capacity, lab rooms, availability) from weighted soft preferences
- Solver integration producing a valid timetable for a realistic instance of at least 200 sections within a stated time limit
- Infeasibility explanation that names a small set of conflicting requirements in plain language when no timetable exists
- Locking of manual assignments so an administrator can fix part of the timetable by hand and re-solve the rest
- Web interface for entering constraints, viewing timetables per teacher, room and student group, and exporting to PDF or CSV
- Benchmark report of solve time and soft constraint score against instance size, including at least one public or anonymised real instance
If you have time left
- Minimising teacher gaps and back to back classes in distant buildings
- Incremental rescheduling that minimises changes when one input changes late
- Exam timetabling as a second mode reusing the same data model
The problem departments have with timetables
University and college timetabling is a hard combinatorial problem, and it is still often solved by one person, a spreadsheet and several weeks before each semester. The result usually contains clashes discovered in the first week of teaching: a teacher in two rooms, a lab section in a lecture hall, a student group with three classes back to back and then a four hour gap. Every late change (a new section, a teacher on leave) means redoing a chunk by hand.
What already exists and the gap
- UniTime (Apereo Foundation) is a comprehensive open source university timetabling system for course and exam timetables, room sharing and student scheduling.
- FET is free timetabling software for schools and universities; Universiti Malaysia Perlis reported using it for course timetabling since 2012.
- Timefold (formerly OptaPlanner) is an open source planning solver with school timetabling examples.
- aSc Timetables is widely used commercial timetabling software, mostly aimed at schools.
These tools are powerful, but they are either large systems that need a dedicated team to configure, or desktop tools built around school structures. When no timetable exists, most give little help understanding why. The gap is a smaller web tool that models how a typical department actually schedules, explains infeasibility in plain words, and respects manual edits.
What you build
Two roles: a timetable administrator who enters data and constraints, runs the solver, locks and adjusts; and teachers and students who view published timetables. Main flows: import courses and rooms from CSV, set availability and preferences, solve, review clashes and scores, lock, re-solve, publish.
The technically interesting part
Writing your own solver would be a different and much harder project. The contribution is modelling:
- Expressing messy requirements as constraints. Labs need lab rooms and consecutive slots, some teachers only teach mornings, combined sections share a room, Friday prayer break is blocked. Model each with CP-SAT boolean variables and interval constraints.
- Hard versus soft. Clashes are mandatory; gaps and preferences are weighted objectives. Show how weights change the result.
- Explaining infeasibility. A solver returning no solution is useless to an administrator. Use assumption literals so the solver can return a small conflicting subset, then translate it into sentences such as "Dr Ahmed's availability, the single chemistry lab and three lab sections on Monday cannot all hold". This is what turns an exercise into a tool, and it is what to demonstrate.
How to evaluate it
- Scale: solve time and soft score for instances of 50, 100, 200 and 400 sections, generated from a realistic distribution.
- Real data: an anonymised timetable from your own department, or a public benchmark from the International Timetabling Competition; compare clashes and gaps with the manual version.
- Infeasibility: create 15 deliberately impossible instances; report how often the explanation names the true cause and how small it is.
- Administrator test: have a real timetable coordinator make five late changes; record time and how much of the timetable changed.
Suggested plan
- Weeks 1 to 3: interview your department's timetable coordinator; write every rule down.
- Weeks 4 to 8: data model, CSV import, basic hard constraint model.
- Weeks 9 to 12: soft preferences, locking, benchmarks on generated instances.
- Weeks 13 to 18: infeasibility explanation and the web interface.
- Weeks 19 to 24: real instance, administrator test, write up.
Path to a product
The first customer is your own department, then other departments in the same university. Private colleges and school networks often lack a timetabling tool and pay a yearly licence per campus. A hosted version where the solver runs on your server keeps setup simple, and a consulting service to model a new institution's rules is a realistic early income.
Scope warning
Locking is essential and easy to overlook: a system that discards manual work on every run will not be used. Do not build student registration, attendance or a learning management system. Do not attempt your own metaheuristic solver unless that is explicitly your research question.
Learn what you need on Sefism
- DSA roadmap : graphs, search and complexity behind scheduling.
- DSA cheat sheet : quick reference for the search and graph ideas you will explain.
- MIT 6.042J: Mathematics for Computer Science : logic and combinatorics for modelling constraints.
- Backend roadmap : the API and database around the solver.
- PostgreSQL Documentation : storing constraints, locks and solve runs cleanly.
Get help with this idea
This is a strong advanced project if the modelling comes from a real department. Tauseef can help you decide which constraints to model first, plan the infeasibility work, and design benchmarks examiners will respect. If you are new here, create a free account first.
Ideas and guidance, not finished projects
These are project ideas and scoping guidance, published free for students to use as a starting point. I do not build, write, or sell final-year projects, and I do not complete coursework for anyone. Take an idea, make it yours, and build it.
Not sure this one fits you?
I help students pick an idea that matches their skills and their deadline, then scope it down until it is finishable. Guidance only, never done for you.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.