The problem is to find the assignment of students to projects that optimizes an objective function. The objective function might gives points to each student as follows. For a student's project choices, for example, a student gets 5 points for getting his/her first choice, 4 points for second choice, down to 1 point for fifth choice. Other attributes could be weighted appropriately.
Previous work in this area includes a program that uses a greedy search approach. Note that for a large number of possible group assignments this could be an NP-hard problem in which an exhaustive search is not possible. For preliminary student project work on this problem see the team group assignment paper from Research Day 2003.
This project group assignment system will automatically assign students to project groups based on the above preference and job skill criteria. The instructor (or company project manager) can give different weights to the four criteria and request a different number of people to work on each project. The system will collect the preference and experience information from online surveys to serve as input to a computer program that makes the assignments. Program variables include the number of students per group and the number of projects. The resulting assignments will be viewable through a spreadsheet or web interface and the system will allow the instructor to make final adjustments. The algorithm should optimize the assignment of students to team projects based on the above constraints, and each team should have a good mix of team member work experiences (leadership as well as technical capability).
Developing the algorithm is the most interesting and the most difficult part of this project. If this project is undertaken, more detailed specifications will be provided by the instructor.