Open edX Structure & Scheduling
Structuring content
In Open edX, our structuring tools are very simple. We have three levels of content accessible from the outline:
Sections
Subsections
Units
Units in turn contain components, but they are simply page blocks and cannot be accessed or edited from the outline. Subsections must always exist within a section, units must always exist within subsections, and thus the structure is inherently inflexible. Any level of the hierarchy can be dragged and dropped to be reordered, duplicated, or deleted. Copying content between courses is scheduled for a release in the near future. Publishing a section or subsection with unpublished content publishes all unpublished content within each child level of the hierarchy, so publishing a subsection publishes all unpublished units in that subsection, and publishing a section publishes all units within subsections that have unpublished content.
Shaping content
Content is by its nature shaped by the structure enforced on the content - as units must exist within subsections, and subsections must exist within sections, this causes content to be typically grouped together, and additional content is (anecdotally) sometimes added by authors in order to flesh out sections more than they need to be. A classic (and again, anecdotal) example of this is that staff cannot create a page at the start of the course to say “Welcome to the course, here’s a basic outline, your learning objectives, and a quick note about not being awful in the discussion forum”. Instead you commonly end up with something like:
Section - Introduction
Subsection - Welcome to Course 101!
Unit - Welcome!
Unit - Meet the team
Unit - Studying this course
Unit - Learning objectives
Unit - Community Guidelines
Unit - …
This causes considerable content bloat that learners wade through or skip past before accessing actual learning materials. This can cause open access learners to bounce, skip important content, or just generally set a negative expectation with learners about the usefulness of the course. It also makes the platform structure not suitable for microlearning. As one author I worked with previously put it (paraphrasing):
“If you want to make an extremely short course that acts as a tutorial on how to make eggs, you have to make a course called Making Eggs with a single section called Making Eggs, with a subsection called Making Eggs, and then maybe 3 units tops, with the first one probably containing the heading Making Eggs or it looks weird.”
Effectively, the structure of Open edX shapes content in one of two directions:
Content gets grouped together illogically in order to pad out a section (such as including the course introduction in the first unit of learning content)
Content gets bloated to justify the existence of the structure
Improving the flexibility of this is a large undertaking, but one that has been requested by many authors in the past.
Course Checklist
The Course Checklist is a standard checklist across all courses that tracks completion of the following course configuration steps:
Add a Welcome Message
This actually tracks adding a course update, as that’s all that can be used for welcome messages, with the course updates functionality effectively being removed in the process. This change slipped in with Juniper and community response was… not great.
Create Your Course Grading Policy
This tracks the grading policy being changed, and whether the policy adds up to 100%. This is actually great, but this calculation should absolutely also be displayed on the grading settings page!
Enable Your Certificate
This checklist item implies that every course on the site should offer a certificate, even if certificates aren’t even enabled on the site (for example if qualifications are being handled by a university system, or by a badging provider), meaning all courses on those sites will never finish their checklist.
Set Important Course Dates
Simply checks if the course start and end dates are set. Does not care about any other dates.
Validate Assignment Deadlines (Instructor-led only)
Checks if assignment due dates are within the course start and end dates.
In addition to this, there are best practice checks:
Check Video Duration
Claims to check the duration of all course videos, but doesn’t work for YouTube videos, even if there are many extremely long videos, so presumably only works for the http://edX.org video pipeline.
Create Mobile-Friendly Video
Checks that versions of videos exist in the http://edX.org video pipeline.
Build Diverse Learning Sequences
Claims to check that 80% of subsections contain multiple different types of components.
Manage Unit Depth
Checks that units contain no more than 3 components. This is still marked as complete if some units do have more than this, so there’s probably a threshold on this too.
The best practice checklist does not provide any information on which units violate the checks. Two of them are non-functional outside of http://edX.org , and the other two checks are arguably questionable - for example a page with 5 small components would be better practice than a unit with a single immense text component, and not every subsection for every subject needs component variety - a text component can contain any manner of arbitrary HTML such as images, text, or iframes and other interactivity, and would break this rule. Other checks that would be more useful, such as checking that subsections do not contain excessive numbers of units, confirming that sections have release dates within bounds of the course, ensuring that the course doesn’t contain dead links, and that all units have been published are all missing. So I’m not convinced this checklist is actually of any use to the majority of course creators in the open source community. The theory is great, but the execution is lacking.
Course Highlights
Course highlights have a prominent button at the top of the course outline, as well as a link at the top of each section of the course:
Clicking the Learn More button takes the user to this page of the edX documentation. Clicking enable takes you to a warning message about enabling the feature:
Once enabled, the button in the outline changes to plain text saying “enabled”:
Clicking Section Highlights on a section opens a modal window with 5 fields for plain text with a 250-character limit:
No other content can be included in highlight emails.
Issues
There are many things immediately wrong with this feature, so I’m unable to resist highlighting them here in the hopes that this gets replaced with a better version in the future:
The link on “Learn More” in the course outline is actually a semi-dead link, it functions without 404, but attempts to link to the heading “#set-section-highlights-for-weekly-course-highlight-messages” when the documentation has been changed and the heading it needs is actually “#set-section-highlights-for-highlight-emails”.
The button to send highlights and links to define section highlights appear even if emails aren’t actually configured for use. Staff can set up and enable highlights without them actually being functional or receiving any warning about this, other than a note buried in the documentation to ask your administrator if the feature works.
You cannot disable highlights after you start sending them.
It’s unclear when section highlights actually send, as it’s not mentioned in the documentation, and staff have no control over this.
The emails themselves always match the template set by the administrator, and can only contain plain text. No links, no images, no contextualising message, just 250 character limit lines of text.
The documentation mentions an example email which doesn’t exist, presumably because the template
All of this means that staff have absolutely no way of previewing the message or this functionality without a site operator configuring the entire feature, defining a template, creating a testing course, setting up highlights that cannot be disabled, and sending highlight emails.
I guess theoretically you could send the template email manually and fill the text areas that would be filled by the feature. It’s still a pretty awful workflow, and I have zero doubts that this stops at least a few people from using it.
Overall I honestly can’t find a positive thing to say about this feature other than that it’s a really good idea that can help staff keep learners engaged, if it was more of a usable feature. It’s featured so prominently that the current state is enough to derail me this far, but we’ve got this far, so the ideal version of this feature looks something like this in my opinion:
A connection between content and the highlights (i.e. highlight something and link it to that subsection or unit of the course)
Flexible options for when highlight emails are sent:
When learners are at risk of disengaging (“You’ve not studied the section you’re in for a week, here’s what you’ve not gotten to yet”)
When learners complete over x% of the previous section (“You’re almost done with section 2! Check out what you have to look forward to:”)
X days prior to the release date of the associated section
Fixed relative dates (Y days after course start date)
Contextualising content beyond the actual highlights (“We’re over halfway through the course! Check out what’s coming up next”)
Rich content insertion and editing for highlight emails (not just plain text - links, images…)
The ability to disable highlights after enabling them, temporarily or permanently
When not enabled, the configuration for setting section highlights should also not appear as it is meaningless clutter.
Warning messages when the feature is non-functional
Better in-app guidance rather than relying users going and reading the documentation (because they don’t)
Highlight email previews and testing (“Send me a preview of this highlight email”)
Analytics and reporting for highlight emails to prove their effectiveness
What percentage of disengaged learners re-engaged after clicking a link in a highlight email?
Scheduling and releasing content
Scheduling is handled in two areas of Studio - the course schedule and details page, and the course outline.
Schedule and details
The course schedule and details page covers the course pacing, such as the settings that control the availability of the course itself - a start date and end date along with times in UTC.
Also related to this are the settings around course pacing, which define whether a course is instructor paced - allowing dates to be configured for content release and deadlines to be set on graded subsections. When a course is self-paced, this functionality is removed.
When self-paced is enabled, relative dates become available as a feature, but these are only typically in use and available on http://edX.org due to their reliance on the Publisher service.
Course Outline
On the course outline, clicking the cog icon next to any structural element (section, subsection, unit) allows you to access visibility settings. In these visibility settings are two tabs of options related to scheduling content - basic settings related to schedule, and visibility.
Sections simply allow a release date for content, and the option to hide the section from learners entirely. No further options are available:
Subsections allow the same settings, but add settings related to due dates and grading, as well as the behaviour of assignments:
Self-paced courses do not have due dates, apart from those set by personalised learner schedules (which are not available without the publisher service), and so sections and subsections lose these features.
Units have no settings for scheduled release, regardless of course pacing, and allow content to be hidden entirely, or visible only to a specific content group.