Today, there are a variety of competing courseware formats, APIs, and standards. Most notably, SCORM is the de-facto standard for shipping interactive courseware modules, however, it is insecure, outdated, and requires the courseware itself to manage its own presentation, e.g., Flash animations (ewww). Less well-known, is the OLX (Open Learning XML) format developed by the edX team. While I’m not currently able to find any OLX implementations outside of edX, it is a fundamentally better format than SCORM, because it does a great deal to abstract the details of presentation to the learning platform (or LMS), instead of the courseware developer, while also retaining great flexibility through custom course ‘xblocks’ that technically allow developers to securely present whatever content/graphics they wish. However, OLX is not a human-friendly format and basically requires a graphical editing environment to be productive. This means that it is time-consuming to convert content into OLX and large-scale course collaboration is not possible. It is also worth noting that the OLX format is quite complicated and relatively little up to date documentation is furnished. That is unfortunate, but understandable…
This led us at EXL Inc. to create the EOCS (EXL Open Courseware Standard) format for developing courses, along with a courseware transpiler and automation CLI and API called eocsutil (implemented with Go and NodeJS). With this eocsutil tool, we have already built alpha-stage support for edX’s OLX courseware format that allows conversion (and continuous updates!) from OLX courses, e.g., those on edX, to be automatically converted and updated into EOCS and then subsequently onto other EOCS-compatible platforms, such as EXLskills. By building a courseware standard around a human-friendly IR (intermediate representation) — which is what EOCS essentially is — we are able to abstract away many of the details of individual implementations, APIs, and formats, in order to focus on (roughly in order of importance):
- The editor/instructor/developer experience
- Extensibility for unforeseen use-cases and requirements
- Universality not only via large-scale adoption, but also by cross-format conversion
- 100% open and flexible implementation options
- Seamless large-scale collaboration via existing version control systems, i.e., develop your course on GitHub.
This human-focused, collaboration-oriented, and extensible format — built around an ecosystem of APIs and boilerplate tools — is what the e-learning industry of the future requires in order to move beyond today’s clunky learning management systems, closed courseware development processes, and cumbersome outdated formats.
In addition to the eocsutil CLI that can directly cross-transpile courseware from formats, the EOCS format itself relies almost entirely on simple implicit (or convention > configuration) directory structures, plain-vanilla Markdown for text editing, an extended version of the edX markdown for standard problems (more on this coming soon…), and a bit of simple YAML (or JSON since it’s a subset of YAML) for config options and custom components.
With this new format and tooling ecosystem, we’re looking to start an open-source courseware movement that will allow anyone with the knowledge, motivation, and time, to create premium-quality free courses and share their expertise with the world — without having to waste time on boilerplate, closed 3rd party platforms, or greedy vendors. The ultimate goal is for authors to be able to instantly publish to dozens of different sites and platforms to go live with your courseware and share it with the world within seconds of getting started with an EOCS-based course (or any EOCS-compatible format).
It’s also important to consider that the courseware format of the future will need to support a wide range of yet unforeseen requirements, particularly in the area of AI augmentation, chatbots, and virtual/remote interaction. A courseware format must be able to support all of this innovation and be flexible enough to add native support for these technologies that (I hope) will soon become ‘primitives’ in the world of online learning. We are actively building such chatbot and AI augmentation support in EXLskills, so we will be continuously working adding this type of support to the native EOCS format.
Today, the EOCS format is still in its infancy, yet it is already the core format behind over a dozen open source courses on EXLskills.com and the eocsutil CLI is already being used in a production CI/CD setup to keep the EXLskills.com courses up to date from Github. The conversion engine has also been tested with various basic (limited support for custom xblocks) OLX (edX.org) courses. We hope that in the near future, edX course authors will consider open-sourcing their courses via EOCS to enable to enable community collaboration, maintenance, sharing, and engagement. We also hope that in the future more platforms and technologies will begin to adopt the EOCS IR or help to integrate modules into the eocsutil API/transpiler to not only allow the import/export/update of EOCS courses, but also from any other EOCS-compatible format (since the transpiler allows going from any format to any other format via the IR).
In summation, I’d like to make this article a call to action for the e-learning community to consider the need for collaborating on open-source courseware. We build lots (lots!) of awesome and tremendously useful open-source software, so why not do the same with our courses?! To date, there has not been much large-scale collaboration on building courseware and it’s really a shame. With EOCS, I hope that we can change that — and we’re actively working on open-source (and source-available) non-commercial courseware with EXLskills here and on Github. So join us in this mission, because it will take more than a single company to change the way that we build, deploy, distribute, and manage online courses in the future.