3 ms·
Turns out a lot of the scheduling software out there was written by people who without formal training or who weren't paying attention in their algorithms cours
by throwawayjava 8y ago
Turns out a lot of the scheduling software out there was written by people who without formal training or who weren't paying attention in their algorithms course.
E.g., one year:
Me: requests A and B
Friend: requests A and non-honors B
hour 4: Me in non-honors B; friend in gym.
hour 5 (only hour honors B is offered): Me in A; friend in honros B.
Based on a few years of observations, I'm almost certain courses were filled using some variant of this algorithm:
for each student s sorted by student number:
for each non-filled course c in hour 1..n:
if(s wants c and not in c): assign s to c and continue to next hour.
for each non-filled course c in hour 1..n:
if(s wants c' and not in c' and c is like c'): assign s to c and continue to next hour.
because students with lower student numbers tended to get their choices (correlated with when student joined district far better than class status) and courses late in the day were always half empty while courses earlier in the day were always filled to the brim.
Things got better each year but never in a way that would suggest someone finally decided to pick up an algorithms textbook.
I suspect by now they've purchased something that works or else managed to prove P=NP and the solution is billions of if statements fixing special cases the teachers/students complained loudly enough about...
- thomasfedb 8y agoI don't know the details, but I know my school had a person from IT with a computer science degree on secondment to the studies department at the beginning of each year to get the timetable sorted out. The phrase "least constraints matching" is something I remember being mentioned when I asked.