Potential Improvements to Open edX Grouping
I do not believe we need to fundamentally rework the way Open edX groups work, contrary to my previous statements on this. They just need to be hugely more flexible.
Here’s a stream of consciousness about group improvements that we could make:
Learners need to belong to more than one cohort. This means they are hugely inflexible and can’t be used for scenarios such as having different groups for different discussions, or a group for reporting purposes but not discussions.
We lack a way of categorising our cohorts - if you look at tools like Canvas and Moodle, they have an additional layer called “Group-Sets” and “Groupings” (respectively) which effectively allow you to apply rules such as “Divide this discussion among groups in this category”. Without this, learners belonging to more than one cohort cause problems (which is probably why cohorts lack this capability):
Our cohorted discussion settings were already inflexible, and the MFE that’s been introduced in recent years has made it worse. As of Palm, it is not possible by conventional means to have an in-content discussion not be divided by cohort if the cohorted discussions are enabled. It is also not possible to divide course-wide discussion topics without dividing all in-content discussions, as the option doesn’t appear unless you enable cohorting of all in-content discussions.
Content group membership needs to be managed separately from cohorts. It should be possible to automatically sync a content group with a cohort (automatically add/remove learners to a content group based on cohort membership), but it should also be possible to enable things like learners self-selecting content groups
Content groups need to be able to affect the course outline. Subsections and sections need to be gated by content groups in the same way as units, and any section or subsection that doesn’t contain any content for learners should not be displayed to learners.
Content groups and cohorts need tools for automated assignment logic. Right now, the best we have is random cohort assignments rather than being able to try and group learners by any particular attributes such as their self-paced due dates, location, email domain, grade, or other attributes.
For example you could set up a rule for a content group where membership is granted based on:
Member of Cohort (Group 1)
And a rule for that cohort:
Enrollment date (last 2 weeks)
Country: United States
To provide content that is specific to learners in the US that enrolled in the last 2 weeks, for whatever reason.
Learners shouldn’t lose access to their own posts and posts they have commented on when they change cohorts, as this is currently an issue that exists. They should at least maintain read-only access.
Coursera’s rolling sessions are a fantastic feature for the self-paced MOOC use-case that they at least claim has an extreme impact on course completion rates and community engagement. We should essentially just completely lift that functionality into cohorts.
Teams need to be treated as a truly core supported feature. Right now they’re shoved off to one side, and aren’t especially useful. We need support for team assignments, and various more experimental improvements could be made such as giving groups more control over their identity as a team, such as team leadership, team profiles, self-managed team polls, some kind of distinguishing mark in core discussions, and team integrations with core components in courses to enable team activities (such as team peer instruction, or team peer review).