Система автоматической проверки лабораторных работ
… или сапожник без сапог в лабутенах
https://i2z1.quarto.pub/checklab/
Зачем
Проблема длинных очередей к столу преподавателя при сдаче (защите) студентами лабораторных работ – одна из ключевых по затрате учебного времени и студентов, и преподавателя.
Выявление ошибок, особенно мелких, сомнения в выполненных студентами расчетах и оценках показателей, сложность в воспроизведении результатов работы в целом – что может сильнее демотивировать преподавателя студента?)
На практических занятиях, которые я веду, принята парадигма воспроизводимых отчетов (Quarto/Rmarkdown Notebooks – аналог Jupyter notebook). Отчет содержит как описательную часть, так и программный код, с помощью которого получены результаты работы. При этом, код выполняется прямо “в отчете” и туда же вставляются результирующий вывод работы программного кода (мы используем язык программирования R).
Качественное выполнение заданий студентами в такой форме позволяет в дальнейшем переиспользовать написанный ими самими код как на следующих лабораторных и практических занятиях по этой дисциплине, так в рамках изучения других дисциплин, но со схожими задачами обработки данных.
Как
Воспроизводимость работ (запуск отчета в виде Quarto ноутбука) позволяет – если все сделано правильно студентом – убедиться что код в отчете рабочий и результат вычислений совпадает с ответом на задание.
Система написана на языке программирования R.
Для автоматизированной проверки используется Gitlab CI/CD, которая по расписанию запускает систему проверки лабораторных работ.
В ходе ее работы:
- Клонируются репозитории студентов с отчетами
- Проверяются отчеты по формальным признакам: правильность оформления, наличие нужных разделов отчета и т.д.
- Собирается (компилируется) сам отчет и проверяется результат
- Строится итоговый отчет в виде веб-приложения
- Отчет (веб-приложение) публикуется на хостинге – https://i2z1.quarto.pub/checklab/
Дальше – проверка успешных, с точки зрения системы, отчетов преподавателем.
Планы
Система непрерывно дорабатывается, из семестра в семестр добавляются новые механизмы проверки. Ближе к концу семестра отчеты проверяются на плагиат.
В планах подключить проверку кода линтерами, а для описательной части делать агрегацию с помощью публичных больших языковых моделей.