Отслеживание прогресса 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-сессии из:
Админ-панель SecureCodingHub → SCORM → Active Sessions
Журнал оценок LMS / отчёты о завершении
Представление администратора SecureCodingHub является источником истины для детальной аналитики: попытки по заданиям, использование подсказок, время на задаче и конкретные исправления, выбранные учащимся. Журнал оценок LMS видит SCORM-сводку — завершение, балл, время сессии — и является правильной поверхностью для отчётности по соответствию и выпуска сертификатов, но у него нет видимости в базовые пошаговые данные. Большинство администраторов используют оба представления в тандеме: LMS для отчётности «закончил ли учащийся и сдал», а панель SecureCodingHub — для решений «где когорта испытывает трудности и что нам нужно скорректировать». Для более глубокого аналитического процесса и того, как настроить разрешения роли администратора на панели, см. нашу документацию по панели администратора и сопутствующее руководство по ролям и разрешениям.
Эмиссия xAPI находится в дорожной карте и сегодня недоступна. Когда она появится, SecureCodingHub сможет отправлять те же события по заданиям (раскрытие подсказок, неверные попытки, переходы между заданиями) в Learning Record Store наряду с SCORM-commit'ами. До тех пор набор SCORM-commit — это единственная LMS-поверхность из коробки, а панель администратора SecureCodingHub — единственное место, где можно увидеть гранулярность по событиям.