This is a continuation of one of last year's projects.
Your task is improve the system.
In particular, the system must allow the instructor to set for each project the number of students
to be assigned to that project.
The project description from last year follows.
Project Group Assignment System
The formation of appropriate groups is important for group work to be successful.
Although the easiest method of forming 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 following appropriate criteria:
The system will collect information from student-completed 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.
- compatible time schedules for group meetings
- compatible geography (work and home location) for group meetings
- compatible project interests
- diversity of computer-related job experience
- diversity of team-related and other experience and abilities
It is desirable to show the resulting assignments through
a web interface and allow the instructor to make final adjustments.
Previous work in this area includes a program that uses
a greedy search approach .
Note that due to the hugh number of possible group assignments
an exhaustive search is not possible.
 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.