BC/NW 2019№ 2 (35):12.1
РАЗРАБОТКА АВТОМАТИЗИРОВАННЫХ СИСТЕМ ПРОВЕРКИ ЗНАНИЙ
В.С. Батасова
Автор данной статьи начал заниматься разработкой автоматизированных систем тестирования знаний, чтобы, сначала при преподавании курса «Разработка сетевых приложений», а потом в рамках дипломного проектирования, давать студентам не очень сложные, но интересные и практически важные задачи. Однако оказалось, что лучшие из полученных систем могут с успехом применяться в учебном процессе, когда количество студентов, знания которых должны быть проверены, не очень велико.
Все системы являются динамическими Web-сайтами. Первая система (см. [1]), разработанная студентами под руководством автора и используемая при обучении, была создана на основе ASP-технологии, встроенной в Windows IIS-сервер в операционной среде Windows XP Professional. Последний вариант системы (см. [2]) разработан на основе PHP-технологии совместно с технологиями Ajax и AngularJS. Системы были разработаны и использовались на кафедре Прикладной и бизнес-информатики Инженерного экономического института НИУ МЭИ (коллектив этой кафедры в настоящее время входит в состав кафедры Безопасности и информационных технологий), поэтому в дальнейшем мы будем называть их кафедральными системами.
Существенной особенностью рассматриваемых систем тестирования является запись содержания теста в текстовом файле. При этом применяется схема «по умолчанию», принятая для подготовки файлов тестов в широко используемой в настоящее время системе дистанционного обучения (СДО) «Прометей» (см., например, [3]). Таким образом, один и тот же файл теста можно использовать как в кафедральной системе, так и в «Прометее». Чтобы подчеркнуть, что кафедральная система, если речь идет о тестировании, может являться альтернативой системе «Прометей», ее назвали BINP (But Is Not Prometheus), а усовершенствованную версию системы стали называть BINP+.
Кроме того, следует отметить, что кафедральные системы используют многостраничное тестирование. Это означает, что каждый вопрос вместе с вариантами ответов выводится в отдельное окно браузера. В случае одностраничного тестирования все вопросы теста с вариантами ответов представлены в одном окне браузера. Именно реализация многостраничного тестирования требует от программиста-студента глубоких знаний технологий разработки сетевых приложений: приемов работы с памятью сессии, а также технологий Ajax и AngularJS. Многостраничное тестирование в настоящее время используется в большинстве современных системах тестирования.
Место кафедральной системы тестирования в учебном процессе
Система «Прометей» в настоящее время используется для дистанционного образования во многих университетах, в том числе в НИУ МЭИ. Эта система рассчитана на большие потоки слушателей и позволяет организовать учебный процесс в соответствии с классической моделью университетского образования. «Прометей» представляет собой многофункциональную систему, состоящую из большого числа подсистем. Это, например, подсистемы управления группами, составления расписания, библиотеки учебных материалов, обмена информацией. В «Прометее» существует удобная интерактивная система подготовки тестов и хорошие возможности для проведения тестирования.
СДО «Прометей» допускает также подготовку теста в текстовом редакторе по определенным правилам (формату, схеме). Самая простая схема «по умолчанию» используется в том случае, если необходимо загрузить в систему уже имеющийся тест за минимальный срок. Загружаемый тест должен содержать вопросы только самых распространенных трех типов (поле ввода, один из многих, многие из многих) и не должен содержать рисунков. Подготовленный текстовый файл теста обрабатывается программой-конвертором и затем загружается в «Прометей».
Для проведения тестирования студенческой группы в СДО «Прометей» преподавателю, кроме подготовки тестов, требуется заранее подать заявку на тестирование, собрать адреса электронной почты студентов и передать их в «Прометей» для создания учетных записей студентов.
В некоторых случаях проведение тестирования в СДО «Прометей» затруднительно. Например, может отсутствовать учетная запись студента в системе «Прометей» (из-за отставания студента от графика учебного процесса), или может отсутствовать надежное и быстрое подключение к сети Интернет. Кроме того, проведение тестирования в среде «Прометей» требует и от преподавателя умения работать в этой среде и предварительного оформления учетной карточки преподавателя. Освоение среды «Прометей», в свою очередь, требует достаточной подготовки преподавателя. Например, в 2015 г. в НИУ «МЭИ» с этой целью организовывались краткосрочные курсы объемом 24 часа.
Если организация тестирования в СДО «Прометей» невозможна, то хорошим выходом из затруднительного положения является применение простой, предназначенной только для проверки знаний, кафедральной системой. Основными достоинствами кафедральной системы проверки знаний является ее простота и доступность, которые достигаются за счет ограниченности функционала по сравнению с большими широко распространенными системами обучения.
Если у преподавателя уже имеется тест, набранный в текстовом редакторе, то для приведения его в соответствие со схемой «по умолчанию» потребуется минимальное время (для теста из 30 вопросов не более 0,5 часа).
Для системы BINP+ файл теста должен иметь расширение .txt и имя, совпадающее с названием теста. Подготовленный тест помещается в папку «Тесты» системы BINP+, в подпапку, именованную названием студенческой группы. После этого система BINP+ готова к проверке знаний студентов по этому тесту.
Функциональная схема системы BINP+ представлена на рис. 1.
Прямоугольными блоками на рисунке показаны модули системы; причем прямоугольники с одинарными утолщенными рамками — это интерактивные страницы, через которые пользователь, проходящий тестирование, общается с системой. Блоки с двойными боковыми сторонами представляют собой программные файлы, содержащие скрипты на языке PHP или JavaScript, не осуществляющие вывод в окно браузера. Блоки в виде криволинейных трапеций изображают файлы, с которыми работает система: входные файлы, содержащие тесты в формате «по умолчанию», и выходные файлы, хранящие результаты тестирования в формате .csv. Прямоугольный блок с закругленными углами соответствует файлу, в котором хранится определение класса, содержащего данные и методы для преобразования теста из текстового файла в массив вопросов. Стрелки, нарисованные тонкими сплошными линиями, означают включение этого файла в другие модули. Утолщенные сплошные стрелки, показывают переход от одного модуля системы к другому.
Данные пользователя, обрабатываемые различными модулями системы на протяжения сеанса тестирования, запоминаются в памяти сессии для дальнейшего использования во всех модулях системы. К таким данным относятся, например, фамилия, имя, группа студента, название теста, количество вопросов теста, массив вопросов теста, максимальное время прохождения теста, результаты и протокол тестирования.
Пунктирные стрелки на рисунке показывают передачу данных между модулями и памятью сессии или между модулями и файлами данных.
Работа с системой начинается со страницы login.php, на которой вводятся сведения о студенте, проходящем тестирование. Введенные данные передаются на сервер в модуль reg.php, который запоминает их в памяти сессии и осуществляет переход к странице выбора теста test.php. Предлагается выбрать тест из списка тестов, предназначенных для студенческой группы (то есть хранящихся в папке группы). Таким образом, распределение тестов по папкам студенческих групп обеспечивает доступ студента только к тестам, соответствующим программе обучения. Название выбранного пользователем на этой странице теста передается на сервер в модуль reg_test.php.
В модуле reg_test.php осуществляется переписывание теста из файла в массив вопросов, причем вопросы теста в пределах одной секции (темы) перемешиваются в случайном порядке. Этот массив, количество элементов в нем и название теста запоминаются в памяти сессии. Модуль reg_test.php использует класс обработки теста, определение которого хранится в модуле Questions.php. Модуль reg_test.php передает управление странице start.php.
Страница start.php выводит сведения о выбранном тесте. Нажатие кнопки «Начать тестирование» приводит к переходу на страницу basetest.php и появлению на экране первого вопроса теста.
Страница basetest.php, взаимодействуя с модулем base.js, обеспечивает последовательный вывод вопросов теста в окно браузера и обработку ответов пользователя. Контроллер, хранящийся в модуле base.js, в соответствии с технологией AngularJS, описывает логику обработки данных тестирования: определяется тип вопроса («многие из многих», «один из многих», «поле ввода»), и для каждого типа описывается алгоритм обработки. На вход модуля base.js массив вопросов теста поступает с помощью сервиса $http технологии AngularJS, предназначенного для обмена данными с Web-сервером посредством Ajax-запроса. Серверный модуль get-sess-data.php подготавливает массив вопросов для сервиса $http: берет этот массив из памяти сессии и преобразует его в формат JSON.
Результаты прохождения теста передаются с помощью сервиса $http из модуля base.js в серверный модуль save_res.php; последний модуль сохраняет результаты тестирования в файле с расширением .csv. Имя файла состоит из номера группы, фамилии и имени студента и названия теста.
Модуль save_res.php передает управление модулю results.php, который выводит в окно браузера название теста, фамилию, имя и группу студента, количество вопросов, на которые студент дал правильный ответ, общее количество вопросов и оценку за выполнение теста. Кроме того, эта страница дает пользователю возможность инициализировать повторное прохождение теста. Количество предыдущих попыток также выводится в это окно.
· Тесты готовятся в виде текстовых файлов, размеченных по формату «по умолчанию» СДО «Прометей».
· Файл теста должен быть помещен в подпапку студенческой группы папки «Тесты» системы.
· Файл теста должен иметь расширение .txt и имя, совпадающее с названием теста. Именно это имя (без расширения) будет использовано при общении пользователя с системой.
· Предусмотрен выбор одного из нескольких тестов, предназначенных для данной группы в соответствии с учебной программой.
· Система обеспечивает ввод и сохранение идентификационных данных пользователя.
· Система осуществляет многостраничное тестирование, то есть выводит каждый вопрос в отдельное (и единственно доступное в каждый момент времени) окно системы. Пока студент не ответит на текущий вопрос, он не может перейти к следующему. Возврат к вопросам, пройденным ранее, не предусмотрен.
· Система обеспечивает случайный порядок вывода вопросов на экран, перемешивая случайным образом вопросы каждого тематического раздела.
· Результаты тестирования сразу после завершения тестирования выводятся в окно браузера.
· Протокол тестирования сохраняется в файле расширением .csv. Имя файла содержит название группы, фамилию и имя студента, название теста. Этот файл в дальнейшем может быть проанализирован с помощью табличного процессора Microsoft Excel.
· Система занимает весьма малый объем памяти ─ приблизительно 500 КБ, включая файлы библиотек angular.min.js и bootstrap.min.css и не учитывая файлы тестов и результатов тестирования.
· Система проста в установке, освоении и использовании.
· Система предназначена для использования в том случае, когда требуется провести тестирование для небольшого числа студентов в кратчайшие сроки с минимальными затратами труда. Никакие другие задачи, кроме тестирования, система не решает.
1. Батасова В.С., Назарова М.А. О простой системе проверки знаний студентов. Труды Международной научно-методической конференции «Информатизация инженерного образования» – ИНФОРИНО-2014 (Москва, 15-16 апреля 2014 г.). М.: Издательский дом МЭИ, 2014. - с.25-26.
2. Батасова В.С., Кочнева М.Д. Кафедральная система BINP+ автоматизированной проверки знаний. Труды Международной научно-методической конференции «Информатизация инженерного образования» – ИНФОРИНО-2018 (Москва, 23-26 октября 2018 г.). М.: Издательство МЭИ, 2018. - с.57-60.
3. Общее описание Системы дистанционного обучения «Прометей». – М., 2012. - 58 c.