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

Ответы и проверка

Зачем нужно

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

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

  • автор задачи;
  • методист;
  • преподаватель;
  • проверяющий;
  • инженер backend.

Сценарии

  • задать тип ответа;
  • указать правильный ответ;
  • настроить частично правильные ответы;
  • описать критерии ручной проверки;
  • включить автоматическую проверку;
  • поддержать физические ответы с единицами измерения и tolerance;
  • поддержать proof/free text/manual review;
  • рассчитать баллы;
  • передать результат в домен использования.

Данные

  • answer schema;
  • answer key;
  • checking rule;
  • rubric;
  • score rule;
  • manual review;
  • attempt reference.

Типы answer schema

  • exact_value;
  • numeric_with_tolerance;
  • unit_value;
  • single_choice;
  • multiple_select;
  • expression;
  • composite_answer;
  • file_upload;
  • free_text;
  • proof;
  • manual_review_required.

Математика, физика и будущие предметы могут иметь разные validators. Изменение answer key или checking rule требует новой version/rule version, чтобы старые attempts оставались воспроизводимыми.

Правила

  • Банк заданий хранит эталонные ответы и правила проверки.
  • Конкретная попытка ученика принадлежит LMS, олимпиаде или другому домену использования.
  • Task-bank problem_attempt является low-level check artifact и не заменяет lms_activity_attempt, learning_training_attempt или competition_submission.
  • Автоматическая проверка должна быть детерминированной или явно помеченной как недетерминированная.
  • Ручная проверка требует критериев и аудита.
  • Answer key, checking rule and rubric are service/checker scoped and never part of public catalog projection.

API

Канонические операции описаны в ../api-map.md: чтение версии задачи с answerSchema, GET/POST /problem-versions/{versionId}/checking-rules, POST /attempts, POST /attempts/{attemptId}/submit, POST /attempts/{attemptId}/check, POST /answer-checks/{checkId}/override и manual-reviews для ручной проверки.

Серверная часть

Серверная часть хранит схемы ответов, ключи, критерии, правила начисления баллов и адаптеры проверки для разных типов задач.

Интерфейс

  • редактор типа ответа;
  • редактор ключей;
  • редактор критериев;
  • предпросмотр проверки;
  • история изменений;
  • состояние ручной проверки.

Интеграции

  • LMS — домашние задания и уроки;
  • competitions — туры и проверки;
  • solutions — эталонные решения;
  • analytics — качество проверок и спорные ответы.

Безопасность

Ключи, критерии и автоматические правила проверки не раскрываются пользователям до разрешённого момента.

Нестандартные случаи

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

Готовность

  • типы ответов описаны;
  • правильные и частично правильные ответы поддерживаются;
  • ручная и автоматическая проверка разделены;
  • попытки не смешиваются с каноническими ответами;
  • физика и будущие предметы не требуют отдельной модели checking;
  • answer key security покрыта scopes, visibility and audit;
  • баллы считаются по явным правилам.