Перейти к основному содержимому

Прогресс

Зачем нужно

Прогресс нужен, чтобы объяснимо фиксировать действия ученика внутри LMS и не смешивать их с roadmap mastery, attendance и продуктовым доступом.

Кто использует

  • ученик;
  • родитель;
  • преподаватель;
  • методист;
  • analytics.

Правила

В LMS необходимо различать:

  • прогресс внутри контента;
  • evidence учебной активности;
  • итоговые статусы completion.
  • агрегаты Learning Group как read-model, а не отдельный progress.

Также необходимо различать:

  • lesson_progress
  • course_progress
  • topic_progress в roadmap
  • product_progress в product/enrollment-слое

Это четыре разных слоя.

Источники evidence

LMS может получать evidence из следующих сигналов:

  • открытие урока;
  • просмотр блока;
  • просмотр видео;
  • прохождение quiz;
  • выполнение activity;
  • тренировочная попытка в олимпиадном тренажёре;
  • просмотр или выполнение разбора;
  • отправка домашнего задания;
  • результат попытки;
  • оценка преподавателя;
  • импортированный progress из внешней LMS.

Минимальная модель прогресса для MVP

Для курсов в записи

На первом этапе достаточно фиксировать:

  • урок открыт;
  • урок завершён;
  • домашнее задание отправлено / проверено;
  • quiz пройден, если есть.

Для live-курсов в LMS-контуре

Если LMS используется как контентный слой рядом с живым занятием:

  • просмотр материалов;
  • выполнение домашнего задания;
  • дополнительные activity;
  • optional quiz.

Для будущих предметно-специфичных сценариев

Позже можно добавить:

  • количество решённых задач;
  • оценку работы на уроке;
  • rubric score;
  • teacher note;
  • предметно-специфичные сигналы.

Прогресс урока (lesson_progress)

lesson_progress отвечает на вопрос: что пользователь сделал в рамках конкретного урока?

Минимальные поля:

  • пользователь;
  • урок;
  • статус;
  • completion percentage;
  • last activity at;
  • completed at;
  • score summary;
  • evidence summary.

Типовые статусы lesson progress

  • not_started
  • in_progress
  • completed

При необходимости можно позже добавить:

  • needs_review
  • partially_completed

Прогресс курса (course_progress)

course_progress отвечает на вопрос: какова агрегированная степень прохождения LMS-структуры?

Он считается поверх:

  • completed lessons;
  • required blocks;
  • required activities;
  • required homework;
  • optional grading rules.

Progress по Learning Group

Progress по Learning Group — это read-model для преподавателя, а не новая каноническая сущность.

Правила:

  • источник списка учеников — learning_group_participant;
  • источник учебного состояния — lms_progress_snapshot, attempts, submissions и evidence;
  • каждая строка проверяется через lms.progress.read и active teacher assignment;
  • если прав на конкретного ученика/enrollment нет, строка не раскрывает progress;
  • архивирование Learning Group не удаляет historical LMS progress.

Правила завершения (completion rules)

Completion в LMS должен быть configurable.

Примеры:

  • для одного урока достаточно открыть обязательные блоки;
  • для другого нужно сдать quiz;
  • для третьего нужно отправить домашнее задание;
  • для отдельного предмета completion зависит от teacher check.

Почему completion нельзя сводить к attendance

Attendance относится к LMS live delivery подсистеме и может быть использован как evidence для roadmap или аналитики, но не заменяет собой LMS completion.

Особенно это важно, потому что:

  • записанные курсы не имеют attendance в live-смысле;
  • посещение живого занятия не означает просмотр контента и выполнение домашки;
  • mastery может требовать нескольких signals.

Олимпиадный тренажёр и разбор

Тренировочная попытка по опубликованному олимпиадному материалу может участвовать в LMS progress как обычная учебная активность.

Разделение:

  • LMS хранит training attempt/evidence/progress;
  • task-bank хранит problem/checker/result для конкретной задачи;
  • competitions хранит official submission/check/result/ranking;
  • training result не пересчитывает и не исправляет official competition result.

Разные предметы — разные схемы evidence

Математика

Потенциальные сигналы:

  • просмотр урока;
  • quiz;
  • домашнее задание;
  • решённые задачи;
  • teacher mark за работу на уроке.

Шахматы

Потенциальные сигналы:

  • просмотр разбора;
  • выполнение упражнений;
  • assessment преподавателя.

ТРИЗ

Потенциальные сигналы:

  • участие в activity;
  • выполнение творческого задания;
  • teacher rubric.

На этапе MVP это не нужно реализовывать полностью, но доменная модель должна поддерживать такой рост.

Интеграционный переходный этап

Пока внешняя LMS — GetCourse, часть lesson_progress и course_progress фактически импортируется. На переходном этапе нужно хранить:

  • источник данных;
  • внешний идентификатор;
  • время синхронизации;
  • нормализованный внутренний статус.

Связь с roadmap

LMS progress сам по себе не закрывает тему дорожной карты автоматически.

Связка выглядит так:

  • LMS генерирует evidence;
  • roadmap использует evidence и свои completion rules;
  • только после этого тема может считаться закрытой.