DOGU is a site where students and organizations can add technical project ideas in hopes of finding class project teams to work on them, and students can find projects to work on and teams to work with for class assignments.
We have decided that one of our advanced functionalities will be to match students into project groups, based on their interest in certain project ideas. There's still a lot to think about here:
If too many students put a project as their first choice, how is it decided who gets that project?
How do we make sure every group is of sufficient size? (if only one student preferences a project, even if that project is their first choice, it should be skipped over, etc)
Do we ever match a student with a course they didn't rank? (This would likely be necessary in any class) How is that decided?
When do we drop a consistently ranked project, because a different grouping of students would simply be more ideal numbers wise?
Basically, this will need some sort of algorithm, far beyond just SQL queries. It's basically the stable marriage problem, but with an uneven mapping. Maybe closer to the assignment problem. Either way, this will be a lot of optimization. I'm going to do some thinking.
We have decided that one of our advanced functionalities will be to match students into project groups, based on their interest in certain project ideas. There's still a lot to think about here:
Basically, this will need some sort of algorithm, far beyond just SQL queries. It's basically the stable marriage problem, but with an uneven mapping. Maybe closer to the assignment problem. Either way, this will be a lot of optimization. I'm going to do some thinking.