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

Решения

Зачем нужно

Решения нужны, чтобы хранить эталонные ответы, разборы и объяснения задач отдельно от попыток учеников и конкретных учебных сценариев.

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

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

Сценарии

  • добавить эталонное решение;
  • указать короткий ответ;
  • подготовить подсказки;
  • написать подробный разбор;
  • прикрепить видеоразбор;
  • настроить момент открытия решения;
  • настроить public solution policy для каталога;
  • отделить teacher notes от публичного разбора;
  • использовать решение при ручной проверке.

Данные

  • solution;
  • short answer;
  • hint;
  • explanation;
  • video explanation;
  • visibility rule;
  • author/reviewer.
  • public solution policy.

Правила

  • Решение связано с канонической задачей или конкретной версией задачи.
  • Решение может быть скрыто до завершения попытки, дедлайна или публикации результатов.
  • Подсказки и полный разбор должны открываться независимо, если сценарий это требует.
  • Teacher notes доступны только teacher/checker/admin contexts и не попадают в public projection.
  • Public solution policy может быть show, show_after_attempt, show_after_date, hide или teacher_only.
  • Competition solutions могут быть embargoed до завершения тура или publication results.
  • Решение не хранит попытку ученика.

API

Канонические операции описаны в ../api-map.md: GET/POST /problem-versions/{versionId}/solutions, GET/POST /problem-versions/{versionId}/hints, GET/PATCH /problem-versions/{versionId} для visibility/version metadata и GET /problem-versions/{versionId} для чтения доступной версии без скрытых ключей.

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

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

Интерфейс

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

Интеграции

  • task statement — связь с задачей;
  • answers-checking — использование эталона;
  • LMS — открытие после урока или попытки;
  • competitions — открытие после тура;
  • storefront — public-safe solution projection по policy;
  • storage/video — видеоразборы.

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

Закрытые решения не должны быть доступны ученикам, участникам активного тура или публичным страницам до разрешённого момента.

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

  • решение обновлено после публикации задачи;
  • у разных вариантов разные ответы;
  • подсказка доступна, а полный разбор скрыт;
  • публичная задача видна, но решение скрыто;
  • олимпиадная задача завершена и может стать training activity с новой visibility policy;
  • видеоразбор удалён;
  • задача импортирована без решения.

Готовность

  • у задачи можно хранить эталонный ответ и подробный разбор;
  • видимость решения управляется правилами;
  • решения версионируются;
  • teacher notes отделены от public solution;
  • public catalog не раскрывает закрытые решения и answer keys;
  • закрытые решения не раскрываются преждевременно.