-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ClassChangeController multi-request revamp #2416
base: main
Are you sure you want to change the base?
Commits on Aug 6, 2017
-
Let class change lottery accept request priorities
Make the lottery accept multiple requests per student per timeblock with priority, specified by a list of StudentRegistration types.
Configuration menu - View commit details
-
Copy full SHA for 2436d73 - Browse repository at this point
Copy the full SHA 2436d73View commit details -
Add flag to prioritize students without classes
This might be kind of unfair since all of their requests are now "stronger" than even the first request from a student with at least one class. However, it's calculated dynamically so the advantage disappears once they get their first class, and they don't get any extra priority when we try to kick students, mostly just because that part of the code is hard to reason about.
Configuration menu - View commit details
-
Copy full SHA for 9ca87a7 - Browse repository at this point
Copy the full SHA 9ca87a7View commit details -
Classify requests by priority, calculate student happiness crudely, and flag potentially buggy requests.
Configuration menu - View commit details
-
Copy full SHA for 74ed314 - Browse repository at this point
Copy the full SHA 74ed314View commit details -
ClassChangeController: work around overflowing classes
Take note of the "badness" of the assignment, which is how much it overflows true class capacities, and add a "pessimism" parameter that makes the algorithm more conservative about guessing that everybody who wants to switch out will get to. This way the lottery can be tuned to not overflow classes. This is a hacky workaround to patch the confusing student-kicking algorithm applied to "fix" the greedy student-assigning process, which doesn't always manage to get enrollments below true class capacities.
Configuration menu - View commit details
-
Copy full SHA for c701d1c - Browse repository at this point
Copy the full SHA c701d1cView commit details -
Make options all true parameters
This allows for better introspection (shell_plus can autocomplete the parameters names), alerts you if you misspell a parameter name, puts the default values right next to the option names, and generally shortens the code a little.
Configuration menu - View commit details
-
Copy full SHA for a75f42d - Browse repository at this point
Copy the full SHA a75f42dView commit details -
ClassChangeController: rename, clarify orig/base enrollments
Separate "orig" and "base" enrollments and capacities, "base" referring to the state of enrollments after unenrolling students from classes they want to switch out from, so that enroll_orig and section_capacities_orig (among others) are consistent with each other about the state of enrollments, and so that we have the section capacities needed to print_stats accurately after assignments are saved.
Configuration menu - View commit details
-
Copy full SHA for 3ab0e92 - Browse repository at this point
Copy the full SHA 3ab0e92View commit details -
Add ClassChangeController email options
- Make the previously hard-coded check-in room an option, and prompt for it as needed - Slightly paranoidly confirm which email to send the class changes email from - Text formatting
Configuration menu - View commit details
-
Copy full SHA for 4f73cd5 - Browse repository at this point
Copy the full SHA 4f73cd5View commit details
Commits on Mar 1, 2018
-
Configuration menu - View commit details
-
Copy full SHA for 38ca75d - Browse repository at this point
Copy the full SHA 38ca75dView commit details -
Fix double-counting multi-timeslot classes
A lot of sums along some axes should have been "any"s.
Configuration menu - View commit details
-
Copy full SHA for e6f8adf - Browse repository at this point
Copy the full SHA e6f8adfView commit details