Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Subsection Gating

Background

...

ASU has chosen McGraw Hill Education (MHE) as their Adaptive Learning provider via MHE’s ALEKs platform (https://www.aleks.com/). ALEKs can be used as a LTI provider, in order to embed content (in this case adaptive exams) in 3rd party LMS’s.

Problem Description

...

Problem Description

We would like to limit student access to the a proctored exam until a minimum score has been recorded with one of the adaptive learning LTI other components in the course. The existing LTI consumer XBlock implements the LTI Outcome Service specification which provides an endpoint for grade postback. However, we currently do not have a feature which would allow course authors to limit access to the proctored exam based on that grade postback.

Proposed Solution

We are proposing to implement a Course Gating feature in Studio to allow for the configuration of prerequisite subsections that need to be completed before dependent subsections are made available to the student. This will involve modifying the subsections settings dialog to include a “Gating” section which will allow for the following configuration by content authors:

...

Implementation Details

We will leverage the edx-milestones microservice for the modeling of subsection prerequisites. When a content author identifies a subsection as a prerequisite, a new Milestone model will be created along with a CourseContentMilestone model indicating that the subsection fulfills the Milestone. For each prerequisite subsection added to a dependent subsection, a new CourseContentMilestone model will be created indicating that the dependent subsection requires the Milestone that the prerequisite subsection fulfills.

...

Milestones access control already exists in the Course Blocks API used to render courses on mobile.

...

Prerequisite Courses/Entrance Exams

https://github.com/edx/edx-milestones


The prerequisite courses and entrance exams features both required a way of preventing access to course content based on prerequisites. The edx-milestones package was implemented to support these features and also to serve as a generic subsystem in edx-platform that could enable other use cases that would require the gating of content. It allows for the definition of named entities (referred to as “milestones”) and relationships between those entities, a course (or specific XBlock within a course), and a user. A course/XBlock can either fulfill or require a milestone. A clearly defined API is available for managing these relationships including recording when a user has achieved a particular milestone and determining if a given milestone has been achieved. Django models are used to represent the milestone entities and associated relationships with courses/XBlocks and users. This package does not contain the business logic for determining when a user has achieved a given milestone, clients of the API are expected to implement their own rules for achievement.


Proctored Exams

https://github.com/edx/edx-proctoring


The proctored exams feature makes use of a similar design to the one we are proposing above for customized rendering of a subsection that has been configured as a proctored exam.

...

In-Course Reverification Access Control

https://openedx.atlassian.net/wiki/display/AC/In-Course+Reverification+Access+Control


Access control for ICRV is implemented using an XBlock which when added to a course and published modifies the user partition definitions in the course structure depending on where the ReverificationBlock is added. While this would be a viable solution that has already gone through architectural review, it seems like a way of making use of an existing access control mechanism that was not designed to meet the ICRV use case. The edx-milestones package seems like a more natural fit for the use case of gating content based prerequisite content within a course.

...