Автоматическая проверка заданий в онлайн-курсе (командный проект)

Материал из Wiki - Факультет компьютерных наук
Версия от 23:26, 15 сентября 2017; Dkorolev (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Компания НИУ ВШЭ
Учебный семестр Осень 2017
Учебный курс 3-й курс
Максимальное количество студентов, выбравших проект: 2-4



Что это за проект?

Платформа онлайн-обучения Stepik.org (http://stepik.org/) позволяет обрабатывать полученные от слушателей курсов работы python-скриптом или на внешнем сервере (external grader), возвращая результаты обратно в курс. На примере курса "Видеотехнологии" (МИЭМ) ведется разработка экспериментальных заданий с внешней и/или внутренней обработкой получаемых от студентов работ. Есть несколько типов заданий, каждый участник проекта отвечает за один из них. Для анализа работ могут применяться все современные инструменты и выделяются виртуальные серверы. Тем не менее, обработка заданий ставится в очередь, это нужно предусмотреть при разработке (для пользователя такая проверка выполняется не в реальном времени, поэтому есть время внимательно "изучить" решение и дать развернутый ответ.

Вариант задания 1: Собрать схему подключения устройств (например, для проведения трансляции или съёмки).

Студентам предлагается использовать сервис draw.io и библиотеку устройств. Созданный там xml-файл отправляется на проверку, где анализируется корректность выбора проводов и разъёмов, подключений, осмысленность схемы и учёт студентом приоритетов при сборке схемы (правильных вариантов может быть много, но важно учитывать условия использования собранной схемы).

Вариант задания 2 (не совсем видеотехнологии, скорее для журналистов и операторов): Студенты обучаются видеосъёмке и выполняют упражнения по съёмке, скажем, панорам. Нужно по полученному видеофрагменту сделать заключение, насколько корректно снят ролик, опираясь на набор правил. В простейшем случае ответ может быть текстовым, но правильнее было бы в видеофайле показать места, где завален горизонт, где дрогнула камера, где оператор слишком резко разогнался и т.д.

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

Аналогичные задачи применимы к проверке монтажа.

Возможны и менее формальные варианты, если найдутся желающие попробовать для их разбора нейросети.

Чему научатся студенты? Что самое интересное в проекте?

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

Программирование external grader выполняется по правилам edX, опыт может тиражироваться для создания задач для этой платформе.

Организация работы (Как студенты будут работать в команде?)

Роли и точный состав работ формируется по итогам регистрации желающих участвовать (команда может быть смешанной, в т.ч. со студентами МИЭМ и других факультетов, аналогичная тема заявлена на ярмарке проектов.

Далее организуется slack и трекер (обычно trello), где ведется рабочее общение и трекинг задач.

Встречи -- по договоренности (на первых порах это понадобится точно) на Кочновском, альтернативный и более частый вариант -- аудио/видеосвязь. Удобно, т.к. можно собираться по актуальному вопросу безотлагательно и в любое время в любом составе.

Компоненеты (Из каких частей состоит проект?)

Обработчик заданий (https://stepik.org/lesson/50675/step/1)

Какие будут использоваться технологии?

По умолчанию: Python и, в зависимости от конкретной задачи -- инструменты для работы с полученными от студентов материалами (от xml до видеофайлов). Это могут быть imagemagick, ffmpeg/ffprobe и так далее.

При разработке external grader потребуется организация очереди заданий и, возможно, распределение по свободным серверам (воркерам).

Какие начальные требования?

Python

Темы вводных занятий

Не в порядке изложения:

1. Специфические технологии и используемые инструменты.

3. Доступные ресурсы, организация доступа.

4. Разделение задач.

Критерии оценки

Про работу и оценки почитайте здесь: https://d.pr/143bq

Постарайтесь отнестись к этому с пониманием. Очень часто бодрое начало длится 3-4 недели и потом наступает тишина. Очень хочется, чтобы проекты доводились до запуска, а вы получали опыт успешной разработки и, возможно, работу в этих проектах уже в другом статусе. Но пока это для вас учебная работа, поэтому будем придерживаться описанных по ссылке правил и критериев. Спасибо!

Похожие проекты

Задача разбора XML, описанная выше, в настоящее время выполняется в качестве ВКР, новые участники этого проекта могут присоединиться к разработке -- как проверок, так и библиотек.

Контактная информация

Денис Королев,

https://www.hse.ru/staff/dkorolev (там есть ссылки на соцсети)

+7 903 610 3290 (месенджеры по вкусу)

d.korolev@gmail.com