Set load caps and competencies
Each faculty member gets a maximum teaching load and a set of courses they are competent to teach.
Faculty & duties
Flip the population and the same engine works: faculty rank the courses they want to teach, load caps and competency requirements act as constraints, and the head of department publishes an allocation instead of negotiating one.
Teaching-load allocation is the same constrained matching problem as elective allocation — except the head of department has to keep working with everyone afterwards.
How it works
Each faculty member gets a maximum teaching load and a set of courses they are competent to teach.
Preferences are collected in a controlled window, exactly as they are from students.
Run the engine against caps and competencies, and publish the result with the priority rule attached — so it is a process outcome, not a personal decision.
What you get
FAQ
That is exactly what a stated priority rule is for. Rather than seniority alone, the priority basis can encode a rotation, so a faculty member who received their first choice last cycle is ordered lower in the next. The rule is published with the result, which is what makes it defensible.
Split a cohort into sections, lab groups or tutorial batches under real capacity limits.
The classic: rank the electives, respect the seat matrix, publish a defensible result.
Match students to supervisors and project topics without the annual politics.