/
[WIP] Learner Group Requirements

[WIP] Learner Group Requirements

Overview

This feature is switched off by default for this initial release, but can be turned on. 

Scope

For this release (and likely the first few releases), we must to support the creation of learner groups and interventions for learners at the course-level, but in the future we will need to support making groups at the: 

  • Instance-level

  • Organization-level

  • Section, Subsection, Unit, and Component-levels?

Learner Groups

Open Questions

Where does this live?

  • In the LMS, on the Instructor tab, between Open Response and Reports tab, on a tab called Learner Groups

    • Question: Will we be able to easily move this (Learner Group) page to an Admin Space if and when that space exists?

    • Note: Is this Instructor Dashboard MFEed? (No)

Are these groups to be manually refreshed? Automatically refreshed on a certain cadence? (A question for the delivery team to figure out if there is a reasonable cadence for a chron to refresh groups).

Learner Group Functionality

A Superuser, Admin, or Course Delivery Team member (for the courses they are course staff on) can…

  • Define 

    • A group of learners that meet shared criteria (characteristics and/or events)

    • A list of learner(s)

    • Exclude a list of learners

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

  • Edit learner groups by adding/removing learner(s) and/or refresh manual groups

    • Examples: 

      • Add a list of learners

      • Add learners that share criteria (characteristics and/or events)

      • Exclude a list of learners

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

  • Name a learner group

  • Save a learner group

  • Disable learner group (not delete at least for MVP)

    • Disabling a learner group:

      • Stops automatic refreshing

      • Stops any interventions associated with the group

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

    • List includes Learner Group Name and metadata (criteria used to create learner group, number of learners in group, when it was created and last modified (if applicable))

  • View data for learner group

    • For those using Aspects, we can start by allowing users to view learner group data via the Learner Group Dashboard (Learner Group is a filter on all of the Coursewide Aspects Dashboards)

    • For those not using Aspects, user can pull learner groups from MySQL or from tracking events that are created or from Open edX events.

  • Import a list of learners to create/edit a learner group

    • What is the data we’re importing here?

      • Username and/or email address

    • Context: 

      • Here are the rows in the enrolled learner data from data downloads tab:

        • ID, username, name, email, language, location, location, gender, level_of_education, mailing_address, goals, enrollment_mode, last_login, date_joined, external_user_key, city, country

      • The information course delivery teams use to bulk enroll learners:

        • Username and/or email address

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

    • What is the data we’re exporting here? (same as data downloads, but shouldn’t we omit mailing address? If not, we can keep it the exact same as data downloads format)

      • ID, username, name, email, language, location, location, gender, level_of_education, mailing_address, goals, enrollment_mode, last_login, date_joined, external_user_key, city, country (same as data downloads list)

Out-of-the-box Leaner Group

One default learner group that exists out-of-the box for courses (manually created by a button push):

  • Pre-defined at-risk learner group: Learner enrolled in this course, has not yet passed the course, has done something in the course, has not engaged with the course in N or more days

    • N = 7, but can we make it easy for users to update N?

    • Automatically refreshed group (See Open Questions?)

    • Note: there are ways to see if a learner has engaged with a course in N or more days without using Aspects; however, after speaking with Dave Ormsbee, this may not be the most performant query…

Defining a Learner Group

Course delivery teams can define their own learner groups by specifying learner criteria. User can combine up to two criteria to create a group (including anti-criteria):

  • Default criteria for inclusion/exclusion available out-of-the-box (Manual/static groups eligible for refreshed?)

    • Enrollment Status

    • Current Enrollment Track

    • By Enrollment Date (first enrollment date)

    • Learner’s Current Grade

    • Learner’s Last Sign In Date (we want last engagement date, but this might be our best bet outside of analytics)

    • Learner Email Domain Name

  • Aspects plugin for learner group creation 

    • Learner engaged with any course content (pages - aside from course homepage) in N or more days

    • Learner has engaged with any course content (pages - aside from course homepage) ever

    • Learner has engaged with…?:: - 

      • Multi-select problem in the course

      • Multi-select ORA problem in the course (?)

      • Multi-select video in the course

      • Multi-select course section

      • Multi-select course subsection

      • Multi-select course unit

    • Learner got… correct (select) (on first attempt, any attempt ← select):

      • Multi-select problem in the course

    • Learner has created a post in discussion forums

    • Learner earned X grade or greater/lower (select) on… 

      • Select assignment

  • The criteria for defining your own learner group must be pluggable, so that users can add the criteria for creating learner groups that are important for their use case.