From SCORM to CMI5: the Evolution of eLearning Standards

When I was younger, I dreamed of becoming a teacher. To some extent, that dream has now become a reality: every day I head to work, but I also spend it “at school” as a programmer of a learning management system (LMS). Even though I’m not a real teacher of a real class, I strive for the same goals: to enhance the quality of learning and improve user accessibility, engaging learners in the learning process. In an LMS, both can be achieved with the help of the courses, developed according to technical e-learning standards. Going back 20 years, we can see how e-learning standards have evolved, and the technologies that are now being used by LMS programmers.

History of SCORM

In 1999, the company ADL launched a new project aimed to replace boring old textbooks with web-based courses. In 2001, ADL released the first official version of SCORM (Sharable Content Object Reference Model)—a formal language and specification for developing e-learning courses and integrating them with learning management systems.

ADL was not the first or even only company to introduce e-learning standards. A few years prior to SCORM, AICC implemented the idea of standardisation in e-learning content for the aviation industry.

Essence of SCORM

  • Under the hood, SCORM comprises three sub-specifications:
  • The Content Aggregation Model (CAM), which describes the metadata, components, structure and rules for content packaging.
  • Requirements for the runtime environment, including launch, ECMAScript API to communicate between the SCORM client and LMS, as well as the data model.
  • Sequencing and navigation of learning activities according to the learners’ progress, in the form of a nested tree.

Although implementing and supporting SCORM courses is not an easy task, SCORM looks attractive for many reasons:

  • Configuration of SCORM courses doesn’t depend on a single LMS. Once a course has been created it can be used in any learning system that supports the SCORM standard. The inverse is also true: it doesn’t really matter to the LMS who the course’s provider is; the only requirement is that courses should be compliant with the standard.
  • SCORM modules might be used for a range of different types of activities such as guidelines, quizzes, surveys, or games of any format that could be played in a browser.
  • The LMS receives information about the learners’ progress: assessments, completion percentage, time spent on learning.
  • Courses are well-structured and content objects sequenced.
  • A learner can pause a course and continue later. When they return, the LMS will open the course at the point where they left it.

Issues with SCORM

Over time, more and more flaws appeared with SCORM:

  • Historically, most SCORM courses were implemented in Flash. When Adobe announced it was ending support for Flash, browsers started to disable it by default, and Flash-based SCORM courses suddenly became more difficult to use.
  • While mobile devices with e-learning apps are gradually replacing PC-based courses, SCORM still cannot function outside of the browser.
  • SCORM courses are not able to exist outside of an LMS: they must share the same host, to avoid cross-domain conflicts. And, what’s more, courses are generally useless without an LMS.
  • It turned out that SCORM is so vulnerable that even a student can hack a course (“thanks” to its ECMAScript API).

xAPI: the New SCORM?

ADL decided not to patch the problems with SCORM but rather create a new standard that would replace it, in the form of API.

How xAPI works

The key aspects of the new standard are its REST-based architecture and Learning Record Store (LRS), a standalone application that receives, stores and returns information on-demand about every step of the student’s progress. But what does that mean for users and xAPI developers?

  • Students can take courses on mobile devices.
  • The format of the course content is no longer limited. Legacy, embedded Flash movies, custom HTML pages, audio, video, educational games and simulators—all of these can be used in courses.
  • The course content and LRS can be hosted separately from the LMS.
  • Courses are accessible even when offline. Information about the learning experience in courses is stored so that when the connection is restored, it can be synchronised with the LRS. Students can then continue the course on another device right where they left off.
  • Unlimited possibilities for the collection of training data.
  • Finally, courses can be decoupled from the LMS. Now, all the work of recording and storing learning data is performed by the LRS.

CMI5 and Why We Need It

Although xAPI looks like a silver bullet for e-learning, it’s actually not. In practice, standalone xAPI courses are not able to completely replace an LMS. The attempt to connect courses to an LMS is complicated by the fact that the xAPI language has no strict rules. Thus, there is no way to systematise and uniquely identify a student's actions. For instance, one xAPI course could use the verb “completed”, while another could use “passed” as its signal for course completion.

In 2016, the CMI5 (Computer Managed Instruction) specification appeared—a joint effort by AICC and ADL. It’s also well known as xAPI that’s been optimised for use in an LMS. The creators of CMI5 agreed on a unified course structure, the rules of interaction between courses and LMS, and a dictionary of the various actions of the student. As a result, CMI5 inherited the best features of SCORM and xAPI: guaranteed compatibility between course and LMS, and a richer learning experience.

how CMI5 works

CMI5 in Action

Let’s look at a simple CMI5 course for learning English.  One of its pages contains a rule for defining the correct article for a noun.

how to choose the correct article for a noun

The page is “read only”. When clicking on Continue, an “Ivan Ivanov experienced 'Articles'” event is generated. On requesting the event’s details, the LRS returns the following JSON:

{ 
"id": "5f174065-3b34-4995-97d9-9ed542a85c91",  
    "actor": {  
        "account": {  
            "homePage": "http://test.scorm.com",  
            "name": "test"  
        },  
        "objectType": "Agent",  
        "name": "Ivan Ivanov"  
    },  
    "verb": {  
        "id": "http://adlnet.gov/expapi/verbs/experienced",  
        "display": {  
            "en-US": "experienced"  
        }  
    },  
    "context": {  
        "extensions": {  
"https://w3id.org/xapi/cmi5/context/extensions/sessionid": "bb6253b8-9470-405b-962c-6e12b1cb4e18"  
        },  
        "registration": "3f0210f7-82fc-4adf-bea8-0b5b6c7555ab",  
        "contextActivities": {  
            "grouping": [  
                {  
                    "id": "https://test.cmi5/E6577A53-68D2-4863-B1CE-F606338992A3/presentation",  
                    "objectType": "Activity"  
                }  
            ],  
            "parent": [  
                {  
                    "id": "https://test.cmi5/E6577A53-68D2-4863-B1CE-F606338992A3/presentation",  
                    "objectType": "Activity"  
                }  
            ]  
        }  
    },  
    "timestamp": "2020-02-15T16:29:59.000Z",  
    "stored": "2020-02-15T16:29:59.494Z",  
    "authority": {  
        "account": {  
            "homePage": "http://test.scorm.com",  
            "name": "test"  
        },  
        "objectType": "Agent",  
        "name": "Ivan Ivanov"  
    },  
    "version": "1.0.0",  
    "object": {  
        "id": "http://test.scorm.com/cmi5/lms-id/3a45d09ae8d81f3e2c195ca0c92517c1bc9c4099/4deaa592-477f-4b79-9081-c1cf95edba7a/slides/0",  
        "definition": {  
            "name": {  
                "en-US": "Articles"  
            },  
            "type": "http://adlnet.gov/expapi/activities/module"  
        },  
        "objectType": "Activity"  
    }  
}

The JSON contains the following objects:

  • Actor—describing the learner.
  • Verb—uniquely defining an action taken by the learner. In CMI5 there are nine actions: Launched, Initialized, Terminated, Passed, Completed, Failed, Abandoned, Waived, Satisfied.
  • Timestamp—the time when the page was sent.
  • Stored—the time when the event was recorded in the LRS.
  • Authority—information about the authorised user.
  • Object—describing the current page.

Another part of the course is a simple test, in which the learner needs to select several correct options.

An example of a task

Our learner doesn’t quite get all the answers right, and chooses options 3 and 4. The JSON statement for this event looks like this:

{  
"id": "e0d2bc32-31f4-478e-83cf-f5a29c707c64",  
    "actor": {  
        "account": {  
            "homePage": "http://test.scorm.com",  
            "name": "test"  
        },  
        "objectType": "Agent",  
        "name": "Ivan Ivanov"  
    },  
    "verb": {  
        "id": "http://adlnet.gov/expapi/verbs/answered",  
        "display": {  
            "en-US": "answered"  
        }  
    },  
    "result": {  
        "score": {  
            "scaled": 0,  
            "raw": 0,  
            "min": 0,  
            "max": 10  
        },  
        "success": false,  
        "response": "2[,]3",  
        "duration": "PT0H0M21S"  
    },  
    "context": {  
        "extensions": { "https://w3id.org/xapi/cmi5/context/extensions/sessionid": "bb6253b8-9470-405b-962c-6e12b1cb4e18"  
        },  
        "registration": "3f0210f7-82fc-4adf-bea8-0b5b6c7555ab",  
        "contextActivities": {  
            "grouping": [  
                {  
                    "id": "https://test.cmi5/E6577A53-68D2-4863-B1CE-F606338992A3/presentation",  
                    "objectType": "Activity"  
                } 
            ],  
            "parent": [  
                {  
                    "id": "http://test.scorm.com/cmi5/lms-id/3a45d09ae8d81f3e2c195ca0c92517c1bc9c4099/4deaa592-477f-4b79-9081-c1cf95edba7a/quizzes/3eb2m2qum2ic-gi7dizsu4d26",  
                    "objectType": "Activity"  
                }  
            ]  
        }  
    },  
    "timestamp": "2020-02-15T16:30:12.000Z",  
    "stored": "2020-02-15T16:32:06.654Z",  
    "authority": {  
        "account": {  
            "homePage": "http://test.scorm.com",  
            "name": "test"  
        },  
        "objectType": "Agent",  
        "name": "Ivan Ivanov"  
    },  
    "version": "1.0.0",  
    "object": {  
        "id": "http://test.scorm.com/cmi5/lms-id/3a45d09ae8d81f3e2c195ca0c92517c1bc9c4099/4deaa592-477f-4b79-9081-c1cf95edba7a/quizzes/3eb2m2qum2ic-gi7dizsu4d26/questions/Slide1_Q_i68jbjynkg0v-wgrvgh6ix86p",  
        "definition": {  
            "name": {  
                "en-US": "Choose all sentences where the is used."  
            },  
            "description": {  
                "en-US": "Choose all sentences where the is used."  
            },  
            "type": "http://adlnet.gov/expapi/activities/cmi.interaction",  
            "correctResponsesPattern": [  
                "1[,]2"  
            ],  
            "choices": [  
                {  
                    "id": "0",  
                    "description": {  
                        "en-US": "Ivan has the/a/an terrible tattoo."  
                    }  
                },  
                {  
                    "id": "1",  
                    "description": {  
                        "en-US": "I like the/a/an black hoodie over there better than the white one."  
                    }  
                },  
                {  
                    "id": "2",  
                    "description": {  
                        "en-US": "Where\'s the/a/an USB drive I lent you last week?"  
                    }  
                },  
                {  
                    "id": "3",  
                    "description": {  
                        "en-US": "Maria\'s boyfriend works as the/a/an DJ."  
                    }  
                }  
            ],  
            "interactionType": "choice"  
        },  
        "objectType": "Activity"  
    }  
}

The result object contains the result from the learner’s test session: their responses, score, the possible maximum and minimum score, time spent on the test, etc. The object describes the content of the test, including a list of all the options and the answer key.

What Do the Statistics Say?

In 2019, Rustici Software published statistics of the numbers of courses uploaded to SCORM cloud.

 A diagram showng course statistice on SCORM Cloud

According to their statistics, the percentage of xAPI courses continues to grow year on year. Yet the standard is still far from being as popular as the different versions of SCORM and AICC.

There are several reasons for this. The most obvious is the significant financial cost required to implement and support xAPI. In addition, many LMSs are available only in browsers, and if Flash courses are excluded, it is difficult to find a good reason to stop using the SCORM courses and rewrite them in xAPI.

The percentage of CMI5 courses on the chart is minimal. At the same time, CMI5 copes with its main task: it ensures compatibility between LMS, LRS and xAPI-like courses and, as a result, acts as a more powerful and modern alternative to SCORM.

You Might Also Like

Blog Posts
Action Filters to Create Cleaner Code
January 25, 2021
There are many ways to solve the annoying problem of duplicate code. In this post, we show how action filters can be used to clean up the code.
Blog Posts
Understanding Workflow: Why It Matters and How to Change It
December 08, 2020
In this article, we will analyse a few simple examples that demonstrate how a workflow may look, what its common practices are, when it is needed and how to change it.
Blog Posts
The Evolution of LMS Release Management and Its Benefits
November 19, 2020
This article illustrates how the release process of the high-load platform was transformed from occasional and costly releases to more frequent and predictable ones.
1
7