I haven't looked at competing products to see how they do this (except for WebCT years ago).
I'd like to have a discussion here to gather ideas for how the first version of this will look. I'd rather start with a simple, effective solution first, and keep developing it in future versions.
Here's my picture so far (you can use the numbers to refer to specific points if necessary):
- By default there are no groups, courses are the same as now.
- Teacher has a "Groups" admin page on which they can define a number of group names.
- On this page, teachers can assign students to groups manually (or they can press a random button to have them assigned automatically).
- If at least one group is defined, then all those NOT in a group are automatically placed in a default "unassigned" group.
- Courses have a new setting: allow groups to see each other in a course / keep groups invisible from each other.
- The participants listing page uses this setting to switch the display to show the whole class or just the current group.
- This course setting may also affect activity settings, or perhaps just the default values.
- If groups are defined in the course, then modules have a new option with this menu: "whole class/combined groups/individual groups/specific group".
- "Whole class" works like it does now.
- "Combined groups" adds a page (where appropriate) with all the group names, that leads down to a normal-looking module for that group. Group members could read but not write in other groups.
- "Individual groups" - the teacher view is just like "combined groups", butgroup members only see their own group - it looks like a normal activity otherwise. eg a normal forum.
- "Specific group" - means the module only allows a specific group to use it. For example, you might make an extra assignment just for one group.
That's about it. I think this should cover most people's needs. Please respond if it doesn't (or even if it does!).
I'd particularly like some thought about how individual modules could use these settings. That is, how should the GUI look?
One little problem I can see is: what to do with activities when a group is deleted or changed?