[Proposal] Contribution to Facilitate Learner Grouping
Abstract
This proposal outlines the development of a comprehensive Learner Group functionality as part of a new Axim-funded contribution project. The new functionality will provide course delivery staff with the ability to create their own learner groups for which they can filter any Aspects course-level dashboard. Instructors on instances using Aspects will be able to filter course level dashboards by a learner group to view enrollment, engagement, and performance data for any group.
Context & Background
Goals and Objectives
The goal for this initial release is to allow instructors to create, name, view, and update learner groups for their courses. Instructors should be able to create groups of learners manually, by uploading a CSV file or to define a group of learners by shared criteria.
Scope
Detailed Scope
1. Implement a separate Learner Groups tab | |
---|---|
User story: | As a Superuser, Admin, or Course Delivery Team member, I want to define a learner group based on a pre-defined list, shared characteristics or events, so that I can group learners for targeted analysis. |
Use cases: |
|
Frontend development | Create a legacy tab in Instructor Dashboard to create and manage learner groups. |
Backend development |
|
Solution: |
|
Notes | Adding a new tab to legacy LMS part is not recommended. We can explore and suggest alternative options, like adding a new MFE to course Settings in Studio. |
2. Create static learner group | |
---|---|
User story: | As a Superuser, Admin, or Course Delivery Team member, I want to manually input learners' email addresses, so that my learner group is limited to a pre-defined list of specific users As a Superuser, Admin, or Course Delivery Team member, I want to upload users from a csv file, so that I don’t need to add them manually |
Use cases |
|
Problem: | Allows to accurately create learner groups with a specific set of individuals in case dynamic criteria do not align with the specific group needs. |
Frontend development |
|
Backend development | Create a separate API endpoint to store and display static learner groups. |
3. Create dynamic learner group based on certain inclusion/exclusion criteria | |
---|---|
User story: | As a Superuser, Admin, or Course Delivery Team member, I want to define a learner group based on shared criteria (characteristics or events), so that I can ensure my learner group contains only relevant learners As a Superuser, Admin, or Course Delivery Team member, I want to exclude learners that share specific criteria from a learner group, so that I can ensure that the group contains only relevant learners |
Use cases |
|
Problem: |
|
Frontend development |
|
Backend development | Create a separate API endpoint with the logic for dynamic learner groups. |
4. Filter Aspect reports by learner group | |
---|---|
User story: | as a Superuser, Admin, or Course Delivery Team member, I want to filter course-wide Aspect reports by learner groups, so that I can track statistics per each group separately |
Problem: |
|
Frontend development | - |
Backend development | Add Learner Group as a filter on all of the Coursewide Aspects Dashboards. |
Solution: | For those not using Aspects, user can pull learner groups from MySQL or from tracking events that are created or from Open edX events. |
Value & Impact
As a result, the proposed functionality will improve following metrics:
Allow group membership to be easily updated as learner engagement data changes.
The criteria for creating learner groups should be flexible and extendable to allow for future criteria to be added without breaking the system. This ensures adaptability to various future course needs.
Further Potential Improvements
Email notifications: Develop the capability to send bulk emails within a learning group.
Creating learner groups at the organization/instance level: Create groups that will apply to the entire organization or instance, thus removing the need to set them up for each course individually.
Named Release
Teak
Proposed By
This proposal was prepared by @Maksim Sokolskiy @Tamara Kosenko@Anastasiia Abyzova (Unlicensed)