Course Registration Algorithm

Implemented in Python, this project contains an algorithm that makes the ordering of the letter groups used for registration at Allegheny College more fair. The algorithm also sorts a list of students based on this new letter group order and a command-line interface is included to interact with the algorithm.


Python & Algorithm Analysis


Spring 2019

About Project

An algorithm, implemented in Python, that makes the course registration process fairer for students, specifically at Allegheny College. The project includes lists of sample students for testing and writing about the algorithm's function.

This algorithm takes Allegheny College's registration system and changes it in an attempt to make it fairer for students. At Allegheny at the time of this project's completion, the order students are allowed to register for courses is determined by class seniority (with seniors registering first and freshmen registering last). Then within each class students are split into eight letter groups, which are randomly organized to determine who registers first within each class. This means that some students could be forced to register last, or close to it, multiple semesters in a row.

With this in mind, our team decided to make an algorithm that would fix this process. More specific information about the algorithm and how it functions can be found in this document.