This app will allow you form class groups based on student group preference orderings. Upload a comma separated value file (csv) with a row for with the following columns (the first row must match the names exactly):Student ID, first_choice, second_choice, third_choice, fourth_choice, fifth_choice, and quiz.
The groups can be based on topics for a research paper or based on organizations for a simulation.
The algorithm used to form groups assigns students to groups based on their first preference, if there are more students in a group than there are slots available, students with the lowest scores (in excess of the total number for that group) are distributed to their second preference. Next, students are resorted and, again, if any groups have more students than slots, the process is repeated for their third preference, and so on.
Because the method utilized here gives students with a high quiz score priority in selecting their preferred groups, some groups may have a disproportionate number of strong or weak students. To check for this, I've included a boxplot of score distributions for each iteration.