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