СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Методическая разработка "Тестирующие системы при изучении программирования"

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Методическая разработка "Тестирующие системы при изучении программирования"»

МУНИЦИПАЛЬНОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ

«ЦЕНТР ДЕТСКОГО ТЕХНИЧЕСКОГО ТВОРЧЕСТВА»

















Методическая разработка

«Тестирующие системы

при изучении программирования»

к дополнительной общеобразовательной

общеразвивающей программе

технической направленности

«Программирование на 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