/
[Proposal] Contribution to Facilitate Learner Grouping

[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

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:

  1. Add learner groups 
    a. Name learner group
    b. Save learner group

  2. Refresh learner groups (for dynamic learner groups with the changing list of users).

  3. Disable learner groups.

  4. View list of learner groups that have been made for my course.

  5. View data for a learner group.

  6. Export the list of learners in a group (for those with and without Aspects).

Frontend development

Create a legacy tab in Instructor Dashboard to create and manage learner groups.

Backend development

  • Build an API to create/update/view/delete learner groups.

  • Enable Learner Groups tab.

  • Compose and create a new table in DB.

Solution:

  1. Add Learner Group tab to Instructor Dashboard.
    By default course team sees one default learner group that exists out-of-the box (manually created by a button push).

  2. Click ‘Add New Group’ button.

  3. Upon click user sees a form to add new Learner Group.
    Fields:

  • Name

  • Group Type
    a. manual input
    b. upload from csv
    c. by segment (both include and exclude)

  1. Upon saving the new Learner Group is displayed in the list, with the ability to edit or delete.

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

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

  1. Manually input a list of learner(s) by emails

  2. Upload learners from a csv file.

  3. Edit learner groups by adding/removing users.

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

  1. Add a text input field where course team can manually input a list of email addresses.

  2. The input field should support multi-line text or allow users to enter multiple emails separated by commas or semicolons.

  3. Each email input should be validated (e.g., ensuring the format is a valid email address).

  4. After the emails are added, display a preview list of added learners (names or emails) below the input field to show that the data has been successfully entered.

  5. Allow users to remove an email from the list if they made a mistake before final submission.

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

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

  1. Define a group of learners that meet shared criteria (characteristics and/or events).

  2. Exclude learners that share criteria (characteristics and/or events).

Problem:

 

Frontend development

 

Backend development

Create a separate API endpoint with the logic for dynamic learner groups.

4. Filter Aspect reports by learner group

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:

  1. Allow group membership to be easily updated as learner engagement data changes.

  2. 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

  1. Email notifications: Develop the capability to send bulk emails within a learning group.

  2. 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)