Project Group Assignment System

Information for Extra Credit Modification

A User Manual was recently created for the system and this will be the primary information source for this work. The login page of the Project Group Assignment System allows students to register and/or login to enter or modify their project choices and associated information. The instructor page can be accessed with Email Address = and password = 456. A new "View Choices" button under "Manage Teams" activates an SQL statement to present the student choices. We are currently working on the "Create Teams" and "View Teams" buttons on the right-hand side of the instructor page. The "Create Teams" button will make the assignment of students to projects by optimizing an objective function (see below), and the "View Teams" button will present the teams assigned to the projects.

So that we do not lose the functionality of the old system, all the files have been copied from to and new work has been done on this version.

Optimization Problem

The problem is to find the assignment of students to projects that optimizes an objective function. The objective function gives points to each student as follows. For a student's project choices, a student gets 5 points for getting his/her first choice, 4 points for second choice, down to 1 point for fifth choice. For a student's meeting location choices, find the best fit among the team members and give 2 points for a student having a first choice fit and one for other choices, only if there is a location fit. For a student's meeting day/time choices, find the best fit among the team members and give 2 points for a student having a first choice fit and one for other choices, only if there is a schedule fit. For a student's skill matches to the skills required for the project, give 2 points for each student's skill match. The objective function is the sum of the points for each student.

To work out a solution to this problem, it is recommended that you first implement the computation of the objective function for an assignment of people to projects. Second, implement a brute force approach that tries all the possible combinations to find the optimal one. If possible (this is optional), use a genetic algorithm approach to quickly find a near-optimal solution. Finally, I recommend that you implement an interactive method in which the user can move students among the projects and the objective function is calculated automatically for each grouping of students into projects.

General Information

This system will assign students (or company employees) to project teams where each student (or employee) lists his/her The formation of appropriate teams/groups is important for group work to be successful. For example, although the easiest method of forming student groups is simply to let students form the groups, there are significant problems with this approach, especially the tendency to choose group members based on friendship rather than more appropriate reasons. When it comes to assigning students to groups, the easiest method is random assignment but this also is far from optimal.

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) assigns weights to the four objective criteria, the number of people needed to work on each project, and the skills needed for 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 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).

Previous work in this area includes a program that uses a greedy search approach [1]. Note that this is an NP-hard problem and thus an exhaustive search is not possible due to the typically large number of possible group assignments. Therefore, it will be necessary to implement a sub-optimal optimization algorithm, such as a genetic algorithm, to perform the grouping. For preliminary student project work on this problem see the team group assignment paper from Research Day 2003.

The current system uses Cold Fusion to access a MySQL database. The system needs to be improved in several ways. The database needs to be cleaned up and the instructor interface needs the option of viewing the choices made by the students. Then, the algorithm (Java) that performs the actual grouping needs to be improved and properly implemented. 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.

[1] M.A. Redmond, "A computer program to aid assignment of student project groups," Proc. 32nd SIGCSE Technical Symposium on CS Education, pp. 134-138, 2001.