Смекни!
smekni.com

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

- сравнение результатов исполнения программы на каждом тесте с правильным ответом.

При компиляции исходного текста программы, которую участник сдал на проверку, необходимо учитывать следующее.

1) Жюри должно использовать вполне определенные команды компиляции, соответствующие выбранному участником языку программирования. Таблица команд компиляции доводится до сведения всех участников перед началом каждого тура и должна содержаться в Памятке участнику.

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

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

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

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

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

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

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

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

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

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

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

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

1) тесты минимальной размерности (тривиальные тесты);

2) тесты на частные случаи, позволяющие выявить особенности используемых алгоритмов;

3) тесты на точность вещественных вычислений, если исходные данные таковы, что вызывают численную неустойчивость алгоритмов;

4) тесты, выявляющие особенности использования конкретных систем программирования при реализации алгоритмов решения задачи (например, неэффективная реализация потокового ввода-вывода и линейных контейнеров в C++);

5) общие тесты (достаточно случайные тесты, разные по размеру: от простых тестов до сложных);

6) тесты, проверяющие наличие эвристик в алгоритмах;

7) тесты максимальной размерности (тесты с использованием максимальных значений входных переменных, позволяющие оценить эффективность предложенных алгоритмов или их работоспособность при максимальной размерности задачи).

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

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

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

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

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

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