МУНИЦИПАЛЬНОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ
«ЦЕНТР ДЕТСКОГО ТЕХНИЧЕСКОГО ТВОРЧЕСТВА»
Методическая разработка
«Тестирующие системы
при изучении программирования»
к дополнительной общеобразовательной
общеразвивающей программе
технической направленности
«Программирование на Python»
Возраст детей: 10-17 лет
Автор: Костычев Вадим Александрович
г. Заречный Пензенской области
2024 г.
Использование тестирующих систем в образовательном процессе при изучении языков программирования, в том числе Python, играет важнейшую роль в повышении качества обучения, развитии навыков и мотивации учеников.
Автоматизация проверки кода с помощью тестирующих систем освобождает преподавателей от рутинной работы, давая им больше времени для индивидуальной работы с каждым учеником. Мгновенная обратная связь, которую получают ученики, делает обучение более эффективным, позволяя им сразу увидеть ошибки и исправить их. Тестирующие системы помогают выявить пробелы в знаниях учеников, что позволяет корректировать учебный процесс и подбирать дополнительные материалы.
Написание тестов, в свою очередь, развивает навыки программирования, заставляя учеников писать качественный и корректный код. Процесс создания тестов стимулирует развитие логического мышления, поскольку ученики должны представить все возможные варианты ввода и проверить, как на них будет реагировать их код. Использование тестирующих систем часто требует работы с документацией и поиска необходимой информации, что помогает ученикам освоить необходимые навыки работы с документацией.
Тестирующие системы делают процесс обучения более интересным и интерактивным. Мгновенная обратная связь и возможность сразу увидеть результат своей работы мотивируют учеников на дальнейшее изучение программирования. Использование тестирующих систем позволяет ученикам работать более самостоятельно, развивая их самостоятельность в решении задач.
Тестирующие системы создают более реалистичную среду для обучения программированию, так как в реальной жизни программисты также используют тестирование для проверки качества своего кода. Python обладает богатой экосистемой библиотек тестирования, что делает тестирование кода на Python простым и эффективным. Популярность Python в различных областях делает использование тестирующих систем еще более важным, помогая ученикам подготовиться к реальным задачам программирования.
Таким образом, использование тестирующих систем в образовательном процессе при изучении языков программирования, в том числе Python, является ключевым фактором для повышения качества обучения, развития навыков и улучшения мотивации учеников. Это помогает ученикам получить необходимые знания и навыки для успешной карьеры в области программирования. Всё это вынудило нас с учащимися написать свою тестирующую систему.
MVP тестирующей системы
Для полноценной работы объединений мы с детьми, изучающими python, были вынуждены написать свою тестирующую систему в рамках небольшого проекта. Для этого проекта нам пришлось изучить различные библиотеки python и работу с ними, такими как: unittest, webbrowser, docx, traceback, json, os и других. Часть написания кода была доверена написанию нейронным сетям, однако встраивать отдельные функции приходилось учащимся самостоятельно.
Так как разработка полноценной тестирующей системы довольно длительный и трудозатратный процесс, то разработка и отладка системы не прекращается и по сей день. На данный момент система имеет вид консоли, но уже идет разработка оконного приложения.
На данный момент тестирующая система умеет:
Добавлять тестирующие данные input и output при помощи таблицы docx файла от имени преподавателя в необходимые разделы;
Разделять обучающие разделы при помощи системы папок;
Выдавать задания пользователям при помощи pdf файлов;
Тестировать код учащихся при помощи входных и выходных данных;
При ошибках в решении выдает ожидаемый и полученный результат для сравнения;
При синтаксических ошибках в решении – выдает код ошибки из терминала python.
Сохранять результаты работы для каждого ученика и каждого его выполненного задания. Ученику доступен его личный прогресс, преподавателю доступен прогресс всех учеников, зарегистрированных в приложении.
Вы можете внедрить данную систему в своем образовательном процессе. Однако на данный момент (до доработок mvp) она имеет ряд недостатков. Данная версия приложения достаточно долго грузится при работе с общего диска при организации доступа по локальной сети wi-fi. Это связано с низкой скорость передачи беспроводной сети, а также полной сборкой кода в приложение, включая язык программирования и все библиотеки. Для ускорения процесса возможна сборка приложения без Python и библиотек.
Данная система подразумевает наличие папок в корне приложения:
pdf_tasks – для размещения pdf файлов с заданиями по разделам;
study_materials – для размещения pdf файлов с теорией и тестирующими json файлами;
progress_user – для размещения папок пользователей с их прогрессом по разделам;
local_data – логины и пароли пользователей в зашифрованном виде.
Сборка приложения возможна при помощи терминала python с установленной библиотекой PyInstaller. При этом в каталоге размещается папка dist, в которой вы можете найти .exe файл вашей программы и запустить его.
Код данной программы (не собранная в приложение версия) без тестирующих данных (оставлен пример) можно найти по ссылке или в материалах мультиурока преподавателя под именем Костычев Вадим Александрович: https://disk.yandex.ru/d/9oaNihrBWAuqfQ