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.

Built With

Share this project:

Updates