| |||
The Emissia.Offline Letters Электронное научное издание (педагогические и психологические науки) | |||
Издается с 7 ноября 1995 г. Учредитель: Российский государственный педагогический университет им. А.И.Герцена, Санкт-Петербург | |||
| |||
----------
Государев Илья Борисович,
Готская Ирина Борисовна,
Муромцев Дмитрий Ильич,
Сивинский Станислав Андреевич, К вопросу об автоматизации проверки практических заданий по веб-программированию в онлайн-курсах
Аннотация Ключевые слова: практические задание, онлайн курсы, автоматизированная проверка, PHPUnit, модульное тестирование, юнит-тестирование, веб-программирование ______
Ilya B. Gosudarev
Irina B. Gotskaya
Dmitry I. Muromtsev
Stanislav A. Sivinskiy On the issue of automating the verification of practical tasks on web programming in online courses
Abstract Keywords: practical exercises, online courses, automated testing, PHPUnit, unit testing, unit testing, web programming ______ Выполнение практических заданий, связанных с разработкой кода, тестированием и отладкой программного продукта, является одним из важнейших компонентов подготовки IT-специалистов и программистов. Большое значение практические задачи имеют в обучении информатике в школе. Масштабный переход к применению дистанционных образовательных технологий и электронного обучения в рамках реализации сетевой и смешанной моделей обучения выявил ряд проблем, в том числе и связанных с проверкой практических заданий по программированию обучающихся [1], [3]. В настоящее время можно выделить две большие группы заданий – это задания с автоматизированной проверкой и задания со свободным ответом. К последним относятся задания для самопроверки, которые могут быть с возможностью и без возможности просмотра правильного ответа; задания для перекрестной (peer-peer) взаимопроверки обучающимися; задания, предполагающие «ручную» проверку внешним экспертом (например, вузовским преподавателем или школьным учителем), наиболее часто включают в онлайн курсы по программированию. Задания для самопроверки эффективно включать в онлайн курс в качестве дополнительных к практическим заданиям с автоматизированной или ручной проверкой. Задания для перекрестной (peer-peer) взаимопроверки, как показал опыт обучения на платформе Coursera [1], требуют привлечения педагогов для проведения дополнительной проверки, так как не всегда обучающиеся готовы правильно оценить выполненные сокурсниками задания. Такие задания наиболее эффективно использовать для организации совместной работы, если платформа предоставляет такие возможности. Задания с «ручной» проверкой, как правило, затратны по времени, так как необходимо не просто оценить выполненное задание, но и подготовить развернутые комментарии по допущенным ошибкам. При этом необходимо учесть время на повторную проверку, а также строгое соблюдение регламента (например, проверка практических заданий с предоставлением оценки и комментариев в течение 12 или 24 часов). Таким образом, для онлайн курсов по программированию существует очевидная проблема автоматизации проверки заданий. При этом наибольшую актуальность приобретает не проблема проверки заданий на естественном языке (эссе, короткий ответ), а проблема автоматизации проверки заданий на формальном языке (проверка исходного текста программы, операндов и команд языка программирования, математических формул и другие). На сегодняшний день существуют решения для автоматизации проверки заданий, реализованных на формальном языке программирования: Яндекс.Контест (contest.yandex.ru), Школа Программиста (acmp.ru), TopCoder(topcoder.com) и т.д. Основным недостатком большинства этих систем является сложность организации взаимосвязи между СДО и учебным тренажером, а также порой невозможность создания авторских задач по программированию [3]. В работе [6] предложена структура построения системы автоматизированной проверки заданий на основе связки Git – Jenkins – Docker – Moodle. К недостаткам данного подхода относится необходимость размещения ответов в системе контроля версий Git. В рамках решения данной проблемы авторы предлагают систему организации автоматизированной проверки заданий на примере курса «Веб-программирование PHP» [4], апробированную в образовательном центре Компьютерного проектирования и дизайна (ОЦКПиД) Университета ИТМО (design.ifmo.ru). Выполнение практического задания включает в себя следующие основные этапы (рис. 1):
Следует отметить, что при повторной попытке отправки исходного кода на проверку этап запуска контейнера не выполняется, так как запущенный первый раз контейнер работает до тех пор, пока обучающийся не выполнит успешно практическое задание или будет бездействовать один час. Применение системы контейнеризации Docker обусловлено также необходимостью организации безопасного исполнения потенциально опасного кода, предложенного, например, обучающимся без влияния на работоспособность самой системы проверки.
Рис. 1. Основные компоненты системы проверки выполнения практических заданий СДО ОЦКПиД работает на основе LMS Moodle (moodle.org). LMS Moodle начиная с версии 2.0 предлагает протокол REST для работы с внешними приложениями и с версии 2.2 поддерживается JSON формат получения данных [2]. Взаимодействие внешней системы тестирования IServer и LMS Moodle базируется на использовании веб-службы «Moodle mobile web service». Список доступных сервисных функций покрывает большинство возникающих задач при работе с СДО. Важно отметить, что для использования сервисных функций веб-службы «Moodle mobile web service» [7] в качестве обязательного get-параметра для корректного исполнения запроса от IServer выступает параметр wstoken. Данный параметр содержит значение ключа (токена) для автоматической авторизации пользователя от которого пришел запрос (например, 4ed876sd87g6d8f7g89fsg6987dfh78d). Токен можно создавать как вручную в разделе «Администрирование – Плагины – Веб-службы – Управление ключами», так и автоматически за счет получения токена через осуществление запроса (рис. 2).
Рис. 2. Получение токена от системы После успешной авторизации, слушателю необходимо ввести в редактор кода свой ответ и подтвердить отправку нажатием на управляющий элемент «Отправить ответ» (рис.3).
Рис. 3. Страница выполнения задания Далее происходит запуск docker-контейнера, содержащего систему проверки ответа, которая основана на применении фреймворка юнит-тестирования PHPUnit (https://phpunit.de/), к достоинствам которого относится наличие инструментов для создания модульных тестов и их организация в иерархические наборы; наличие интерфейса командной строки для взаимодействия с фреймворком; поддержка проведения тестов для участков кода, работающего с базой данных; тестирование исключений и генераторы отчетов (xml, html и текстовый формат). Применение фреймворка PHPUnit напрямую влияет на формулировку практических заданий (рис. 4).
Рис. 4. Формулировка задания по теме «Условные операторы языка программирования PHP» В случае успешного выполнения задания система тестирования произведет вызов внешней функции «mod_assign_save_submission» от веб-службы «Moodle mobile web service» в LMS Moodle и отправит результат тестирования для сохранения в системе ДО ОЦКПиД, таким образом преподавателю всегда будет доступен исходный код присланного ответа обучающегося. После сохранения результата тестирования происходит вызов внешней функции «mod_assign_save_grade», которая позволяет программным способом оценить выполненное практическое задание. К недостаткам системы «IServer» относится сложность разработки практических заданий, так как требует от преподавателя навыков работы с PHPUnit и написание тестов для осуществления тестирования исходного кода обучающихся. Однако этот недостаток окупается экономией времени преподавателя на проверку практических заданий. На базе ОЦ КПиД ИТМО успешно функционирует тестовая система «Проверятор» [5], позволяющая автоматизировать проверку практических заданий, например, по дополнительной образовательной программе «Веб-разработчик. От Middle до Senior» и «Frontend разработчик. От Middle до Senior. Применение автоматизированной проверки практических заданий обучающихся открывает возможности по внедрению технологий Data Mining для анализа и разработки алгоритмов принятия решений с целью формирования индивидуальной образовательной траектории обучающегося. Литература
Исследование выполнено при финансовой поддержке РФФИ в рамках научного проекта № 19-29-14080 «Электронная система адаптивного тестирования образовательных результатов по математике, информатике и предметам естественно-научного цикла на основе когнитивных особенностей обучающихся»)
Рекомендовано к публикации: Literature
| |||
| |||
Copyright (C) 2020, Письма в Эмиссия.Оффлайн (The
Emissia.Offline Letters):
электронный научный журнал ISSN 1997-8588 (online), ISSN 2412-5520 (print-smart), ISSN 2500-2244 (CD-R) Свидетельство о регистрации СМИ Эл № ФС77-33379 (000863) от 02.10.2008 от Федеральной службы по надзору в сфере связи и массовых коммуникаций При перепечатке и цитировании просим ссылаться на " Письма в Эмиссия.Оффлайн ". Эл.почта: emissia@mail.ru Internet: http://www.emissia.org/ Тел.: +7-812-9817711, +7-904-3301873 Адрес редакции: 191186, Санкт-Петербург, наб. р. Мойки, 48, РГПУ им. А.И.Герцена, корп.11, к.24а Издатель: Консультационное бюро доктора Ахаяна [ИП Ахаян А.А.], гос. рег. 306784721900012 от 07.08.2006. |