Versions Compared

Key

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

...

The feature is raw, but it has been already tested at one of our minor OpenEdx instances with real learners. We would like to contribute to OpenEdx and therefore we would like to discuss it with OpenEdx team.

Background

Currently there are two main types of course scheduling in edx: instructor-pacing and self-pacing. With the first one it is easier to support students and to motivate them for course staff, the second one can be more flexible and (in some cases) more comfortable for students.

...

Another drawback is that it could be hard for student to catch the due dates and to accomplish course if he missed several weeks.

Abstract

Feature adds new entity called "course shift". Each student can be assigned to only one shift for each course (or not assigned to any). Shift has a "shift start date", and course effectively starts at "shift start date" instead of the "course start date" for every student in given shift. This means that for every problem due date is shifted by ["shift start date" - "course start date"] days. Students are still at the same course run, so there are next consequences: 

...

Shifts are setup by course staff. Student can be assigned to shift at the enrollment, can be transferred by instructor or student can switch his shift himself (forward only).

Specification

In sense of student assignment and division, CouseShifts are based on CourseUserGroups and their design follows the one for Cohorts. Currently there are two modes of shift management, the manual mode and the automatic mode. In automatic mode shifts are generated periodically according to the settings. In manual one each shift should be created by staff explicitly.

Due and start date shifting are implemented via FieldOverrideProvider, similar to the INDIVIDUAL_DUE_DATE feature: when the field is accessed, user is checked to be in CourseShiftGroup and dates are changed accordingly if it is needed.

Installation

Feature was developed for "ficus.1" release, also it was tested on "dogwood" release. Feature installation is described here.

...

paver test_system -s lms -t <course_shifts_addr>/course_shifts/tests/test_shifts.py --settings=test

Feedback and refactoring

While there are definitely a lot of things that can and should be improved, refactored and so on, the weakest part (as we see it) is UI.

...