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, then publish the result with the priority rule attached. The outcome belongs to the process, and nobody has to defend it personally.
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.