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 instructor
page of the Project Group Assignment System can be accessed with Email Address = email@example.com and
password = 456. On the right-hand side of the instructor page, the "Create Teams" and "View Teams" buttons are currently not functional, but making them functional is difficult so this task will be
postponed to a later time. What is easier to do, and is the task for this extra credit, is to create another button that activates an appropriate underlying SQL statement to provide a view of the
student choices. The view of the student choices should contain information similar to that in Project Preference Spreadsheet which was created
manually from the underlying database tables. The new button, called "View Choices", should be the first one under "Manage Teams".
So that we do not lose the functionality of the current system, please copy all the files from utopia.csis.pace.edu/cs615/2002-2003/Team13/ to utopia.csis.pace.edu/cs615/2004-2005/Team6/ and
work on the version in this directory.
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. 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. 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 to be optimized is the sum of the points for each student.
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.
- preferences for projects
- preferences for the day/time scheduling of weekly team meetings
- preferences for the location of team meetings (usually based on where the team member lives or works)
- computer-related job skill experience including leadership and team-related experience
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 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 . 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.
 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.