CMI5, или Жизнь после SCORM



    В детстве я мечтала стать учителем. Детская мечта частично сбылась: мои взрослые рабочие будни проходят «в школе». И хотя я не учитель в реальном классе, а программист системы дистанционного обучения (СДО), цель у меня та же: сделать обучение доступным, а его процесс интересным. Правда, программисту для этого необходимо умение «жонглировать» не мелом и указкой, а стандартами дистанционного обучения. Я предлагаю совершить путешествие во времени на 20 лет назад, чтобы узнать, как эволюционировали стандарты дистанционного обучения и какие средства в арсенале программистов СДО есть сейчас.

    В 1999 году, когда мои ровесники обводили карандашом в кружок теорему Пифагора в учебнике геометрии, компания ADL стартовала проект, в котором скучные учебники планировали заменить электронными курсами. В 2001 ею была выпущена первая официальная версия SCORM (Sharable Content Object Reference Model) — формального языка и спецификации для создания обучающих курсов и их интеграции в СДО. 

    ADL — не единственная компания, которая пыталась стандартизировать дистанционное обучение. На создание SCORM ее вдохновила разработанная компанией AICC одноименная спецификация. AICC первоначально предназначалась для авиации, но в результате стала популярна и за ее пределами.

    SCORM «под капотом» — это:

    • описание структуры учебных блоков и пакетов учебного материала (Content Aggregation Model) — метаданных и ресурсов (изображения, HTML-файлы, Flash и т.д.);
    • требования к среде выполнения: правила запуска курсов, ECMAScript API для коммуникации SCORM-клиента с СДО, структура модели данных;
    • правила организации учебных материалов и навигации между ними в зависимости от успеваемости ученика.

    Несмотря на то, что реализация курса и его поддержки на стороне СДО — задача непростая, SCORM выглядел привлекательным со многих сторон:

    • Конфигурация SCORM-курсов не завязана на конкретной СДО. Однажды созданные курсы могут быть использованы в любых системах, поддерживающих SCORM. Справедливо и обратное: для СДО не важно, кто является провайдером курса. Достаточно того, чтобы курс соответствовал стандарту.
    • SCORM-курс может содержать проверочные тесты, обучающие модули, интерактивные игры в любом формате, поддерживаемом браузерами. 
    • СДО получает информацию о прогрессе ученика: оценку, если это тест, процент прохождения курса, время, затраченное на обучение, и т. д.
    • Курсы хорошо структурированы, блоки и модули следуют друг за другом в заданном порядке.
    • Ученик может прервать курс и продолжить в любое другое время. СДО позаботится о том, чтобы в следующий раз курс открылся на том месте, на котором был остановлен.

    xAPI


    Со временем SCORM показал свои слабые стороны.

    • Исторически сложилось, что большинство курсов реализовано на некогда популярном Flash. Решение о прекращении поддержки Flash привело к тому, что обновленные браузеры «не хотят» добровольно запускать такие SCORM-курсы.
    • Мобильные гаджеты, оснащенные приложениями для обучения, стали конкурировать с ПК за «место на парте», и зависимый от браузера SCORM остался не у дел.
    • SCORM-курс не способен существовать отдельно от СДО: и хоститься они вынуждены вместе, чтобы избежать кроссдоменных конфликтов, и сам по себе такой курс вне СДО становится бесполезным.
    • Обнаружилось, что взломать SCORM-курс способен даже школьник («спасибо» ECMAScript API).

    ADL решила не латать дыры в SCORM, а создать новую спецификацию, которая не повторит ошибок SCORM и в будущем станет его достойной заменой. Так появился xAPI (или TinCan).


    Изюминки нового стандарта — это основанная на REST архитектура и Learning Record Store (LRS) — отдельно выделенное хранилище, которое получает информацию о каждом шаге учащегося и выдает ее по запросу. Что это дало пользователям и разработчикам xAPI?

    • Стало возможным обучаться на мобильном устройстве.
    • Формат контента курса безграничен. Устаревший Flash, произвольные HTML-страницы, аудио, видео, обучающие игры и симуляторы — из всего этого можно «приготовить» контент. 
    • Курсовой контент и LRS могут быть размещены где угодно, а не только на том сервере, где «живет» СДО.
    • Курсы доступны даже офлайн. Информация о прохождении курса не будет потеряна, как это происходит в SCORM, а синхронизируется с LRS сразу, как только восстановится связь. Также ученик может продолжить обучение на любом другом устройстве с того места, где он остановился, а не проходить курс заново. 
    • Неограниченные возможности для сбора аналитики.
    • Наконец, курсы стали доступны вне СДО. Теперь всю работу по хранению и выдаче аналитики выполняет за нее LRS.

    xAPI + СДО =?


    Хотя xAPI и выглядит как серебряная пуля для электронного обучения, на практике оказалось, что отдельные xAPI-курсы не могут заменить полноценную СДО. Попытка же подключать такие курсы к СДО сильно осложнилась тем, что язык xAPI лишен жестких правил. Так, например, нет способа систематизировать и однозначно идентифицировать действия учащегося, если в одном курсе глагол, означающий завершение курса, — это “completed”, а в другом — “passed”. 

    В 2016 появился CMI5 (Computer Managed Instruction) — совместное «детище» компаний AICC и ADL, известное как xAPI, модифицированная для использования в СДО. Создатели спецификации утвердили единую структуру курса, правила взаимодействия курса и СДО, словарь слов, описывающих действия учащегося. В итоге CMI5 унаследовала лучшие качества SCORM и xAPI: гарантированную совместимость курсов и СДО и большие возможности для обучения и аналитики процесса обучения. 


    CMI5 в действии


    Рассмотрим простейший CMI5-курс для изучения русского языка.

    Один из его блоков, информационный, содержит правило для запоминания падежей.


    Модуль «Падежи» — только для чтения. При нажатии на кнопку Продолжить будет сгенерировано событие «Иван Иванов изучил 'Падежи'. », или на языке CMI5 “Ivan Ivanov experienced 'Падежи'.”. На запрос информации о произошедшем событии LRS ответит следующим JSON:

    Ivan Ivanov experienced 'Падежи'.
    {
    "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" 
        } 
    } 

    В этой структуре можно разглядеть следующую информацию:

    • actor — описывает того, кто проходит обучение.
    • verb — глагол, обозначающий действие учащегося. То, что отличает CMI5 от xAPI, — это утвержденные 9 глаголов-действий: Launched, Initialized, Terminated, Passed, Completed, Failed, Abandoned, Waived, Satisfied;
    • timestamp — фиксированный момент времени прохождения модуля;
    • stored — время, когда событие было записано в LRS;
    • authority — информация об авторизованном пользователе; 
    • object описывает текущий модуль. 

    Другой модуль курса — проверочный. От учащегося требуется выбрать несколько правильных ответов из предложенных вариантов.


    Наш неграмотный ученик частично ошибается, выбрав 3 и 4 варианты. JSON-отчет для этого события выглядит так:

    Ivan Ivanov incorrectly answered 'Выберите предложения, в которых -бы пишется РАЗДЕЛЬНО.' 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" 
        } 
    } 

    Объект result содержит результат прохождения теста: ответ ученика, набранные учеником очки, максимальное и минимальное количество очков, время, затраченное на тест и т.д. Объект object описывает содержимое теста, включая список вариантов и правильный ответ.

    Заключение


    В 2019 году компания Rustici Software опубликовала статистику курсов, загружаемых на SCORM Cloud.


    Согласно статистике, процент использования xAPI-курсов растет с каждым годом, хотя спецификация все еще далека по популярности не только от различных версий SCORM, а даже от его прародителя AICC. 

    Причин для этого несколько. Самые очевидные — трудовые и финансовые затраты, необходимые для внедрения xAPI. К тому же большое число СДО доступны только в браузере, и если исключить проблемные Flash-курсы, то сложно придумать весомый повод для того, чтобы отказаться от рабочих SCORM-курсов и переписать их на xAPI.  

    Процент CMI5-курсов на этом графике минимальный. При этом CMI5 отлично справляется со своей главной миссией: обеспечивает совместимость LRS и xAPI-подобных курсов с СДО и, как следствие, выступает более мощной и современной альтернативой SCORM.

    Есть ли жизнь после SCORM? Однозначно есть. И она объективно более интересная, более технологичная и разнообразная, чем та, что помещается в браузерное окно.

    Ссылки на материалы, использованные в статье:


    Аркадия
    Заказная разработка, IT-консалтинг

    Похожие публикации

    Комментарии 3

      0

      Я помню с каким опозданием в России "появлялся" scorm. Cmi5 как и xApi я думаю пойдут в массы ещё очень не скоро. Отличная статья. Обязательно опубликую свой опыт.

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое