The objective of this project is to devise an application (ideally in ruby), to group students into teams within which they are to perform a group assignment. At the very least, the application should be able to partition is class of n students in either mixed or same ability teams, each containing g or g+1 students. The input to the application will be a list of students with an identifier and mark (assessing ability) for each student. The output is a list of teams and the students within each team.
The project should explore various ways of making the group allocation algorithm more effective. These include:
How far you take the algorithm is up to you. The solution should work well for class of up to 400 students.
The focus of the project is the development of one or more good algorithms to tackle the group allocation problem, rooted in an understanding of relevant existing work, and to evaluate the proposed solutions rigorously. It is not important to devise a sophisticated user interface for this project: a very simple interface that takes a CSV file as input and produces an other as an output is perfectly adequate. Little is gained by making the UI more sophisticated than that.
The group allocation problem is similar to a range of Computer Science problems, such as bin packing and approximation algorithms to tackle them. You might also wish to familiarise yourself with an introductory book on Genetic Algorithms as that is likely to be a potential effective approach to tackle this problem.
This project is suitable for both BSc and MSci students with an interest in Artificial Intelligence. Bear in mind that the focus of this project is the development of search algorithm to tackle a practical problem. If you are keen to do front-end development in your final project, this is not a project for you.
Q: Can I discuss this project with you in person?
A: Yes, I have arrange a project Q&A session on Thursday 27 September, 18:00%—20:00 in Bush House (SE) 2.12. All students in an undergraduate Computer Science programme doing an individual project this year are welcome. I'm afraid it is not feasible to meet all students with questions on a one-to-one basis this week. I am supervising 11 undergraduate projects this year and usually receive 5-6 meeting requests per project on average (because most students explore a range of different projects). As it is simply not feasible to schedule that many meetings in a single week, a group Q&A session seems to me to be the fairest approach to meet everyone.