Письма в

 Эмиссия.Оффлайн

2020

 The Emissia.Offline Letters           Электронное научное издание (педагогические и психологические науки) 

Издается с 7 ноября 1995 г.  Учредитель:  Российский государственный педагогический университет им. А.И.Герцена, Санкт-Петербург

ART  2857

 2020 г., выпуск  №6 (июнь)


Ссылаться на эту работу следует следующим образом:
И.Б.Государев, И.Б.Готская, Д.И.Муромцев, С.А.Сивинский. К вопросу об автоматизации проверки практических заданий по веб-программированию в онлайн-курсах  // Письма в Эмиссия.Оффлайн (The Emissia.Offline Letters): электронный научный журнал. 2020. №6 (июнь). ART 2857. URL: http://emissia.org/offline/2020/2857.htm

----------

Государев Илья Борисович,
кандидат педагогических наук, доцент кафедры компьютерных технологий и электронного обучения,
Российский государственный педагогический университет им. А.И. Герцена , г. Санкт-Петербург; доцент факультета программной инженерии и компьютерной техники, Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, г. Санкт-Петербург
igossoudarev@herzen.spb.ru , goss@itmo.ru

Готская Ирина Борисовна,
доктор педагогических наук, профессор кафедры компьютерных технологий и электронного обучения, Российский государственный педагогический университет им. А.И. Герцена, Санкт-Петербург; профессор кафедры компьютерного проектирования и дизайна, Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, Санкт-Петербург
iringot@mail.ru

Муромцев Дмитрий Ильич,
кандидат технических наук, доцент факультета программной инженерии и компьютерной техники, Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, г. Санкт-Петербург
mouromtsev@itmo.ru

Сивинский Станислав Андреевич,
аспирант факультета программной инженерии и компьютерной техники, Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, Санкт-Петербург
stanislav_sivin@mail.ru

К вопросу об автоматизации проверки практических заданий по веб-программированию в онлайн-курсах 

Аннотация
В статье описан подход к построению системы автоматизированной проверки практических заданий обучающихся по программированию на примере онлайн курса «Веб-программирование PHP». Представлена архитектура построения взаимодействия между системой дистанционного обучения Moodle, системой тестирования IServer и системой контейнеризации docker. Предложенная система автоматизированной проверки успешно апробирована в образовательном центре компьютерного проектирования и дизайна Университета ИТМО.

Ключевые слова: практические задание, онлайн курсы, автоматизированная проверка, PHPUnit, модульное тестирование, юнит-тестирование, веб-программирование

______

Ilya B. Gosudarev
Candidate of Pedagogical Sciences, Associate Professor of the Computer technology and e-learning Departmen, Institute of Computer Science and Technological Education, The Herzen State Pedagogical University of Russia, St. Petersburg; Associate Professor of the Program Engineering and Computer Technics Faculty, Saint-Petersburg National Research University of Information Technologies, Mechanics and Optics, St. Petersburg
igossoudarev@herzen.spb.ru , goss@itmo.ru

Irina B. Gotskaya
Doctor of Pedagogical Sciences, Professor of the Computer technology and e-learning Department, Institute of Computer Science and Technological Education, Al.Herzen State Pedagogical University of Russia, St. Petersburg; Professor of the Program Engineering and Computer Technics Faculty, Saint-Petersburg National Research University of Information Technologies, Mechanics and Optics, St. Petersburg

iringot@mail.ru 

Dmitry I. Muromtsev
Candidate of technical sciences, Associate Professor of the Program Engineering and Computer Technics Faculty, Saint-Petersburg National Research University of Information Technologies, Mechanics and Optics, St. Petersburg
mouromtsev@itmo.ru 

Stanislav A. Sivinskiy
Postgraduate of the Faculty of Software Engineering and Computer Systems, Saint Petersburg National Research University of Information Technologies, Mechanics and Optics, St. Petersburg

stanislav_sivin@mail.ru  

On the issue of automating the verification of practical tasks on web programming in online courses

Abstract
The article describes the approach to building a system for automated verification of practical tasks of students in programming on the example of the online course "PHP Web Programming". The architecture of building the interaction between the Moodle distance learning system, the IServer testing system and the docker containerization system is presented. The proposed automated verification system has been successfully tested in the ITMO University computer center for computer engineering and design.

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] предложена структура построения системы автоматизированной проверки заданий на основе связки GitJenkinsDockerMoodle. К недостаткам данного подхода относится необходимость размещения ответов в системе контроля версий Git

В рамках решения данной проблемы авторы предлагают систему организации автоматизированной проверки заданий на примере курса «Веб-программирование PHP» [4], апробированную в образовательном центре Компьютерного проектирования и дизайна (ОЦКПиД) Университета ИТМО (design.ifmo.ru). Выполнение практического задания включает в себя следующие основные этапы (рис. 1): 

  1. Авторизация в СДО ОЦКПиД.

  2. Выбор и открытие учебного онлайн курса.

  3. Переход и авторизация в учебном тренажере «IServer».

  4. Ввод исходного кода ¾ выполнение практического задания.

  5. Запуск docker-контейнера с системой проверки выполненного практического задания.

  6. Успешное выполнение практического задания: возвращение положительного результата проверки кода в СДО ОЦКПиД (отметка о выполнении задания и сохранение оценки в журнале).

  7. Неверное выполнение практического задания: вывод ошибок на дисплей обучающегося и переход к вводу исходного кода (этап 4).

Следует отметить, что при повторной попытке отправки исходного кода на проверку этап запуска контейнера не выполняется, так как запущенный первый раз контейнер работает до тех пор, пока обучающийся не выполнит успешно практическое задание или будет бездействовать один час. Применение системы контейнеризации 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 для анализа и разработки алгоритмов принятия решений с целью формирования индивидуальной образовательной траектории обучающегося.  

Литература

  1. Готская И.Б., Сивинский С.А. Проблемы и перспективы развития массовых онлайн курсов// Письма в Эмиссия.Оффлайн (The Emissia.Offline Letters): электронный научный журнал. 2017. №8 (декабрь). ART 2550. URL: http://www.emissia.org/offline/2017/2550.htm (дата обращения: 20.05.2020).

  2. Готская И.Б., Сивинский С.А. К проблеме оценки компетенций при реализации дополнительных профессиональных программ с использованием СДО Moodle // Письма в Эмиссия.Оффлайн (The Emissia.Offline Letters): электронный научный журнал. 2018. №6 (июнь). ART 2627. URL: http://www.emissia.org/offline/2018/2627.htm (дата обращения: 20.05.2020).

  3. Латыпова В.А., Методики проверки работ со сложным результатом в условиях смешанного и дистанционного автоматизированного обучения // Интернет-журнал «Науковедение». 2015. Т. 7. № 3. URL: http://naukovedenie.ru/PDF/170TVN315.pdf  [Дата обращения: 28.05.2020].

  4. Специалист в области компьютерной графики и веб-дизайна URL: https://design.ifmo.ru/courses/web_design_review/ (дата обращения: 20.05.2020).

  5. λ-Проверятор URL: https://node-server.online/r (дата обращения 23.05.2020).

  6. Grocevs A., Prokofjeva N. The Capabilities of Automated Functional Testing of Programming Assignments //Procedia - Social and Behavioral Sciences, vol.228, pp. 457-461, 2016.

  7. Web service API functions. URL: https://docs.moodle.org/dev/Web_service_API_functions (дата обращения: 22.05.2020).

Рекомендовано к публикации:
А.А.Ахаян, доктор педагогических еаук, член Редакционной Коллегии

Literature

  1. Gotskaya I.B., Sivinskij S.A. Problemy i perspektivy razvitiya massovyh onlajn kursov// Pis'ma v Emissiya.Offlajn (The Emissia.Offline Letters): elektronnyj nauchnyj zhurnal. 2017. №8 (dekabr'). ART 2550. URL: http://www.emissia.org/offline/2017/2550.htm (data obrashcheniya: 20.05.2020).

  2. Gotskaya I.B., Sivinskij S.A. K probleme ocenki kompetencij pri realizacii dopolnitel'nyh professional'nyh programm s ispol'zovaniem SDO Moodle // Pis'ma v Emissiya.Offlajn (The Emissia.Offline Letters): elektronnyj nauchnyj zhurnal. 2018. №6 (iyun'). ART 2627. URL: http://www.emissia.org/offline/2018/2627.htm (data obrashcheniya: 20.05.2020).

  3. Latypova V.A., Metodiki proverki rabot so slozhnym rezul'tatom v usloviyah smeshannogo i distancionnogo avtomatizirovannogo obucheniya // Internet-zhurnal «Naukovedenie». 2015. T. 7. № 3. URL: http://naukovedenie.ru/PDF/170TVN315.pdf [Data obrashcheniya: 28.05.2020].

  4. Specialist v oblasti komp'yuternoj grafiki i veb-dizajna URL: https://design.ifmo.ru/courses/web_design_review/ (data obrashcheniya: 20.05.2020).

  5. λ-Proveryator URL: https://node-server.online/r (data obrashcheniya 23.05.2020).

  6. Grocevs A., Prokofjeva N. The Capabilities of Automated Functional Testing of Programming Assignments //Procedia - Social and Behavioral Sciences, vol.228, pp. 457-461, 2016.

  7. Web service API functions. URL: https://docs.moodle.org/dev/Web_service_API_functions (data obrashcheniya: 22.05.2020).

 


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.

Рейтинг@Mail.ru

    Rambler's Top100