Inspiration
We were inspired by the issues we face as Purdue students with our course schedules and finding class timings that match our preferences.
What it does
We created a web application that allows the University to allocate classes as efficiently as possible. We allow students to rank their preferences for classes, and that is used to allocate the most optimal schedule to all students.
How we built it
We first devised the algorithm our web application would be based around: students ranking their preferences regarding the class sessions they get and then automatically getting their schedule assigned to them in a way that maximizes the overall schedule satisfaction of all students in the university. Then, we generated our test data using a C program, implemented our algorithm and backend using Python, and wrote the front end using NodeJS.
Challenges we ran into
How to weigh the student ratings as well as how to standardize the scores to create a "happiness index" to quantify how optimal the schedules are. Considering the number of independent variables we had in the program, it was hard to devise an algorithm.
Accomplishments that we're proud of
In our tests, we were able to improve the previously assigned valid schedules of our mock population to increase their total schedule satisfaction by 26%.
What we learned
We learned that we had to make some assumptions and simplifications to render our ideas feasible within a given short timeframe.
What's next for BoilerTime
The scoring system was devised for our greedy hill climb algorithm. However, this algorithm could be substituted by a reinforcement learning algorithm in the future. Furthermore, more preference parameters could be added to scale the program's complexity.
Log in or sign up for Devpost to join the conversation.