Документация/Интеграция SCORM/Отслеживание прогресса

Отслеживание прогресса SCORM

SecureCodingHub передаёт прогресс обучения обратно в Вашу LMS через SCORM. Отслеживайте завершение, баллы и время сессии.

Как передаётся прогресс

SecureCodingHub реализует модели отчётности и SCORM 1.2, и SCORM 2004 (3rd и 4th edition), поэтому один и тот же пакет контента будет работать внутри любой LMS, соответствующей стандарту. Во время активной сессии плеер обменивается данными выполнения с LMS через SCORM-адаптер, который LMS внедряет при запуске, и этот обмен производит четыре точки данных, которые Ваши администраторы видят в журнале оценок или отчёте о завершении. Поля ниже — это канонический набор, который мы записываем при каждом commit; конкретные вендоры LMS отображают их под разными метками столбцов, но базовые значения идентичны.

Когда учащийся завершает обучение, SCORM-мост передаёт следующие данные обратно в LMS:

  • Статус завершения (incomplete → completed)
  • Балл (0-100)
  • Время сессии
  • Закладка для возобновления

Каждое из этих значений сопоставляется с конкретным элементом модели данных SCORM. Статус завершения записывается в cmi.completion_status в SCORM 2004 и в cmi.core.lesson_status в SCORM 1.2. Балл записывается в cmi.score.raw в обеих версиях с масштабированным эквивалентом в cmi.score.scaled только в 2004 (в 1.2 нет масштабированного поля). Время сессии накапливается в cmi.session_time в формате длительности ISO 8601, а закладка возобновления сериализуется в cmi.suspend_data. Мост повторно фиксирует эти элементы на каждом heartbeat-тике во время активной сессии, поэтому прерванная сессия всё равно производит частично переданное состояние, которое LMS может отобразить.

Критерии завершения

SCORM-сессия помечается как завершённая, когда учащийся закончил каждое обязательное задание в своей организации, или — если обязательных заданий нет в ожидании — как только у него есть любой записанный прогресс. Порог сегодня не настраивается на уровне задания или пакета; та же логика выпускается в каждом SCORM-пакете, генерируемом платформой.

SCORM 2004 различает завершением (закончил ли учащийся активность) и успехом (прошёл ли он её). Мост сообщает оба: cmi.completion_status отражает, закончена ли активность, а cmi.success_status отражает, был ли достигнут средний порог проходного балла. SCORM 1.2 не имеет отдельного разделения завершения / успеха — мост записывает passed или failed в cmi.core.lesson_status после того, как завершение становится true, и incomplete в противном случае.

Расчёт балла

Балл, который получает LMS, вычисляется на стороне сервера из прогресса учащегося в практике. Внутренняя шкала балла идёт от 0 до 160 за задание (Фаза 1 + Фаза 2, с обеими фазами по 100 за безошибочное завершение с первой попытки без подсказок). Чтобы произвести понятное для SCORM число 0–100, мост усредняет практические баллы по завершённым заданиям учащегося и делит на 1.6, затем ограничивает результат 100. Преобразование фиксировано; в этом релизе нет взвешивания по пакету или заданию.

МетрикаКак рассчитывается
Сырой баллmin(avg(challengeScores) / 1.6, 100)
Макс. балл100
Мин. балл0
Проходной балл70 (зашит в лаунчере; не настраивается на уровне пакета)

Возобновление / Приостановка

Если учащийся закрывает сессию до завершения:

  • Текущая позиция сохраняется как закладка
  • Следующий запуск возобновляется с закладки
  • Heartbeat сессии поддерживает сессию живой во время активного использования

Полная закладка — на какой теме был учащийся, на каком задании, на какой фазе, какие подсказки он раскрыл — живёт на стороне сервера в записи сессии SecureCodingHub, а не внутри SCORM-пакета. То, что мост фактически кладёт в cmi.suspend_data, — это маленький JSON-конверт, содержащий только id сессии SecureCodingHub (например, {"sid":"..."}); при возобновлении мост читает этот id обратно, вызывает эндпоинт сессии SecureCodingHub и использует серверное состояние для регидратации плеера. Поэтому LMS никогда не держит содержимое задания, историю ответов или состояние подсказок.

SCORM устанавливает потолок 64KB на cmi.suspend_data в спецификации 1.2 и фактически тот же лимит во многих реализациях 2004. Поскольку мост записывает в LMS только id сессии, полезная нагрузка приостановки остаётся значительно меньше килобайта независимо от того, насколько длинное задание или сколько раз учащийся приостанавливал и возобновлял его.

Heartbeat

Пока учащийся держит SCORM-плеер открытым, лаунчер отправляет heartbeat на бэкенд SecureCodingHub в POST /api/sch/scorm/heartbeat каждые 60 секунд, неся id сессии, текущую закладку и накопленное время сессии. Тот же тик повторно фиксирует модель данных SCORM на стороне LMS, поэтому завершение, балл, время сессии и данные приостановки остаются синхронизированными без ожидания явных событий сохранения.

НастройкаЗначение
ИнтервалКаждые 60 секунд во время активной сессии
ЭндпоинтPOST /api/sch/scorm/heartbeat
Полезная нагрузка{"sessionId":"…","lmsBookmark":"…","sessionTime":"…"}
НазначениеНе даёт сессии LMS истечь по таймауту и обновляет завершение / балл / данные приостановки с обеих сторон

Просмотр прогресса

Администраторы могут просматривать SCORM-сессии из:

1

Админ-панель SecureCodingHub → SCORMActive Sessions

2

Журнал оценок LMS / отчёты о завершении

Представление администратора SecureCodingHub является источником истины для детальной аналитики: попытки по заданиям, использование подсказок, время на задаче и конкретные исправления, выбранные учащимся. Журнал оценок LMS видит SCORM-сводку — завершение, балл, время сессии — и является правильной поверхностью для отчётности по соответствию и выпуска сертификатов, но у него нет видимости в базовые пошаговые данные. Большинство администраторов используют оба представления в тандеме: LMS для отчётности «закончил ли учащийся и сдал», а панель SecureCodingHub — для решений «где когорта испытывает трудности и что нам нужно скорректировать». Для более глубокого аналитического процесса и того, как настроить разрешения роли администратора на панели, см. нашу документацию по панели администратора и сопутствующее руководство по ролям и разрешениям.

Эмиссия xAPI находится в дорожной карте и сегодня недоступна. Когда она появится, SecureCodingHub сможет отправлять те же события по заданиям (раскрытие подсказок, неверные попытки, переходы между заданиями) в Learning Record Store наряду с SCORM-commit'ами. До тех пор набор SCORM-commit — это единственная LMS-поверхность из коробки, а панель администратора SecureCodingHub — единственное место, где можно увидеть гранулярность по событиям.

Раздельное отслеживание: Прогресс SCORM отделён от нативного прогресса SecureCodingHub. Для самой подробной аналитики используйте панель администратора SecureCodingHub.