CMI5, or Life after SCORM



As a child, I dreamed of becoming a teacher. A childhood dream has partially come true: my adult workdays are held "at school". And although I am not a teacher in a real class, but a programmer of a distance learning system (DLS), my goal is the same: to make learning accessible, and its process interesting. True, for this, the programmer needs the ability to "juggle" not with chalk and pointer, but with the standards of distance learning. I propose to take a journey in time 20 years ago to find out how the standards of distance learning have evolved and what tools are in the arsenal of LMS programmers now.

In 1999, when my peers circleed the Pythagorean theorem in a geometry textbook with a pencil, ADL launched a project in which they planned to replace boring textbooks with electronic courses. In 2001, she released the first official version of SCORM (Sharable Content Object Reference Reference Model) - a formal language and specification for creating training courses and their integration into the LMS. 

ADL is not the only company that has attempted to standardize distance learning. The creation of SCORM was inspired by the specification of the same name developed by AICC. AICC was originally intended for aviation, but as a result became popular beyond its borders.

SCORM "under the hood" is:

  • description of the structure of training blocks and packages of educational material (Content Aggregation Model) - metadata and resources (images, HTML-files, Flash, etc.);
  • requirements for the runtime environment: rules for launching courses, ECMAScript API for communication of the SCORM client with the LMS, the structure of the data model;
  • rules for the organization of teaching materials and navigation between them, depending on student performance.

Despite the fact that the implementation of the course and its support on the side of the LMS is not an easy task, SCORM looked attractive from many angles:

  • The configuration of SCORM courses is not tied to a specific LMS. Once created courses can be used in any systems supporting SCORM. The opposite is also true: for the LMS it does not matter who the provider of the course is. It is enough that the course complies with the standard.
  • SCORM-course can contain verification tests, training modules, interactive games in any format supported by browsers. 
  • The LMS receives information about the student's progress: an assessment, if it is a test, the percentage of completion of the course, the time spent on training, etc.
  • Courses are well structured, blocks and modules follow each other in a given order.
  • The student can interrupt the course and continue at any other time. The LMS will make sure that the next time the course opens at the place where it was stopped.

xAPI


Over time, SCORM showed its weaknesses.

  • Historically, most courses are implemented on the once-popular Flash. The decision to discontinue support for Flash led to the fact that updated browsers "do not want" to voluntarily run such SCORM-courses.
  • Mobile gadgets equipped with training applications began to compete with the PC for a "place on the desk", and the browser-dependent SCORM was out of work.
  • SCORM-course is not able to exist separately from LMS: they are forced to host together to avoid cross-domain conflicts, and in itself such a course outside of LMS becomes useless.
  • It was found that even a schoolchild is able to crack a SCORM-course (thanks to the ECMAScript API).

ADL decided not to patch holes in SCORM, but to create a new specification that will not repeat SCORM errors and will become a worthy replacement in the future. So xAPI (or TinCan) appeared.


The highlight of the new standard is the REST-based architecture and the Learning Record Store (LRS) - a separate storage that receives information about each step of the student and issues it upon request. What has this given to xAPI users and developers?

  • .
  • . Flash, HTML-, , , — «» . 
  • LRS , , «» .
  • . , SCORM, LRS , . , , . 
  • .
  • , . LRS.

xAPI + =?


Although xAPI looks like a silver bullet for e-learning, in practice it turned out that individual xAPI courses cannot replace a full-fledged LMS. The attempt to connect such courses to the DLS was greatly complicated by the fact that the xAPI language is devoid of strict rules. So, for example, there is no way to systematize and uniquely identify student actions if in one course the verb meaning completion of the course is “completed” and in the other “passed”. 

In 2016, CMI5 (Computer Managed Instruction) appeared - a joint "brainchild" of AICC and ADL, known as xAPI, modified for use in DLS. The creators of the specification approved a single structure of the course, the rules for the interaction of the course and the LMS, a dictionary of words describing the actions of the student. As a result, CMI5 inherited the best qualities of SCORM and xAPI: guaranteed compatibility of courses and LMS and great opportunities for training and learning process analytics. 


CMI5 in action


Consider the simplest CMI5 course for learning the Russian language.

One of its blocks, informational, contains a rule for memorizing cases.


The "Case" module is read-only. When you click Continue, an event will be generated: "Ivan Ivanov studied 'Cases'. , Or in CMI5 language “ Ivan Ivanov experienced 'cases'. ” . LRS will respond to the request for information about the event with the following JSON:

Ivan Ivanov experienced 'cases'.
{
"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": { 
                "ru-RU": "" 
            }, 
            "type": "http://adlnet.gov/expapi/activities/module" 
        }, 
        "objectType": "Activity" 
    } 
} 

The following information can be seen in this structure:

  • actor - describes who is being trained.
  • verb is a verb denoting a student’s action. What distinguishes CMI5 from xAPI is the approved 9 action verbs: Launched , Initialized , Terminated , Passed , Completed , Failed , Abandoned , Waived , Satisfied ;
  • timestamp - a fixed point in time the module passed;
  • stored - the time when the event was recorded in the LRS;
  • authority - information about the authorized user; 
  • object describes the current module. 

Another module of the course is verification. The student is required to select several correct answers from the proposed options.


Our illiterate student is partially mistaken by choosing 3 and 4 options. The JSON report for this event looks like this:

Ivan Ivanov incorrectly answered 'Select sentences in which -would be written SEPARATELY.' with response '2,3' with score 0%.
{ 
    "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": { 
                "ru-RU": " ,   -  ." 
            }, 
            "description": { 
                "ru-RU": " ,   -  ." 
            }, 
            "type": "http://adlnet.gov/expapi/activities/cmi.interaction", 
            "correctResponsesPattern": [ 
                "1[,]2" 
            ], 
            "choices": [ 
                { 
                    "id": "0", 
                    "description": { 
                        "ru-RU": "  , ()   ." 
                    } 
                }, 
                { 
                    "id": "1", 
                    "description": { 
                        "ru-RU": "()     ,   ." 
                    } 
                }, 
                { 
                    "id": "2", 
                    "description": { 
                        "ru-RU": "\"() :   ?\" -  ." 
                    } 
                }, 
                { 
                    "id": "3", 
                    "description": { 
                        "ru-RU": "()   ,   ." 
                    } 
                } 
            ], 
            "interactionType": "choice" 
        }, 
        "objectType": "Activity" 
    } 
} 

The result object contains the result of passing the test: the student’s response, the student’s points, the maximum and minimum points, the time spent on the test, etc. The object object describes the contents of the test, including a list of options and the correct answer.

Conclusion


In 2019, Rustici Software published statistics on courses uploaded to the SCORM Cloud.


According to statistics, the percentage of xAPI courses is growing every year, although the specification is still far from being popular not only from various versions of SCORM, but even from its progenitor AICC. 

There are several reasons for this. The most obvious are the labor and financial costs required to implement xAPI. In addition, a large number of LMSs are available only in a browser, and if you exclude problematic Flash courses, it is difficult to come up with a good reason to refuse working SCORM courses and rewrite them to xAPI.  

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

Is there life after SCORM? Definitely there. And it is objectively more interesting, more technological and diverse than that which fits in a browser window.

References to the materials used in the article:



All Articles