The MarkUs system that is sometimes used for assignment submission has a feature that allows students to form teams, if permitted by the course instructor. Imagine a more elaborate version which allows the instructor to specify what he or she considers to be desirable groups, such as groups with students from the same part of the city, with diverse majors, and with at least one group member who knows Java. The system could survey the students for the relevant information and then put them into groups according to the instructor’s criteria. A system for grouping student could store this data in XML files.