25 октября 2019

Стандарт электронного обучения xAPI (Tin Can API)

Использование данных из LRS и роль LMS, проблемы при построении экосистемы
Олег Буйлов
Разработчик LEVEL
Более пяти лет занимается сборкой электронных курсов, настройкой систем дистанционного обучения (LMS) и учебной аналитикой.
В первой части статьи мы рассмотрели, что такое xAPI, для чего нужен стандарт электронного обучения xAPI и как устроены стейтменты. Во второй части узнаем, как использовать полученные данные из LRS, как изменяется роль системы дистанционного обучения и какие проблемы связаны с внедрением xAPI.

Как использовать данные из LRS

Использовать накопленные в LRS данные можно для двух целей:

1. Для анализа с помощью систем BI-аналитики.

Анализ данных обычно проводится с помощью таких систем, как Microsoft Power BI, Tableau или специализированных аналитических инструментов. Структура стейтментов отлично ложится на логику работы BI-инструментов. Руководители отдела обучения смогут изучать на дашбордах любые интересующие их метрики. Например, какие вопросы вызывают затруднения, какие видео проматывают, какая доля пользователей нечестно проходит тестирование. Некоторые типы графиков, диаграмм и таблиц могут быть встроены в LRS, но для поисков ответов на нестандартные вопросы придется привлекать аналитиков.
Пример отчета об обучении в сервисе аналитики дистанционного обучения​
Пример отчета об обучении в сервисе аналитики дистанционного обучения. Источник: официальный сайт «Курсометр»

2. Для построения нелинейных образовательных траекторий.

При разработке учебного контента можно учитывать учебный опыт пользователей. Технически это просто: нужно добавить в курсе или СДО скрипт, который отправит запрос в LRS и обработает историю стейтментов по пользователю. Можно получить достаточно подробные данные, к примеру:

  • Какой вариант ответа выбрал в определенном тесте внутри определенного блока;

  • С какой попытки прошел тест и сколько времени потратил на его завершение;

  • Какова динамика правильных ответов;

  • Какие категории контента более интересны;

  • На какой платформе чаще проходит обучение.

Чтобы это стало возможным, нужно, во-первых, накопить достаточный объем подробных, хорошо структурированных стейтментов, а во-вторых, выполнить методическую интерпретацию данных. Пока не существует распространенных практик или алгоритмов для реализации полноценных индивидуальных учебных маршрутов на основе xAPI.

Пример запроса в LRS для получения данных о пользователе, чтобы реализовать в курсе динамическую развилку: если пользователь ранее завершил другой определенный курс, он отправляется на слайд А; если нет 一 на слайд Б:
{  
   recordStores:[  
      {  
         endpoint:"https://cloud.scorm.com/tc/1VO6IG3J7I/",
         username:"ottKPKK15PDVqgXuS4g",
         password:"VhcZ2w8ljukin0gGsAU",
         allowFail:false
      }
   ]
}); 
var user = new TinCan.Agent({  
   "mbox":"mailto:learner3@example.com"
}); 
var result = tincan.getStatements({  
   params:{  
      agent:user,
      verb:{  
         id:"http://adlnet.gov/expapi/verbs/completed"
      },
      activity:{  
         id:"http://democourse"
      },
      limit:2,

   },
   callback:function(err,
   result){  
      //Код для Storyline 
        var player = GetPlayer(); 
        // Это позволяет узнать,
      получены ли заявления в целом 
        if (result.statements.length > 0){  
         statementFound = true; 
            player.SetVar(         "statement",
         statementFound);
      }      // Это позволяет установить конкретное значение переменной 
        var otz7 = result.statements[  
         0
      ]      .result.extensions[  
         'http://democourse/commented/otz7'
      ]      ; 
        player.SetVar(      "demo",
      demo);
   }
}
Подпишитесь на нашу рассылку и получайте свежие новости два раза в месяц

Если вы нажали на кнопку, вы согласны с политикой конфиденциальности.

Роль LMS при использовании LRS

LRS нужна для фиксации результатов обучения, в отличие от LMS, которая служит системой хранения контента и авторизации пользователей.

Но использовать LMS для запуска курсов больше необязательно. В роли LMS может выступать, например, корпоративный портал или приложение в Фейсбуке: все, что требуется 一 это опознать пользователя и сформировать параметры запуска для учебного контента, чтобы он мог соединиться с LRS. Пример URL-параметров, которые можно добавить к адресу электронного курса в Articulate Storyline, чтобы он начал передавать данные, даже если просто запущен на локальном компьютере:
?actor={  
   "account":{  
      "homePage":"http://levellab.ru/",
      "name":"12345"
   },
   "name":"Oleg",
   "objectType":"Agent"
}&endpoint=https://learninglocker.ru/data/xAPI/ 
&auth=Basic ZmVjM2E1OWZmNzYzMDc5ZGViYjIzYjQ5YjM1NGRmNTk0MTQyNTMxNzplOGYxYTA2NDQyMjRmYzk1Y2NmMjQyMzRhNjRkZDQzNjBmZTg0OGU3
&activity_id=http://levellab.ru/sb/demo 
&registration=542b57d5-87ef-4b03-a634-da75321932e2
Использовать LMS необходимо для решения, как минимум, следующих задач:

1. Хранить данные о пользователях.


LMS позволяет иметь источник подробных и актуальных данных о пользователях, которых нет в LRS. В LRS хранятся только их идентификаторы или email внутри стейтментов. Нельзя сделать запрос к LRS и отфильтровать пользователей, например, по подразделению. Это сделано потому, что стейтменты остаются в базе всегда неизменными, а сведения о пользователях 一 меняются. Но можно свести в системе аналитики пользовательские профили из LMS и стейтменты из LRS по ключу (в роли которого можно использовать идентификатор пользователя).

2. Формировать учебные программы.


Если требуется формировать учебные программы, состоящие из последовательно доступного контента, без функциональности LMS не обойтись. Но LMS должна быть интегрирована с LRS для отслеживания результатов по пользователям, поскольку они теперь в ней не фиксируются. Как вариант, LRS может направлять в LMS стейтменты (statement forwarding), соответствующие определенным критериям (например, только когда пользователь завершил тест более чем на 80%), и по факту получения стейтмента LMS может отметить курс пройденным и назначить пользователю другой.

Проблемы при построении xAPI экосистемы

Главные сложности при построении xAPI экосистемы:

1. Большинство СДО не поддерживают xAPI.

В большинстве компаний используются системы дистанционного обучения, которые либо не позволяют импортировать курсы в формате xAPI, либо требуют обновления, к чему готовы не все клиенты. Может потребоваться расширение учебной инфраструктуры (подключение LRS, системы аналитики). Не все специалисты хотят вникать в нюансы интеграции между LMS, LRS, электронными курсами.

2. Популярные сервисы и соцсети не поддерживают xAPI.

Сервисы, где пользователи чаще всего обучаются за пределами СДО 一 YouTube, Vimeo, Wikipedia, Coursera и др. 一 сами по себе не имеют поддержки xAPI. Чтобы получать оттуда статистику, нужно воспользоваться специальным техническим решением: установить пользователям «следящее» расширение в браузере, встраивать YouTube-ролики или Wiki-статьи в СДО через специальный проигрыватель и т. п.
Примеры xAPI плееров для внешних сервисов внутри СДО xAPI Apps
Примеры xAPI плееров для внешних сервисов внутри СДО xAPI Apps
3. Нельзя опознать одних пользователей из разных систем.

Предполагается, что внутри LRS сводятся данные по обучению пользователей на различных площадках 一 в СДО, соцсетях, офлайне и др. Основная сложность здесь в том, что у пользователей везде могут быть разные логины, почты. И хотя в спецификации xAPI для этого предусмотрено понятие The Agent Profile API: единый профиль пользователя, содержащий несколько идентификаторов.
{  
   objectType:"Person"   name:[  
      "Ivan",
      "Иван Иванов",
      "ivanov"
   ],
   mbox:[  
      "mailto:ivan123@gmail.com",
      "mailto:ivan123@yandex.ru",

   ]   account:[  
      {  
         homePage:"https://twitter.com",
         name:"ivanov-ivan"
      },
      {  
         homePage:"https://github.com",
         name:"ivan12345"
      }
   ]
}
Но пока что не существует решения, которое бы позволило автоматически выполнять объединение идентификаторов в один профиль. Это значит, что система аналитики не распознает, что пользователь ivanov на сайте YouTube и пользователь ivanov@mysite.ru 一 одно лицо. Пока что единственный способ, как можно решить эту проблему, 一 указывать везде в качестве идентификатора одну и ту же почту или логин.
Дополнительно (на английском):

Спецификация xAPI на GitHub: https://github.com/adlnet/xAPI-Spec/blob/master/xAPI.md

Руководство по xAPI для менеджеров по дистанционному обучению: The_Learning_Technology_Managers_Guide_to_xAPI.pdf
Автор: олег буйлов
Поделиться
Узнавайте первыми
Свежие публикации сотрудников и материалы о корпоративном e-learning. Два раза в месяц по четвергам.
Подписались, а письма не приходят? Пишите на marketing@levellab.ru

Если вы нажали на кнопку, вы согласны с политикой конфиденциальности.