/
Grouping Scenario - Content Pathways

Grouping Scenario - Content Pathways

A course contains content intended for different audiences. In order to ensure that those audiences receive the correct course experience, the course author uses groups to specify which group is able to view and interact with which content, effectively forming different routes or pathways through the same course. This can also be used to conduct content experiments - reviewing and researching the effects of one approach over another at scale.

User Stories

Needs

  • As a course author, I need to be able to specify that a collection of content (such as a subsection) is only available to a specific group of learners in order to create different pathways through the course for different subsets of learners.

  • As a course author, I need to be able to assign the same content to different groups, without those groups mixing in group activities such as discussions, or affecting other group-based functionality.

Wants

  • As a course author, I want to be able to specify that a single asset or block of text on a page (i.e. a component) is only available to a specific group of users to fine-tune the experience for different groups of learners.

  • As a course researcher, I want to be able to view analytics according to different learner groupings, such as pass rates and completion rates, and filter any downloadable reports by learner groups in order to analyse the impact of different content on different groups of learners.

  • As a learner, when a part of the course contains no content for my group, I do not want to see it in the navigation.

  • As a course author, I want to be able to automatically assign content to groups of learners and individual learners based on various conditions, including pre-assigned groups, grades from a graded assignment, enrollment dates, and other logic.

Platform Implementations

Open edX

In Open edX, content groups are used to divide content between groups of learners, more specifically Cohorts. Teams cannot have associated content groups.

Creating a content group is as simple as naming it. There are no additional properties inherently associated with a content group:

Content groups are only able to restrict access to specific units or components, but each unit or component may be assigned to multiple content groups:

Content groups do not do anything inherently, in order to restrict content, they must then be assigned to cohorts. Each cohort can only gain access to a single content group, which means that configuration of this can be fairly clunky. 

For example, a hypothetical mixed-language programming course has content on object-oriented programming (OOP), and content on functional programming (FP), as well as different content examples for specific programming languages. The course team cannot create a content group for OOP content and then a specific language and then assign the two groups to a cohort of learners studying that language. Instead, they have to create a content group that matches that cohort with both sets of content. Essentially, instead of this setup (which is how many users assume content groups work):

With content being assigned to multiple groups, which are then assigned to multiple cohorts, you get this setup instead:

The duplicate association must be made at the content level, rather than the group level. In this example, this isn’t too bad, but it grows more complex when we introduce more groups that have different needs to the first two:

For each group of learners combining different content, an entirely new content group needs to be created with the content specific to those learners. This effectively means the current setup only works well if multiple different cohorts of learners need access to a single content group, rather than a single cohort needing a different combination of content, which is a much more common use-case.

As the content can only be assigned to content groups at the unit and component level, you cannot set an entire subsection or section as hidden from learners. If a learner attempts to access a subsection that only contains content for another content group, the learner does not see any content (even titles).

If a component is only visible to a content group that does not have access to the parent unit, it displays a warning to staff in Studio (learners will still not have access):

This makes Open edX’s implementation awkward for implementing alternative learning pathways within a single course.

When graded content is restricted, learner grades are dependent on the portion of the grading criteria that they have access to. This means that careful maths is required to figure out the correct weighting and percentages. For example, in a course where one group of learners gets two projects, and one group gets one, a new assignment type or other careful configuration is necessary to ensure that the second group can achieve a 100% grade. This often results in some assignments getting over-weighted as shared content cannot have a different weight for different content groups. It isn’t impossible to work around this, but it does require conscious effort from course authors, and it isn’t immediately obvious or intuitive to authors.

Moodle

Moodle has an optional feature that must be enabled at the site level by an administrator to allow a course section or activity to be gated behind a condition, such as a date, grade, completion, or group membership.

Sections are the Moodle structural components that allow content to be grouped together. Rather than having a distinct 'subsection' element, each section can contain  sections, allowing for a semi-arbitrary course structure, and in turn that allows group-specific content to be assigned to groups or groupings at multiple levels.

.

In addition to this, activities (such as quizzes, assignment submissions and other interactive content) and resources (files and links) can be assigned to a group or grouping in the same way. What cannot be done in Moodle is assigning specific assimilative content pages within the same page to separate groups.

Canvas

Canvas only supports splitting different assignments between different learner sections, not page content, at least according to this community suggestion from 2015, which appears to still not be a feature according to their documentation.

There is an adjacent feature to this, however, which Canvas calls Mastery Paths. Mastery paths are conditional learning paths that can be assigned to learners who achieve certain grades, for example assigning harder content to learners who prove they have knowledge of basic concepts by scoring highly on a quiz.

Mastery paths are always score-based, so using them for anything else requires some bending of the functionality in hacky, unintended ways (such as asking “What content do you want to see” and then giving them a score that is then used for the mastery path, but is only worth 0.1% of their final grade) so isn’t really supported functionality.

Related content