Akhcheck / Apricot: автоматическая проверка заданий для вузов

Как устроен учебный контур Apricot: приём решений, изолированный запуск тестов, обратная связь студенту и ведомость преподавателя.

  • Akhcheck
  • Apricot
  • автопроверка
  • образование
  • DevOps
Главная страница Akhcheck / Apricot с описанием автоматической проверки заданий

Я создаю Apricot из практической задачи преподавания: проверка работ должна быть быстрой и одинаково внимательной к каждому студенту, а живой разбор нужен для нестандартных решений и спорных случаев. Публичная страница продукта прямо называет Павла Ахтямова создателем Apricot и описывает его происхождение из учебных курсов.

Задача

На курсе с регулярными заданиями преподавателю приходится повторять один и тот же контур: получить решение, развернуть окружение, запустить проверки, разобрать ошибку, выставить балл и перенести результат в ведомость. При ручном выполнении обратная связь растягивается, а критерии могут меняться от работы к работе.

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

Решение

Akhcheck / Apricot переносит повторяемые действия в систему проверки. Преподаватель заранее задаёт правила, студент отправляет решение через браузер, а сервис возвращает результат автоматического прогона. По публичному описанию продукта, система ведёт дедлайны, штрафы и пересдачи, сохраняет баллы в ведомости и показывает подробный лог.

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

Архитектура учебного контура

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

  1. Преподаватель готовит проверяемое задание. В комплект входят условие, тесты или проверяемые метрики, критерии оценивания и правила сдачи.
  2. Студент отправляет решение. Сервис принимает файл, код или ссылку на Git-репозиторий в зависимости от типа задания.
  3. Проверка выполняется в изолированной среде. Публичное описание Apricot указывает сборку и запуск решения в Docker-контейнере, выполнение тестов преподавателя, сравнение с эталоном и расчёт метрик, если они предусмотрены заданием.
  4. Студент получает объяснимый результат. Балл сопровождается логом проверки, поэтому следующая попытка начинается с конкретной ошибки, а не с догадок.
  5. Преподаватель работает с картиной курса. Результаты попадают в ведомость, а ручной разбор остаётся для работ, которые требуют экспертной оценки.

Какие сценарии покрывает платформа

  • Для заданий по программированию сервис собирает и тестирует решения на Python, C++, Java, Go, Rust и Bash.
  • Для SQL запросы выполняются на PostgreSQL, включая сценарии с оконными функциями, CTE и JSON.
  • Для Git публичный сайт описывает браузерные упражнения на ветвление, слияние и историю репозитория.
  • Для ML качество модели оценивается на скрытых тестовых данных, чтобы решение не строилось вокруг открытых ответов.
  • Для DevOps и Big Data проверяются контейнеры, Kubernetes-манифесты, CI/CD, Bash-скрипты и аналитические пайплайны. Отдельный сценарий предусмотрен для GPU-заданий.

Доказательства вместо рекламных обещаний

Первый уровень проверки даёт сайт Apricot: он описывает назначение продукта, поддерживаемые типы заданий и называет МФТИ, НИУ ВШЭ, МГТУ им. Баумана и Центральный университет местами использования. Эти сведения зафиксированы при обращении 24 октября 2026 года.

Второй уровень даёт внешняя страница курса на Public ATP Wiki. В условиях курса прямо указано, что задания сдаются через Akhcheck, а текущие оценки доступны в системе. Такой источник подтверждает не только наличие лендинга, но и включение сервиса в учебный процесс.

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