Автоматизированная проверка кода в Moodle

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

Мы автоматизировали проверку решений с кодом для различных наших курсов. В том числе и для курса по xv6, про который можно прочитать в отдельной статье. Одним из главных преимуществ является то, что это работает с Moodle.

Подробнее про архитектуру

Реализованная система task.cub-it.org, именуемая далее система, поддерживает работу с задачами типа grader, для проверки которого необходим ансамбль сервисов: сервис (XQueue), управляющий очередями присланных решений, а также сервисы, занимающиеся проверкой решений конкретных очередей (watchers).

  • XQueue определяет интерфейс для взаимодействия с внешними системами, проверяющими и оценивающими решения. Взаимодействие системы с XQueue:

    • Система отправляет решения в XQueue с помощью POST-запроса, содержащего URL-адрес обратного вызова, указывающий, куда следует отправить результат проверки.

    • Когда решение проверено, XQueue отправляет ответ по указанному URL.

  • Watchers – сервисы, опрашивающие XQueue на предмет наличия решений в обслуживаемой очереди, проводящие проверку полученных решений, а также отправляющие результат проверки обратно в XQueue.

Рассматриваемая система, в рамках взаимодействия с системой управления обучением (LMS, Moodle), представляет из себя “внешний инструмент” (англ. external tool), систему, предоставляющую материалы и обучающие задачи, расширяющие базовые возможности Moodle, взаимодействие с которой производится по стандарту IMS для взаимодействия средств обучения LTI. После получения результата проверки решения от XQueue, система перенаправляет его в LMS.

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

Также мы запустили терминал, с которым студенты могут работать в Moodle. Но об этом расскажем позже, в отдельной статье.

Эта статья написана совместно с Дмитрием Ивановым.

Источник: https://habr.com/ru/post/598327/


Интересные статьи

Интересные статьи

В разработке nginxучастия я никогда не принимал, так как мой навык работы в Си находится где-то на уровне 1/10. Однако меня не страшит идея скачать исходный код, разобрать его, скомпилировать и за...
Привет Хабр! Сегодня я хочу рассказать о платформе, где люди соревнуются в том, кто больше сможет сэкономить тактов CPU для решения задач. Её история началась весной 2021 года, после очередного HighLo...
В сегодняшней статье на Хабре мы расскажем про очередную задачу распознавания. Рассмотрим проблему распознавания штрихкодов, которая очень актуальна в связи с непрерывным...
Нередко при работе с Bitrix24 REST API возникает необходимость быстро получить содержимое определенных полей всех элементов какого-то списка (например, лидов). Традиционн...
Автокэширование в 1с-Битрикс — хорошо развитая и довольно сложная система, позволяющая в разы уменьшить число обращений к базе данных и ускорить выполнение страниц.