Смекни!
smekni.com

Образования и науки челябинской области площадь. Революции, д. 4, Челябинск, 454113 Тел. (351) 263-67-62, факс (3512) 63-87-05. (стр. 8 из 10)

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

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

В настоящее время во многих субъектах РФ вопрос с автоматизированной проверкой решений участников успешно решается, и специализированные системы проведения соревнований используются достаточно широко. Организаторы школьного этапа, которые только начинают осваивать современные информационные технологии при проведении олимпиад по информатике, могут решать эту проблему одним из следующих способов:

1) Разработать своими силами простейшую программную систему автоматической проверки решений олимпиадных задач по информатике, ориентируясь на материалы предметно-методической комиссии соответствующего этапа.

2) Использовать для проверки решений участников одну из свободно распространяемых программных систем проведения олимпиад по информатике, информацию о которых можно найти либо в Интернете, либо обратившись в региональную предметно-методическую комиссию по информатике.

3) Закупить одну из имеющихся в стране коммерческих программных систем для проведения олимпиад по информатике.

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

Поскольку в функции предметно-методической комиссии по информатике школьного этапа Олимпиады не входит обеспечение школьного этапа программными системами проведения олимпиад по информатике, то единственное, чем она может помочь организаторам школьного этапа в решении вопроса автоматизации проверки решений участников – это предоставить жюри проверяющие программы для каждой задачи, которые могут быть либо интегрированы в большинство уже существующих в стране аналогичных систем, либо использованы в самостоятельно разработанных системах.

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

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

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

1) Каталог «preliminary», содержащий тесты из примеров в условии задачи, предназначенные для предварительной проверки решений участника во время тура. Каждый тест из примера должен содержаться в отдельном файле, входные файлы называются «01», «02» и т.д. Файлы с правильными ответами называются «01.a», «02.a» и т.д. Тесты пронумерованы в том же порядке, в котором они следуют в условии задачи.

2) Каталог «tests», содержащий тесты для окончательной проверки и оценивания решений участников, правильные ответы и программы-генераторы, использовавшиеся для создания тестов. Программы-генераторы приведены исключительно для ознакомления жюри и организаторов школьного или муниципального этапа с методами получения тестов. Их запуск и использование для перегенерации тестов не требуется, так как комплект материалов уже содержит сгенерированные тесты и ответы к ним. Каждый тест должен содержаться в отдельном файле. Входные файлы называются «01», «02» и т.д. Файлы с правильными ответами называются «01.a», «02.a» и т.д. Программы генераторы содержатся в файлах, написанных на различных языках программирования, их компиляция и метод использования обычно описаны в командном файле, например, «doall.cmd», содержащемся в том же каталоге.

3) Исходный текст проверяющей программы для данной задачи «check.dpr».

4) Примеры правильных и неправильных решений. Каждое решение должно находиться в отдельном файле. Этот файл имеет, например, имя, построенное по маске «problem.ext», где «problem» - идентификатор задачи, обычно он совпадает с названием каталога, в котором находятся материалы задачи, «ext» - расширение файла, соответствующее языку программирования, на котором написано решение. Решения, которые являются неправильными или неоптимальными, также имеют суффикс, обычно указывающий на проблемы с этим решением, например «problem_wrong.ext» (неправильное решение), «problem_slow.ext» (медленное решение), «problem_bug.ext» (решение, содержащее некоторую типичную ошибку). Решения предоставляются для ознакомления членов жюри с возможной реализацией правильных и неправильных решений. Их использование для генерирования правильных ответов на тесты не требуется, так как материалы содержат готовые правильные ответы на все тесты.

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

Проверяющая программа для каждой задачи, как правило, представляет собой файл, написанный на определенном языке программирования. Для компиляции проверяющей программы следует использовать соответствующий компилятор. В своей работе проверяющие программы могут использовать подключаемые модули, которые также должны входить в состав материалов, распространяемых предметно-методическими комиссиями соответствующего этапа.

Запуск проверяющей программы может осуществляться следующим образом. В пустой каталог необходимо скопировать проверяющую программу (check.exe), входной файл, ответ для которого следует проверить (input), выходной файл, созданный программой участника (output) и файл с правильным ответом (answer). После этого проверяющая программа запускается с четырьмя параметрами: «check.exe input output answer result». Программа завершает свою работу с одним из трех возможных кодов возврата:

0 – ответ участника является правильным;

1 – ответ участника удовлетворяет формату вывода, но является неправильным, в этом случае участнику отправляется сообщение «Неверный ответ»;

2 – ответ участника не удовлетворяет формату вывода, в этом случае участнику отправляется сообщение «Ошибка формата выходных данных»;

3 – найдена внутренняя ошибка.

Файл «result» после завершения программы будет содержать сформированный проверяющей программой комментарий о причинах, по которым был выдан соответствующий отклик. Этот комментарий не должен сообщаться участникам и служит только для справки членам жюри.

Проверяющая программа check.exe используется как на этапе предварительной проверки, так и на этапе окончательной проверки и оценки решений участников. Отличие заключается в том, что при окончательной проверке при возникновении любой ошибки вместо формирования участнику сообщения, система просто помечает тест как не пройденный, и по результатам проверки участнику начисляются баллы за успешно пройденные тесты в соответствии с системой оценивания, разработанной предметно-методической комиссией соответствующего этапа.

Для задач с открытым входом, то есть, когда решением задачи является набор выходных файлов, проверяющая программа для предварительной и окончательной проверки могут несколько отличаться друг от друга. Для предварительной проверки может использоваться проверяющая программа, например, с именем «checkPreliminary.dpr», работа которой осуществляется следующим образом. В пустой каталог копируются исполняемый файл проверяющей программы (checkPreliminary.exe), входной файл соответствующего теста (input), выходной файл, присланный участником на проверку (output) и файл с правильным ответом (answer). Программа запускается с четырьмя параметрами: «checkPreliminary input output answer result». Программа завершает свою работу с одним из двух возможных кодов возврата: