A program which is able to assign students to study groups and match them with study buddies within those group based on student classes.
Each Student can be randomly generated or manually input, their is a static list of classes that can be assigned to students. Classes can be assigned manually or randomly. Each class has a professor assigned to it. Each study group is randomly generated and has limited space. Each student in a study group has to have a study buddy in the group for each of their classes i.e. a study buddies must share at least one class.
This project is able to assign 99% of students to study groups such that none are overfilled and all sutdents have a study buddy for each of their classes.