Создание типового обработчика для автоматической проверки графических заданий
Теоретический шаг на платформе Stepik.org в уроке тестирования. Использование автоматической проверки заданий для получения практического опыта, увеличения аудитории, получения быстрой обратной связи для студентов, оптимизации времени преподавателей.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 14.09.2018 |
Размер файла | 2,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Аннотация
В данной работе разбирается создание типового обработчика для автоматической проверки графических заданий. Проект содержит разделение программы на уровни и подуровни проверки и их реализацию в нескольких функциях на языке программирования Python; разработку языка описания заданий; создание и тестирование примеров заданий на платформе Stepik.org; использование xml-библиотеки; исполнение программы в двух видах использования.
Annotation
In this paper, we are going to create a generic handler for automatically checking graphic tasks. The project contains the division of the program into levels and sublevels of verification and their implementation in several functions in the Python programming language; development of a task description language; creation and testing of sample tasks on the Stepik.org platform; using the xml library; execution of the program in two uses.
Оглавление
Введение
1. Описание предметной области, обзор аналогов
2. Постановка задачи
3. Классификация уровней проверки заданий
4. Методы и алгоритмы проверки заданий
4.1 Функция solve()
4.2 Функция check(reply)
4.3 Функция check_file(reply)
4.4 Функция check_arrow(root)
4.5 Функция check_name_arrow(root)
4.6 Функция check_min_el(root)
4.7 Функция check_give_and_find(root)
4.8 Функция check_exception(root, a)
4.9 Функция check_video_audio(root, a)
4.10 Функция check_v_a_signal(root, a)
5. Язык описания заданий
6. Верификация программ проверки и тестирование
7. External grader
8. Инструкция для разработчиков курсов
8.1 Текстовая задача
8.2 External grader
Заключение
Список литературы
Приложение 1 Теоретический шаг на платформе Stepik.org в уроке тестирования
Приложение 2 Решения студента при тестировании задач
Введение
В настоящее время преподаватели, университеты и компании проводят, записывают и сохраняют свои занятия, лекции, курсы онлайн, что позволяет студентами, сотрудниками и другими заинтересованными лицами в любое удобное для них время изучить предоставленный материал. Самой актуальной стороной данного образования является возможность использования автоматической проверки различных заданий для получения разнообразного практического опыта, увеличения аудитории, получения быстрой обратной связи для студентов, оптимизации рабочего времени для преподавателей.
В 2008 году вводится термин массового открытого онлайн-курса (далее - МООК), однако по-настоящему популярными такие курсы становятся только в 2012 году [1] и все же их дальнейший рост довольно внушителен (рис. 1) [2]. Это направление имеет достаточно много преимуществ: получение квалификационных сертификатов, распределения временной учебной нагрузки, вероятность обучения на любом языке - но и минусы тоже ощутимы: малая доступность преподавателя, различия в уровне подготовки, мошенничество при решении заданий [1]. На рисунке 2 можно увидеть сравнение нескольких сервисов МООК. Русскоязычная образовательная платформа Stepik.org начала свою работу в 2013 году и на данный момент имеет 520 онлайн-курсов [3] по различным направлениям обучения. Сайт дает возможность создания различных задач с автоматической проверкой: тестовых, письменных, программируемых, численных и со свободными ответами [4]. Конечно, наибольший интерес и пользую представляют письменные, программируемые и графические задания.
Графический бесплатный онлайн-редактор Draw.io предназначен для создания блок-схем, диаграмм, моделей, графиков. Сервис позволяет сохранять документы в различных форматах: PNG, JPEG, SVG, PDF, VSDX (beta), HTML, XML, URL-адрес. Вторым достоинством редактора является возможность самостоятельного создания новой библиотеки или подключения уже созданной.
Рис. 1. Рост численности МООК [2]
Рис. 2. Сравнение МООК [5]
Данный проект направлен на конструирование типового обработчика для автоматической проверки оригинальных практических графических заданий на платформе Stepik.org с использованием сервиса Draw.io для улучшения и внесения разнообразия в предлагаемый список задач.
1. Описание предметной области, обзор аналогов
За последние 20 лет появилось и развилось довольно много приложений, систем и программ для выполнения построения и решения графических заданий, которые кроме того позволяют совершать автоматический контроль, моделирование и проверку изделий.
SolidWorks
Программа SolidWorks начала разрабатываться в 1993 году и продаваться с 1995, является приложением для создания компонентов различной степенью сложности [8]. Кроме конструкторской части инструмента, несомненным плюсом можно считать возможность инженерного анализа (прочность, статический анализ напряжений (рис. 3), тепловой расчет и т.д.). Именно при помощи него программа позволяет автоматически проверить возможности изделия и их соответствие техническим требованиям. К сожалению, инструмент работает только в среде Microsoft Windows и имеет достаточно сложный интерфейс для простого пользователя.
Рис. 3. Статический анализ напряжений в среде SolidWorks [9]
MS Excel и Mathcad
Множество математических задач рационально решать при помощи программ MS Excel и Mathcad. “Mathcad - это инженерное математическое программное обеспечение, которое позволяет выполнять, анализировать важнейшие инженерные расчеты и обмениваться ими.” [10] MS Excel одна из программ пакета Microsoft Office, предназначена для работы с электронными таблицами - анализ, вычисление, отображение, сортировка массивов различных типов данных. Используя именно эти две программы, Юсупова М. И. рассказывает о графическом методе решения задач линейного программирования (ЗЛП) в своей курсовой работе [11]. Каждая задача разбивается на подзадачи или для ее решения составляется математическая модель. Получившийся метод формируется в лабораторную работу, где расписаны этапы решения ЗЛП, полагаясь на них студент должен освоить навыки работы в средах Mathcad и MS Excel и в ответе предоставить преподавателю чертеж, который является графическим решением поставленной задачи (рис. 4).
Рис. 4. Графический метод решения ЗЛП [11]
AutoCAD
Популярным программным обеспечением (ПО) для автоматизированного 2D и 3D проектирования является AutoCAD. Система была разработана компанией Autodesk и начала выпускаться с 1982 года, имеет адаптацию на 18 языках [13], а также работает на настольных ПК, мобильных устройствах и в облаке [14]. Под систему AutoCAD уже придумано несколько различных методов для автоматической проверки заданий. Проверка заданий по начертательной геометрии, которая разбирается в работе Карабчевского В. В. (рис. 5), методика вопрос-ответ по фигурам из пособия Доржиева Ц. Ц. и коллоквиум для проверки трехмерного моделирования в труде Хейфеца А. Л. основаны на использовании AutoCAD и языке программирования AutoLISP, на котором и пишется программа для автоматической верификации [12]. AutoLISP позволяет писать функции и макропрограммы на мощном языке высокого уровня [7].
Рис. 5. Решение задачи по начертательной геометрии [12]
DipTrace
ПО DipTrace - это система автоматизированного проектирования печатных плат. Приложение имеет простой пользовательский интерфейс, большую стандартную библиотеку компонентов, возможности различного импорта и экспорта, мгновенное создание 3D модели, ручную и автоматическую трассировку (рис. 6) и, на данный момент, установку под системы Windows и Mac OS X. При всем при том, одним из главных недостатков DipTrace считается отсутствие компонентов, которые соответствуют требованиям ГОСТа.
Рис. 6. Автоматическая трассировка платы
Все эти программы применяются как для разработки, расчета или улучшении технических объектов и моделей, так и для обучения и создания новых методов автоматизации некоторых задач.
2. Постановка задачи
Поставлена задача разработки типового обработчика для автоматической проверки заданий с графическим решением для МООК. Для решении задачи будут использоваться сервисы Draw.io и Stepik.org, xml-файлы и язык программирования Python.
Продукт разрабатывается для студентов и преподавателей, направлен на использование в учебных целях. Студент должен иметь расширенную обратную связь при прохождении онлайн курса (указание ошибок, более подробное объяснение материала), а преподаватель должен получить значительную оптимизацию рабочего времени и упрощенную проверку знаний ученика при том, что задача решается графически и имеет несколько вариантов решения.
Необходимо, чтобы программа состояла из нескольких уровней автоматической проверки - начиная с конструктивных проверок и заканчивая логическими и информационными.
3. Классификация уровней проверки заданий
Программа проверяет присланное студентом решение поставленной задачи в несколько этапов. Вся проверка разделена на шесть уровней (рис. 7), каждый из которых имеет свою сложность, свои условия верификации и дополнительные подуровни.
Рис. 7. Уровни проверки
Уровень №1
На первом уровне проверки присланный студентом файл проверяется на корректность входных данных. Здесь существует несколько подуровней:
1.1 Входной файл не пустой - это самая первая и элементарная проверка данных, присланных студентом.
1.2 Входной файл имеет формат xml - второй этап проверки позволяет убедиться, что язык разметки файла xml, с которым далее будет работать программа.
1.3 Входной файл имеет тег root - данный тег является псевдоклассом, определяющим корневой элемент документа (в языке HTML соответствует элементу <html>) [6].
Уровень №2
Второй уровень проверки уже взаимодействует с кодом в файле. Подуровни:
2.1 Входной файл имеет хотя бы один элемент из предложенной учебной библиотеки. Названия элементов библиотеки, по которым будет происходить поиск, заранее вносятся в код программы.
2.2 Входной файл имеет корректные связи между элементами. Стрелки, которые являются проводами в данных задачах, не "висят" (концы стрелки соединяют два объекта) и имеют верное направление входа/выхода (входы расположены в компонентах слева, а выходы - справа). Проверка должна сразу же отсекать присланные решения, как на приведенном рисунке 8.
Рис. 8. Неверное решение, ошибка на уровне проверки 2.2
Уровень №3
Третий уровень начинают работать с метаданными элементов библиотеки, проверяется физическая совместимость. Подуровни:
3.1 Подпись студентом стрелок, соединяющих элементы, соответствует совместимости (сравнение с внесенными метаданными каждого объекта библиотеки).
Уровень №4
Четвертый уровень также работает с метаданными и проверяет логическую осмысленность подключений. Подуровни:
4.1 Проверка на наличия необходимых подключений к элементам со стороны студента в соответствии с библиотекой этих элементов. Здесь проверяется минимально необходимое для работы объекта количество подключений. Например, для корректной работы объекта SmartView Duo (Monitor set) необходимо, чтобы был подключен хотя бы один из входов SDI.
Уровень №5
На данном этапе происходит более углубленная верификация схемы. Проверка взаимодействует с поставленным условием задачи и смотрит структуру решения. Подуровни:
5.1 В присланном решении использованы точно указанные в задании элементы (студент может использовать разные элементы библиотеки, однако явно указанные в задании объекты должны присутствовать - дано и найти (см. раздел 5. Язык описания заданий)).
5.2 Проверка на отсутствие/присутствие элементов, которые прописаны преподавателем, как ограничения в условиях задачи (исключения/ограничения между - и > (см. раздел 5. Язык описания заданий)).
5.3 Подсчет количества входных и выходных сигналов задания и проверка, есть ли в решении необходимые элементы, если количество различно (микшер, матрица).
5.4 Проверка, что видео и аудио сигналы дошли от входных до выходных устройств.
Уровень №6
Шестой уровень позволяет расставлять приоритеты в задании (например, сборка наиболее дешевой схемы или самой легкой схемы). Данный этап проверки работает с особенностями решений, опирается на детали описания элементов библиотеки и на особенности поставленной учебной задачи.
Подробная реализация каждого уровня проверки рассматривается в разделе “Методы и алгоритмы проверки заданий”.
4. Методы и алгоритмы проверки заданий
Для выполнения графических задач на сервисе Draw.io используется библиотека-конструктор, содержащая 13 элементов (рис. 9, табл. 1). Студент должен выполнить задание, используя предоставленные объекты, после сохранить документ в xml-формате и отправить решение на платформу Stepik.org.
Рис. 9. Элементы библиотеки-конструктора
Соответственно, ответ на поставленную в онлайн курсе задачу приходит в виде xml-файла. Внутри файла имеется несколько основных тегов, по которым происходит поиск данных: в корневом элементе <root> находятся теги <mxCell> и <object>, причем каждый из них может содержать еще свои дополнительные теги (рис. 10). Все стрелки в документе имеют главный тег <mxCell>, тогда как все объекты библиотеки оформляются контейнером <object>.
Рис. 10. Теги присланного студентом xml-файла
Текстовые задачи на платформе stepik.org должны иметь две обязательные функции solve() и check(reply), кроме них для обработчика создано еще восемь функций:
- check_file(reply);
- check_arrow(root);
- check_name_arrow(root);
- check_min_el(root);
- check_give_and_find(root);
- check_exception(root, a);
- check_video_audio(root, a);
- check_v_a_signal(root, a).
4.1 Функция solve()
Функция правильного ответа - здесь должен располагаться верный ответ на задачу, т.е. при отправке именно такого файла в программу вернется верный результат - это используется платформой Stepik.org как минимальная проверка корректной работы кода. Чтобы преподавателю не пришлось собирать хотя бы одну правильную схему для поставленного им условия задания в каждой текстовой задаче, внутри данной функции лежит ключ, при вводе которого засчитывается верный ответ. Ключ расположен в программе и виден только преподавателю, его также можно изменить, вставив новый шифр всего в двух местах кода (здесь и в check(reply)). Функция необходима только при создании шага текстовой задачи, при типе шага external grader она отсутствует (см. раздел 7. External grader).
4.2 Функция check(reply)
(reply - текст, присланный студентом)
Первая функция проверки - содержит проверку ключа (см. функцию solve()) и обращается к функции check_file(reply), отправляя туда пришедший файл или текст, а после выводит сообщение ошибки, если такая есть или же переходит к выполнению следующей функции.
4.3 Функция check_file(reply)
(reply - текст, присланный студентом)
Данная функция полностью реализует проверку первого уровня. При успешном завершении, она возвращает весь текст, заключенный в корневой тег <root>. При ошибке студента функция вернет соответствующее информационное сообщение: файл пуст, несоответствие формата или же отсутствие корневого элемента. Это единственная функция в программе, к которой происходит обращение из другой функции, а потом возврат, ко всем остальным функциям происходит переход через return.
4.4 Функция check_arrow(root)
(root - текст, заключенный в корневой тег)
Функция проверки уровня 2.2. Все стрелки описываются внутри тегов <mxCell>, используя метод get(), можно получить значения по ключам. В стрелках, в первую очередь, важны ключи 'source' - хранит 'id' объекта, из которого выходит, и 'target' - хранит 'id' объекта, в который входит. Соответственно, если внутри тега имеет один из указанных ключей, но отсутствует второй, то такая стрелка является 'висячей' (рис. 11).
<mxCell> содержит тег <mxGeometry>, который имеет атрибуты 'x' и 'y', причем параметр 'x' имеется только у выходов объектов библиотеки, таким образом, можно понять направление стрелки (рис. 11). Кроме того, стрелка не может располагаться в одном элементе - выходить и входить в один и тот же объект (рис. 11).
Рис. 11. Проверка уровня 2.2 - код функция check_arrow(root)
4.5 Функция check_name_arrow(root)
(root - текст, заключенный в корневой тег)
Данную функцию можно считать необязательной для проверки, поскольку если на пустоту и формат ответ студента стоит проверять всегда, то подпись стрелок может быть добровольным выполнением. Включать ли данную функцию в строгие условия проверки задачи решает преподаватель. Для каждого разъема элементов библиотеки созданы метаданные: 'connector' и 'cable', с которыми и происходит сравнение. Подпись выглядит так: 'название выходного разъема/название кабеля/название входного разъема', строка разбивается на массив, используя как разделитель символ '/'. При ошибке программа сообщает, что было подписано неверно - разъемы или кабель.
4.6 Функция check_min_el(root)
(root - текст, заключенный в корневой тег)
Для корректной работы каждого элемента библиотеки при реальной сборке требуются некоторые обязательные подключения. Данная функция проверяет имеет ли виртуальный объект в присланной ответе студента минимально необходимое количество подключений - программа осуществляет проверку в соответствии с таблицей 1.
Таблица 1
Описание элементом библиотеки
№ |
Название элемента библиотеки |
Описание элемента |
Минимально необходимое количество подключений |
|
1 |
Audio Monitor |
Обеспечивает контроль аудиодорожки и мониторинг звукового сопровождения на деках, видеосерверах и в прямом эфире. Небольшой размер, динамики со сверхшироким диапазоном частот, усилитель класса A/B, современный интерфейс 6G-SDI, симметричные XLR-разъемы для аналогового и цифрового звука [15]. |
Один на вход - любой из SDI, 2 XLR, 2 RCA. |
|
2 |
ATEM 4K Video Switcher |
Видеомикшер выполняет смену изображения с помощью склейки, смешивания, погружения и вытеснения. Модули первичного кеинга (процесс наложения двух и более изображений или кадров в пределах одной композиции [16]) дают возможность линейного, яркостного, фигурного и цветового совмещения, модули вторичного кеинга - добавления логотипов и бегущей строки [17]. |
На выход хотя бы один из программных выходов (любой из SDI PGM HD, SDI PGM 1, SDI PGM 2) и один из мультивью (любой из SDI Multiview, HDMI Multiview); один на вход - любой из HDMI01, SDI 01, SDI 02, SDI 03, SDI 04, SDI 05, SDI 06, SDI 07, SDI 08, SDI 09, SDI 10. |
|
3 |
Smart VideoHub (Matrix) |
Коммутатор обеспечивает высококачественный обмен данными, одновременное распределение сигналов в различных направлениях, автоматическую синхронизацию сигналов [18]. |
Один на вход и два на выход или наоборот - SDI 01, SDI 02, SDI 03, SDI 04, SDI 05, SDI 06, SDI 07, SDI 08, SDI 09, SDI 10, SDI 11, SDI 12. |
|
4 |
Fiber Converter / Intercom |
Converter дает возможность размещать эфирные камеры на большом удалении от видеомикшера, имеет прочный корпус, является оптоволоконным преобразователем с поддержкой двусторонней связи и индикацией состояния, имеет микрофонные входы и оснащен встроенной емкой батареей [19]. |
Попарно: один на вход и один на выход - любая пара из FC 01///SDI 01, FC 02///SDI 02, FC 03///SDI 03, FC 04///SDI 04. |
|
5 |
SmartView Duo (Monitor set) |
SmartView предоставляет возможность проверки настройки фокуса, отслеживание качества сигналов нескольких камер, деление на программные и предварительно просматриваемые изображений, одновременный вывод видео и индикаторов параметров, выполнение контроля в режиме реального времени [20]. |
Один на вход - любой из SDI 01, SDI 02. |
|
6 |
VHyperDesk Pro (Video Recorder) |
Рекордер позволяют использовать SSD накопители и вести высококачественную запись без компрессии и в сжатых форматах, выполняет функции видеомагнитофона, при заполнении одного носителя записью автоматически продолжает на другом. Доступ ко всем файлам обеспечивается через подключение диска к любому компьютеру [21]. |
На вход либо три компонента (Component Y, Component B-Y, Component R-Y), либо один SDI, либо один HDMI, на выход ничего. |
|
7 |
Audio Compressor/Limiter |
Компрессор уменьшает разницу между самыми тихими и самыми громкими звуками [22]. Лимитер является ограничителем динамического диапазона. Чаще всего применяется для предотвращения перегрузки и подавления кратковременных всплесков уровня (пиков), во время выравнивании динамики сигнала [23]. |
Попарно: один на вход и один на выход - любая пара из XLR-F 1///XLR-M 1, XLR-F 2///XLR-M 2, XLR-F 3///XLR-M 3, XLR-F 4///XLR-M 4, TRS 1///TRS 1, TRS 2///TRS 2, TRS 3///TRS 3, TRS 4///TRS 4. |
|
8 |
Audio Mixer |
Электронное устройство позволяющее сводить звуковые сигналы: суммирование нескольких источников в один или более выходов. Также дает возможность осуществлять маршрутизацию сигналов. Используется при звукозаписи, сведении и концертном звукоусилении [24]. |
Один на вход - любой из Combo 01, Combo 02, Combo 03, Combo 04, XLR 5/6, 2 TRS 5/6, XLR 7/8, 2 TRS 7/8, 2 TRS 09/10, 2 RCA 09/10, 2 TRS 11/12, 2 RCA 11/12 и один на выход - любой из 2 TRS Main, 2 XLR Main. |
|
9 |
Radio Microphone Receiver |
Радиомикрофоном является микрофон, объединенный с радиоканалом передачи звуковой информации [25]. |
Один на выход - любой из XLR-M, TRS. |
|
10 |
Radio Headphone Transmitter |
Радиопередатчик или беспроводные наушники. |
Один на вход - любой из 2 Combo. |
|
11 |
Audio Delay |
Используется для задержки звука. |
Один на вход 2x3 in и один на выход 2x3 out. |
|
12 |
BlackMagick TV Studio Camera |
Прочный, легкий корпус оснащенный 10-дюймовым видоискателем и разъемами для микрофонов с фантомным питанием. Двусторонняя связь, индикатор состояния, SDI-интерфейс, возможность подключения к видеомикшеру при помощи одного кабеля, многокамерное вещание в прямом эфире из любого места [26]. |
Один на выход SDI или Optical. |
|
13 |
TV monitor |
Монитор - возможность вывода (итоговых) аудио и видео сигналов. |
Один на вход - любой из HDMI-1, HDMI-2, HDMI-3. |
4.7 Функция check_give_and_find(root)
(root - текст, заключенный в корневой тег)
Функция проверки дано-найти работает с поставленными учителем условиями задания. В коде программы лежит строка, которая является описанием задачи на разработанном языке (см. раздел 5. Язык описания заданий). Строка имеет три части: дано, ограничения/исключения, найти - и разбивается при помощи метода split(). Функция контролирует, что в ответе студента есть необходимые элементы, которые даются по условию и к которым просят прийти в решении. Сам код делится на два блока: проверка дано и проверка найти; внутри каждый блок делятся еще на три части: поиск объектов, если
- строка начинается с названия элемента;
- первым идет число;
- первым идет квадратная скобка (см. раздел 5. Язык описания заданий).
4.8 Функция check_exception(root, a)
(root - текст, заключенный в корневой тег, а - массив условия задачи: дано, ограничения/исключения, найти)
Данная функция проверяет вторую часть введенной преподавателем строки - исключения/ограничения. Верификация отсутствия/присутствия элементов, которые прописаны, как ограничения в условиях задачи (ограничения между - и >, см. раздел 5. Язык описания заданий).
4.9 Функция check_video_audio(root, a)
(root - текст, заключенный в корневой тег, а - массив условия задачи: дано, ограничения/исключения, найти)
Функция имеет библиотеку входных/выходных устройств с их возможностью отдачи/принятия потоков видео и аудиосигналов (не пропускания!) (табл. 2). По поставленным условиям задания программа подсчитывает количество сигналов на входе и выходе схемы, после происходит сравнение. Если потоки не равны, то стоит проверить есть ли в ответе студента обязательные элементы для их комбинирования (табл. 3).
Таблица 2
Возможности видео/аудио потоков у входных/выходных элементов библиотеки
№ |
Название входного/выходного элемента библиотека |
Видео/аудио потоки |
|
1 |
SmartView Duo (Monitor set) |
Видео/аудио |
|
2 |
VHyperDesk Pro (Video Recorder) |
Видео/аудио |
|
3 |
Audio Monitor |
Видео/аудио |
|
4 |
Radio Microphone Receiver |
Аудио |
|
5 |
Radio Headphone Transmitter |
Аудио |
|
6 |
BlackMagick TV Studio Camera |
Видео |
|
7 |
TV monitor |
Видео/аудио |
Таблица 3
Элементы необходимые для комбинирования сигналов
Сравнение |
Необходимые элементы |
|
Входной видеосигнал больше или равен выходному |
ATEM 4K Video Switcher или Smart VideoHub (Matrix) |
|
Входной видеосигнал меньше выходного |
ATEM 4K Video Switcher |
|
Входной аудиосигнал больше или равен выходному |
ATEM 4K Video Switcher или Audio Mixer |
|
Входной аудиосигнал меньше выходного |
ATEM 4K Video Switcher |
4.10 Функция check_v_a_signal(root, a)
преподаватель студент графический
(root - текст, заключенный в корневой тег, а - массив условия задачи: дано, ограничения/исключения, найти)
Проверка на прохождение видео и аудиосигналов от входных до выходных элементов. Это одна из важнейших функций, поскольку позволяет проверить функциональную корректность построенной схемы. Программа проходится по всем соединениям схемы и составляет матрицу, каждая строка которой имеет вид:
1 |
2 |
3 |
4 |
5 |
|
Из какого элемента выходит стрелка |
Из какого разъема выходит стрелка |
В какой разъем входит стрелка |
В какой элемент входит стрелка |
Прошелся ли цикл по данной строке матрицы |
|
… |
… |
… |
… |
… |
Первый и четвертый столбец могут принимать значения элементов библиотеки (см. табл. 1), второй и третий столбец имею значения входов и выходов элементов - SDI, HDMI, XLR, USB и другие. Видео сигнал пропускают - SDI и HDMI, аудио сигнал - SDI, HDMI, XLR и RCA. Пятому столбцу присваивается аргумент “0”, если цикл проходит по данной строке матрицы, то аргумент меняется на “1”, показывая что данный путь уже был использован сигналом. Например, при такой схеме (рис. 12), матрица будет иметь вид представленный на рисунке 13:
Рис. 12. Пример схемы
Рис. 13. Матрица в программе по схеме с рисунка 12
На рисунке 14 можно увидеть блок схему, по который работает программа проверки, а вернувшись к рисунку 13 можно рассмотреть пример прохождения видеосигнала от камеры до TV монитора, используя блок схему и следуя за красными обозначениями.
Рис. 14. Блок схема программы проверки
Функция совершает проверку двумя частями - сначала прохождение видеосигнала, потом пятый столбец обнуляется и происходит проверка прохождения аудиосигнала.
5. Язык описания заданий
Преподаватель должен ввести в код описание поставленной им задачи. Для более простого и понятного общения преподавателя с написанной программой, был составлен специальный язык описания заданий (табл. 4).
Таблица 4
Обозначения в языке описания заданий
Обозначение |
Пояснение |
|
|A| |
Любой объект |
|
[|A|,|B|,|C|] |
Несколько объектов |
|
|A|->|B| |
Путь из А в В (А - дано, В - найти) |
|
-|А|> |
Внутри стрелки пишутся ограничения/исключения |
|
!|А| |
Без использования объекта А |
|
N*|А| |
N объектов А |
Задания описываются одной строкой, которую можно условно разделить на три части:
1) то, что дано по условию (объекты, от которых будет поступать информация);
2) исключения/ограничения (если преподаватель хочет, чтобы в решении студента обязательно был какой то элемент или же наоборот, запрет на его использование);
3) то, что нужно найти (к каких объектам в результате должен прийти сигнал, где он должен отобразиться/прозвучать или куда записаться).
Путь сигнала обозначается стрелкой (->), внутри которой даются ограничения: дано - ограничение/исключения > найти.
Любой объект библиотеки в задаче обязан быть заключенным в кавычки, а название элемента должно соответствовать представленному описанию (см. табл. 1). Если в одной из трех частей необходимо использовать более одного объекта, то все они перечисляются через запятую и заключаются в квадратные скобки. Запрет на использование какого либо элемента отображается написанием восклицательного знака перед названием самого элемента. Если же в задаче надлежит использовать несколько одинаковых объектов, то до написания имени этого объекта стоит указать их количество и поставить знак умножения. Несколько примеров составлений задач приведены в таблице 5.
Таблица 5
Условные примеры задач
Пример |
Описание |
|
2*|А|->|B| |
Из 2-х данных объектов А путь к объекту В |
|
[|A|,|B|]->|C| |
Из А и В путь к С |
|
|A|->[|B|,2*|C|] |
Из А путь к В и 2-м объектам С |
|
|A|-!|B|>|C| |
Из А без использования В к С |
|
|A|-[|B|, !|C|]>|D| |
Из А с использованием В и без использования С к D |
|
|A|-[!|B|,!|C|]>|D| |
Из А без использования объектов В и С к D |
6. Верификация программ проверки и тестирование
Для тестирования программного кода были составлены пять задач с различными условиями решения (табл. 6). На платформе Stepik.org был создан закрытый урок, внутри которого расположились шесть шагов: теоретический шаг (пояснения, как зайти на сервис draw.io, ссылка на библиотеку, инструкция по сборке и сохранению схемы для студентов) и пять шагов заданий с возможностью ввода текста или прикрепления файла ответа [28]. При отправке любого файла решения на проверку студент всегда должен получать ответ программы - либо об ошибке, либо о правильности решения. Теоретический шаг можно увидеть в приложении 1, а в таблице 7 показаны некоторые примеры работа кода в зависимости от присланного студентом документа.
Таблица 6
Тестовые задачи
№ |
Описание задачи для студента |
Описание задачи для программы |
|
1 |
Собрать установку (схему) для управляемой передачи голоса (аудио сигнала) с микрофона в наушники. |
|Radio Microphone Receiver|->|Radio Headphone Transmitter| |
|
2 |
Собрать установку (схему) для управляемой передачи видео с камеры и аудио сигнала с микрофона на монитор SmartView и наушники. |
[|BlackMagick TV Studio Camera|, |Radio Microphone Receiver|]->[|SmartView Duo (Monitor set)|, |Radio Headphone Transmitter|] |
|
3 |
Собрать установку (схему) для управляемой передачи видео с двух камер на TV монитор, без использования матрицы для управления. |
2*|BlackMagick TV Studio Camera|-!|Smart VideoHub (Matrix)|> |TV monitor| |
|
4 |
Собрать установку (схему) для управляемой передачи видео с камеры и четырех аудиосигналов с микрофонов на TV монитор, компоненты съемки и микшер будут находится в большом удалении друг от друга, используйте оптоволоконный преобразователь. |
[|BlackMagick TV Studio Camera|, 4*|Radio Microphone Receiver|]-|Fiber Converter / Intercom|>|TV monitor| |
|
5 |
Собрать установку (схему) для управляемой передачи видео с двух камер и двух аудиосигналов с микрофонов на TV монитор, используйте микшер для комбинирования сигналов. |
[2*|BlackMagick TV Studio Camera|, 2*|Radio Microphone Receiver|]-|ATEM 4K Video Switcher|>|TV monitor| |
Таблица 7
Примеры работы программы на платформе Stepik.org
Номер задачи (см. табл. 6) |
Решение студента (Приложение 2) |
Уровень ошибки (см. раздел Классификация уровней проверки заданий) |
Ответ программы |
|
1 |
Решение 1.1 |
Уровень 4.1 |
||
1 |
Решение 1.2 |
Верное решение |
||
1 |
Решение 1.3 |
Уровень 5.4 |
||
2 |
Решение 2.1 |
Уровень 5.1 |
||
2 |
Решение 2.2 |
Уровень 5.4 |
||
3 |
Решение 3.1 |
Уровень 5.2 |
||
4 |
Решение 4.1 |
Уровень 2.1 |
||
4 |
Файл формата PNG |
Уровень 1.2 |
||
5 |
Пустой файл |
Уровень 1.1 |
||
5 |
Решение 5.1 |
Уровень 2.2 |
||
5 |
Решение 5.2 |
Уровень 2.2 |
Таким образом, по таблице 7 можно увидеть, что обработчик дает корректные ответы, находя ошибки студентов на различных уровнях проверки.
7. External grader
External grader является внешней программой проверки, отдельной от платформы Stepik.org. Использование такого грейдера позволяет иметь на сервере одну программу сразу для нескольких практических задач, не писать и не вставлять код проверки в каждый шаг урока. Стандарт External grader создан на edX и имеет поддержку на Stepik.org. Автоматическая проверка в этом случае выполняется внешней службой, а платформа выступает хранилищем - очередью решений. Грейдер должен совершать три действия по кругу:
- запрашивать из очереди решение;
- проверять решение;
- отправлять оценку решения обратно на платформу.
Для создания такого шага сначала необходимо обратиться к службе поддержки сайта и получить имя очереди, логин и пароль. Далее следует зайти на рабочий пример от edX - xqueue-watcher [29] - и склонировать его локально (если преподаватель не знаком с GitHub, как склонировать репозиторий локально, то об можно прочитать в статье [30]). Важно - грейдер работает только на Python 2.7. Если нет возможности установить необходимую версию Python, то можно воспользоваться установкой виртуальной среды [31].
Создаем конфигурационный файл грейдера в папке conf.d (итоговый путь к файлу: /xqueue-watcher/conf.d/conf.d/stepic.json), вписываем в поля полученные от службы Stepik данные (рис. 15):
Рис. 15. Конфигурационный файл грейдера stepic.json
После в скопированном файле grader.py изменяем одну строчку кода в соответствии с руководством [27]:
relative_grader_path = grader_config['grader']
на
relative_grader_path = ""
Теперь в методе def grade(...) в том же файле можно писать программный код собственной проверки. Формат вывода должен иметь количество баллов, выставляемое за данное решение задачи, и текст обратного сообщения:
def grade(...): ?correct_result = {
'score': 1,
'msg': "Very good!", }
return correct_result
Для работы созданного типового обработчика в грейдере необходимо вставить все функции проверки, кроме solve() (см. раздел 4. Методы и алгоритмы проверки заданий), в файл grader.py над функцией def grade(...), внутри которой необходимо удалить весь код и вставить переход через return к первой функции проверки check(reply). Также следует изменить все форматы вывода в соответствии с указанным выше шаблоном (весь код файла grader.py по ссылке [34]).
В уроке на платформе создаем шаг External grader и задаем параметры интерфейса (рис. 16):
- queue_name - имя очереди решений;
- is_text_enabled - значение, показывающие будет ли в интерфейсе отображаться текстовой редактор;
- files - описывает один файл, который необходимо прикрепить в интерфейсе (поле может быть пустым);
- grader_payload - произвольный объект, который не изменится на внешнем грейдере (в данной программе в это поле будет вносится условие задания от преподавателя).
Рис. 16. Параметры шага External grader на платформе Stepik.org
В данном случае студент будет иметь интерфейс в виде текстового редактора, а преподаватель должен вписать в объект grader_payload необходимые для задачи параметры: name_arrow - будет ли обязательной проверка подписи стрелок (функция check_name_arrow(root)); min_el - будет ли обязательной проверка минимально необходимых подключений к элементам библиотеки (функция check_min_el(root)) (см. раздел 4. Методы и алгоритмы проверки заданий); file - условие, описание задания (см. раздел 5. Язык описания заданий).
Перед запуском грейдера следует установить все обязательные для программы модули: $ pip install -r requirements/production.txt
Запускает грейдер командой: $ python -m xqueue_watcher -d conf.d/
8. Инструкция для разработчиков курсов
Для создания практического задания представленных задач с автоматической проверкой сначала стоит выбрать тип шага задания на платформе Stepik.org: текстовая задача или external grader. Инструкцию для студентов по работе с графическим онлайн редактором Draw.io и библиотекой обработчика можно увидеть в Приложении 1.
8.1 Текстовая задача
Сконструировать такой шаг довольно просто:
1) выбрать тип шага в предложенном списке (рис. 17);
2) описать задачу для студента, выбрать форму ответа и открыть вкладку “Показать дополнительные настройки” (рис. 18);
3) в появившееся окно для кода (рис. 19) вставить программу типового обработчика, внеся условия задания и расставив два флага для использования или игнорирования проверки двух функций (ссылка на код [33]).
Рис. 17. Тип шага на платформе Stepik.org - Текстовая задача
Рис. 18. Тип ответа для студента и дополнительные настройки
Рис. 19. Окно для программного кода обработчика
8.2 External grader
Для работы с этим типом шага сначала будет необходимо обратиться к службе платформы Stepik.org, после зайти на собственный сервер и загрузить все рабочие файлы:
1) получить имя очереди, логин и пароль от службы поддержки сайта;
2) установить на сервере Python 2.7 или соответствующую виртуальную среду;
3) склонировать репозиторий xqueue-watcher;
4) установить программные модули;
5) создать конфигурационный файл;
6) изменить в файле grader.py одну строчку в соответствии с руководством [24] и вставить код обработчика с отредактированным форматом вывода (весь код файла grader.py по ссылке [34]);
7) создать на платформе шаг External grader, задать параметры интерфейса и условия задачи;
8) запустить работу грейдера.
Сайт Stepik.org имеет руководство по созданию данного типа шага [24], а также видео с конференции Stepicon 2017 с примером [32], но если этого недостаточно - в разделе 7. External grader данной работы есть еще более подробный разбор создания грейдера.
Заключение
В представленном исследовании был показан анализ существующих программных средств для графических заданий и собственная разработка обработчика для автоматической проверки задач с графическим решением. В работе использовались:
- сервис Draw.io - для решений студентов;
- платформа Stepik.org - для уроков преподавателей;
- xml-файлы - для библиотеки элементов и отправки ответов в программу;
- язык программирования Python - для написания кода проверки.
Продукт может применяться преподавателями в учебных целях в МООК и имеет преимущества: студент получает расширенную обратную связь при прохождении онлайн курса; преподаватель приобретает оптимизацию рабочего времени, автоматическую проверку знаний ученика при графических задачах и более практические задания для своего курса.
Программа разделена на шесть уровней автоматической проверки, каждый из которых имеет свои подуровни и их реализацию в определенных функциях. Разработан язык описания заданий, созданы и опубликованы примеры заданий, реализованы пять уровней проверки и использование одной библиотеки. Программный код выполнен в двух видах использования:
- для текстовых задач - код обработчика будет лежать в каждом типе данного шага, плюсы - если таких шагов немного, то не нужно заводить сервер и имеется возможность быстрого исправления программы;
- для external grader - код обработчика находится на сервере, плюсы - одна программа сразу для множества практических задач и для установки параметров условий заданий не нужно лезть в код программы.
Таким образом, обработчик автоматически и корректно проверяет графические задачи с несколькими вариантами правильного решения, имеет определенные плюсы для студентов и преподавателей и может быть использован, как один из двух типов шагов, каждый со своим преимуществом. Дальнейшее развитие проекта будет направлено на реализацию шестого уровня проверки и использование множественных библиотек.
Список литературы
1. Valeriy Platonov MOOK - массовые открытые онлайн курсы: принять нельзя игнорировать. URL: http://www.academia.edu/4611978/MOOK_-_массовые_открытые_онлайн_курсы (дата обращения 18.01.2018).
2. Тимкин С.Л. Эпоха МООК новый этап развития открытого образования // Современные проблемы информатизации образования. Омск: Изд-во ОмГПУ, 2017. Гл. 5.
3. О Stepik. URL: http://welcome.stepik.org/ru/about (дата обращения 05.02.2018).
4. Практические задания. URL: https://support.stepik.org/ru-RU/support/solutions/articles/19000015632-Практические-задания (дата обращения 07.02.2018).
5. Ли Юань, Стефан Пауэлл МООК и открытое образование: Значение для высшего образования. Белая книга. CETIS, март 2013 (перевод на рус. В. Лаптевой).
6. Псевдокласс :root. URL: http://htmlbook.ru/css/root (дата обращения 18.01.2018).
7. Руководство пользователя по АВТОЛИСПу. URL: http://www.codenet.ru/progr/alisp/ (дата обращения 07.02.2018).
8. SolidWorks. URL: https://ru.wikipedia.org/wiki/SolidWorks (дата обращения 08.02.2018).
9. Tutorial - How to create a static stress analysis simulation in Solidworks? URL: https://grabcad.com/tutorials/tutorial-how-to-create-a-static-stress-analysis-simulation-in-solidworks (дата обращения 08.02.2018).
10. Mathcad. URL: http://www.ptc.ru.com/engineering-math-software/mathcad (дата обращения 08.02.2018).
11. Юсупова М.И. Курсовая работа «Графический метод решения задач линейного программирования и его реализация в среде ЭТ MS Excel и математического пакета Mathcad». Донской Государственный Технический Университет (ДГТУ), Ростов-на-Дону, Россия.
12. Бойков А.А. Автоматизация проверки инженерно-графических заданий. Ивановский Государственный Энергетический Университет им. В.И.Ленина, 2016. Т. 1. C. 99-120.
13. AutoCAD. URL: https://ru.wikipedia.org/wiki/AutoCAD (дата обращения 08.02.2018).
14. Обзор AutoCAD. URL: https://www.autodesk.ru/products/autocad/overview (дата обращения 08.02.2018).
15. Audio Monitor. URL: https://www.blackmagicdesign.com/ru/products/blackmagicaudiomonitor/workflow (дата обращения 14.04.2018)
16. Кеинг. URL: http://www.maskedbrothers.ru/articles/keying_basic/ (дата обращения 04.04.2018)
17. ATEM 4K Video Switcher. URL: https://www.blackmagicdesign.com/ru/products/atem/features (дата обращения 04.04.2018)
18. Smart VideoHub (Matrix). URL: https://www.blackmagicdesign.com/ru/products/smartvideohub/workflow (дата обращения 06.04.2018)
19. Fiber Converter / Intercom. URL: https://www.blackmagicdesign.com/ru/products/atemconverters (дата обращения 06.04.2018)
20. SmartView Duo (Monitor set). URL: https://www.blackmagicdesign.com/ru/products/smartview/workflow (дата обращения 06.04.2018)
21. VHyperDesk Pro (Video Recorder). URL: https://www.blackmagicdesign.com/ru/products/hyperdeckstudio (дата обращения 06.04.2018)
22. Компрессор. URL: http://wikisound.org/Компрессор (дата обращения 15.04.2018)
23. Лимитер. URL: http://wikisound.org/Лимитер (дата обращения 15.04.2018)
24. Audio Mixer. URL: https://ru.wikipedia.org/wiki/Микшерный_пульт (дата обращения 15.04.2018)
25. Radio Microphone Receiver. URL: http://cxem.net/radiomic/radiomic62.php (дата обращения 15.04.2018)
26. BlackMagick TV Studio Camera. URL: https://www.blackmagicdesign.com/ru/products/blackmagicstudiocamera (дата обращения 14.04.2018)
27. External grader. URL: https://stepik.org/lesson/50675/step/1?unit=29040 (дата обращения 10.04.2018)
28. Созданный закрытый урок для тестирования задач на платформе Stepik.org. URL: https://stepik.org/invitation/db2bfecd094978a890784e9c9ed7c367bdd7a4e3/
29. Репозиторий xqueue-watcher. URL: https://github.com/edx/xqueue-watcher (дата обращения 08.04.2018)
30. Клонирование репозитория. URL: https://help.github.com/articles/cloning-a-repository/ (дата обращения 08.04.2018)
31. Виртуальная среда. URL: http://docs.python-guide.org/en/latest/dev/virtualenvs/#lower-level-virtualenv (дата обращения 08.04.2018)
32. Stepicon 2017. URL: https://stepik.org/lesson/58101/step/2?unit=35801 (дата обращения 10.04.2018)
33. Программа типового обработчика. URL: https://pastebin.com/qW8ABCci (дата обращения 07.05.2018)
34. Файл grader.py. URL: https://pastebin.com/02vcJw1K (дата обращения 07.05.2018)
Приложение 1
Теоретический шаг на платформе Stepik.org в уроке тестирования (инструкция по работе с онлайн редактором Draw.io и библиотекой для студентов)
Приложение 2
Решения студента при тестировании задач
Решение 1.1
Решение 1.2
Решение 1.3
Решение 2.1
Решение 2.2
Решение 3.1
Решение 4.1
Решение 5.1
Решение 5.2
Размещено на Allbest.ru
...Подобные документы
Основные функции, требования и характеристики системы тестирования. Создание современной модели WEB-сервиса тестирования знаний студентов с помощью средств WEB-разработки. Описание пользовательского интерфейса сайта, этапы прохождения тестовых заданий.
курсовая работа [6,4 M], добавлен 14.07.2012Применение тестовых заданий на уроках информатики. Основные виды тестовых заданий. Подбор тестовых заданий по темам курса информатики. Программные продукты для разработки и создания тестовых заданий. Общие правила оформления компьютерных тестовых заданий.
курсовая работа [2,2 M], добавлен 28.09.2011Теория тестирования. Тест как система заданий и его эффективности. Качество тестовых заданий. Проверка качества тестовых заданий. Матрица результатов. Современный подход к понятию "трудность". Visual Basic for Applications (VBA). Объектные модели.
дипломная работа [198,9 K], добавлен 10.11.2008Изучение этапов автоматизации административных задач. Создание надежного оператора и заданий. Разрешения и владельцы заданий. Расписание выполнения заданий. Использование мастера Create Job Wizard. Настройка учетной прокси-записи. Настройка оповещений.
презентация [734,4 K], добавлен 10.11.2013Создание сетевой системы тестирования с целью автоматизации процесса контроля знаний, оценивания результатов и создания тестовых заданий. Файлы проекта и их назначение. Описание алгоритмов и модулей программы. Работа с сетью, руководство пользователя.
контрольная работа [928,3 K], добавлен 23.12.2012Обзор технологий проектирования компьютерных тестов и анализ существующих систем тестирования. Создание системы автоматизированного тестирования студентов с динамической генерацией тестовых заданий при участии преподавателя, с функцией оценивания.
дипломная работа [3,6 M], добавлен 18.07.2012Организация проверки результатов обучения и оценки знаний, использование систем тестирования, основные требования к ним. Создание современной модели WEB-сервиса тестирования знаний; программная реализация; защита от копирования информации и списывания.
курсовая работа [24,1 K], добавлен 11.05.2012Применение технологий Macromedia Flash для создания шаблонов. Общие принципы работы и описание параметров шаблона "Круглая мозаика". Разработка и создание развивающих мышление заданий в конструкторе. Типология заданий на диагностику и выходной контроль.
дипломная работа [4,9 M], добавлен 17.11.2013Создание программного продукта по теме "Назначение и основные свойства палитры компонентов "Standard"", тестирующего знания студентов, в среде языка программирования Delphi. Особенности методики осуществления контроля знаний и состав тестовых заданий.
курсовая работа [6,1 M], добавлен 17.04.2011Проектирование программы в среде Delphi для тестирования знаний студентов по программированию, с выводом оценки по окончанию тестирования. Разработка экранных форм и алгоритма программы. Описание программных модулей. Алгоритм процедуры BitBtn1Click.
курсовая работа [365,0 K], добавлен 18.05.2013Разработка программы автоматизации процесса проверки знаний учащихся. Использование языка программирования Borland Delphi 7.0, его свойства, компоненты для работы со строками. Создание обучающих тестов на знание лексики и грамматики английского языка.
курсовая работа [521,0 K], добавлен 06.03.2016Анализ графических пользовательских интерфейсов современных систем оптимизации программ. Создание математической модели и алгоритма системы управления СБкЗ_ПП, ее архитектурно-контекстная диаграмма. Техническая документация программного средства.
дипломная работа [1,1 M], добавлен 18.04.2012Формирование требований к подсистеме генерации тестовых заданий в открытой системе дистанционного образования, проектирование подсистемы генерации тестовых заданий в открытой системе дистанционного обучения, реализация пользовательского интерфейса.
курсовая работа [3,3 M], добавлен 28.08.2012Выбор цели тестирования, составление структурно-логической схемы проверяемого учебного материала и тестовых заданий. Конструирование базы заданий, требования к оформлению, составление эталона и апробация тестов. Материалы тестов целевого назначения.
курсовая работа [86,3 K], добавлен 19.07.2011Создание программного продукта, предназначенного для небольшой сети с оптимизацией ее работы на платформе операционной системы Linux; администрирование. Разработка модуля протоколов управления; методика тестирования подсистемы; системотехнический анализ.
дипломная работа [5,4 M], добавлен 27.06.2012Описание предпроектной (разработка технико-экономического обоснования) и проектной (создание технического и рабочего проекта) стадий разработки автоматической системы управления, ввод ее в эксплуатацию путем проведения монтажных и пусконаладочных работ.
реферат [28,0 K], добавлен 25.10.2010Понятие интегрированной логистики и ее главные направления развития на современном этапе. Виды автоматической идентификации, суть кодирования, достоинства и недостатки использование радиоволн (RFID), применение радиосканера, компьютера и радиометки.
контрольная работа [337,7 K], добавлен 27.09.2010Понятие, виды и функции тестов, компьютерное тестирование. Государственные стандарты создания компьютерных тестов и практическая реализация комплекса генерации тестов: СУБД и язык программирования, пользовательский интерфейс, экономическая эффективность.
дипломная работа [2,1 M], добавлен 29.06.2012Концепция обучения с использованием информационных технологий; классификация учебных средств. Создание компьютерных контрольных работ и экзаменов; требования, предъявляемые к обучающим системам. Разработка тестирующих программ и генераторов заданий.
дипломная работа [3,9 M], добавлен 14.10.2012Использование методики управления жизненным циклом разработки программного обеспечения при внедрении реальной информационной системы. Предварительное исследование, проектирование, разработка, применение и обслуживание системы автоматической регистрации.
контрольная работа [30,6 K], добавлен 16.10.2010