Система автоматической проверки решений задач по программированию, использующая сетевые технологии

М.Л. Цымблер, М.М. Арсламбеков
Челябинский государственный университет
mzym@csu.ac.ru, mars@csu.ac.ru

При проведении в ВУЗе практических занятий по программированию актуальной является проблема автоматизации проверки решений задач. Просмотр исходных текстов решений студентов - достаточно трудоемкая процедура, которая не всегда позволяет найти логические ошибки в программе и не всегда обеспечивает объективность проверки.

На кафедре математического обеспечения ЭВМ Челябинского госуниверситета авторами разработана система автоматической проверки решений задач по программированию. Система использует подход, применяемый при проведении соревнований по программированию среди студентов [1].

Задачи, которые преподаватель предлагает студентам, должны быть составлены таким образом, что входные данные нужно считывать из текстового файла input.txt, а выходные - записывать в текстовый файл output.txt. Каждая задача должна иметь эталонный набор файлов input.txt и соответствующих им output.txt, который неизвестен студентам. Решением задачи является текстовый файл с программой на языке Си или Паскаль. Решение задачи засчитывается как правильное, если при его проверке на эталонных входных данных ответы в точности совпали с эталонными выходными данными. Один из плюсов подобного подхода - выработка у студента навыков тестирования программ: он вынуждается придумывать свои тестовые наборы, чтобы более качественно протестировать свое решение до проверки на эталонных наборах данных.

Система функционирует в локальной вычислительной сети Novell Netware для MS-DOS и использует технологию клиент-сервер: студенты отправляют решения с рабочих станций сети на сервер проверяющей системы, где осуществляется проверка решения, после чего результат проверки отправляется обратно на рабочую станцию студента. Основными функциями системы являются: автоматизированная отправка решений по сети, их проверка (компиляция, запуск, сравнение с эталонными выходными данными) и отсылка результата проверки, мониторинг процесса проверки и подведение итогов.

Кроме того, для каждого теста эталонного набора преподаватель может дать комментарий о том, что именно проверяется в этом тестовом случае. Такой комментарий будет виден студенту при просмотре результата проверки, что существенно облегчает ему поиск логических ошибок в программе, которая не была зачтена проверяющей системой.

Описанная система проверки решений задач по программированию позволяет автоматизировать этот процесс и снизить труд преподавателя по просмотру исходных текстов решений задач. Система обеспечивает независимость и объективность проверки. Система предоставляет преподавателю и студентам удобные средства просмотра статистики сдачи решений. Система стимулирует у студента выработку навыков тестирования программ.

Данная система используется при проведении вычислительной практики. В настоящее время разрабатывается Internet/intranet-версия описанной системы, которая позволит проверять решения задач, отправленные по электронной почте и с помощью WWW.

Литература

1. Васильев В.Н, Парфенов В.Г Командный чемпионат мира по программированию 1998-99 г.г. СПб.: Изд-во СПбГИТМО, 1998.