Инструкции и памятки по проверке работ
Задание 24
1. При проверке правильности выполнения пунктов задания, связанных с указанием входных и выходных данных , т.е. ответов на вопросы «Что выведет программа программа?», «Для какого числа программа работает верно?», «Для какого числа программа работает неверно?», следует учитывать, что в задании не требуется каких-либо обоснований ответов на эти вопросы.
2. При проверке заданий, для которых критериями предусмотрено снижение оценки за указание верной строки в качестве строки с ошибкой нужно подсчитать количество таких строк.
Задание 25
1. Определите, на каком языке записан алгоритм, и при необходимости наведите справки о синтаксисе избранного экзаменуемым языка программирования.
2. Сравните описание алгоритма с имеющимися образцами. В случае совпадения – оцените в соответствии с рекомендациями.
3. Если описание алгоритма не совпадает с образцами, а ошибки в описании алгоритма с первого взгляда не видны, осуществите формальное исполнение алгоритма с тестовыми примерами исходных данных. Длину тестового массива следует сократить до 4–6 элементов. При тестах необходимо особенно тщательно проверять «критические» случаи, например, когда элементы массива одинаковы или изначально упорядочены. Оцените правильность полученных результатов.
4. В случае алгоритма, представленного на русском языке или в виде блок-схемы, необходимо оценить возможность выполнения этого алгоритма человеком и уровень детализации алгоритма (должны выполняться требования дискретности, детерминированности и результативности).
5. При оценке алгоритма отметьте все ошибки, упомянутые в критериях оценивания. В случае, если таких ошибок более двух, сразу снижайте оценку до 0 баллов.
6. Не допускайте произвольного ужесточения критериев оценивания. Не вводите дополнительных ограничений. Не оценивайте синтаксические ошибки, «стиль» программирования, аккуратность записи, наличие комментариев, отступов и прочие важные, но данным заданием не проверяемые вещи.
7. Не забывайте, что эффективность алгоритмов в данной задаче не оценивается, поэтому не следует снижать оценку за решение, в котором используется два или более просмотров массива.
Задание 26
1. Сравните последовательно ответы экзаменуемого на вопросы 1a), 1б), 2 и 3 с эталонными.
2. Проверьте наличие и корректность обоснования решений. Стратегия правильного решения в работе экзаменуемого может быть представлена в варианте, отличном от «образцового», но основные положения должны совпадать с предложенными. Графическое оформление дерева игры также может быть различным. Обратите внимание, что для выигрывающего игрока могут быть рассмотрены только выигрышные ходы (стратегия), для проигрывающего – должны быть рассмотрены все варианты его ответов.
Задание 27
1. Определите язык программирования, на котором написана программа. Программы, написанные на языках программирования, отличных от Бейсика и Паскаля тоже должны быть оценены. Это же относится и к современным версиям языков Паскаль (Дельфи) и Бейсик (Вижуал-Бейсик). При необходимости эксперт может воспользоваться справочной литературой.
2. Подсчитайте число синтаксических ошибок в данной программе. Систематически встречающаюся ошибка считается за одну. Так, например, если вместо круглых скобок ученик в записи условий использовал везде квадратные, то это считается за одну ошибку.
3. Рассмотрите реализацию каждой части алгоритма. Определите количество алгоритмических ошибок и количество ошибок в реализации алгоритмов.
4. Если ошибок мало и программа оценивается из 3–4 баллов, то оцените эффективность предложенного решения.
Описание ситуаций сложных для оценивания
Задание 24
Ситуация | Пояснение |
Учащийся привел верные примеры входных данных, когда программа работает правильно (неправильно), но не обосновал свой ответ. | Поскольку в задании обоснования не требовалось, за его отсутствие оценка не снижается. |
Учащийся привел верные примеры входных данных, когда программа работает правильно (неправильно), обосновал свой ответ, но допустил ошибки в обосновании. | Оценка не снижается. |
Доработка программы предложена верно, но в виде фраз на естественном языке, а не на языке программирования. | Если описание содержит чёткие и недвусмысленные указания на необходимые исправления, такое описание следует рассматривать наравне с написанием исправленной строки. |
Задание 25
Основная сложность при оценивании этого задания состоит в том, что задание не устанавливает четко, каким образом алгоритм обработки массива может быть записан. Разрешение использовать естественный язык автоматически приводит к употреблению абитуриентами неточных и расплывчатых формулировок, оборотов «аналогично ищем максимальный элемент», «производим подсчет этих чисел и выводим результат» и т. д. При оценке алгоритмов, записанных на естественном языке, основным критерием должна быть возможность их формального исполнения, то есть описание должно быть максимально приближено к записи команд, соответствующих основным операторам языков программирования: должно быть указано, в какой последовательности выполняются инструкции, каково условие завершения цикла и т. д. При этом, например, фраза «Для каждого элемента массива мы выполняем сравнение его с переменной…» может рассматриваться как вполне приемлемое описание цикла с параметром.
При рассмотрении записей алгоритмов на естественном языке следует очень внимательно проследить, как абитуриент описывает операцию присваивания. Наряду с формулой «Присваиваем переменной m значение очередного элемента массива» может употребляться и конструкция «Присваиваем значение очередного элемента массива переменной m» (часто употребляется конструкция «записываем в …»). Видимо, не стоит снижать оценку за некоторую нечеткость терминологии, если из описания алгоритма видно, что абитуриент ясно представляет себе его выполнение. Если же алгоритм не может быть формально исполнен без каких-то особых разъяснений (формально можно описать это как вызов процедуры или вспомогательного алгоритма), то такой алгоритм должен быть оценен нулем баллов. Пример такого описания: «Сначала находим максимальное значение элементов массива, а затем…». Иногда экзаменуемые пытаются отделаться только общими указаниями, что может быть оценено только нулем баллов.. Например, фраза «Находим максимальные элементы массива и подсчитываем их число» должна быть оценена как недостаточная для формального исполнения в 0 баллов.
Также в 0 баллов следует оценивать применение в программах на языке программирования стандартных функций из библиотек (например, сортировка массива по возрастанию): задание проверяет не знание названий стандартных функций, а знание алгоритмов.
Формулировка задания не предполагает возможности записи алгоритма в виде блок-схемы, но на практике участники иногда рисуют блок-схему алгоритма вместо его описания на формальном или естественном языке. Блок-схемы должны оцениваться по тем же критериям, что и другие формы записи алгоритма. При этом оценка за синтаксические ошибки в блок-схемах (например, запись условия ветвления в блоке-прямоугольнике вместо ромба) не снижается.
Еще одной сложностью при проверке этого задания является разнообразие языков программирования, на которых могут записываться решения: от классического Бейсика с метками и оператором GOTO до C++, PHP и Perl. Это обстоятельство не должно смущать, так как простота формулировки задания предполагает и простую его реализацию на языке программирования, использование небольшого набора базовых операторов, достаточно инвариантных. Задачей экзаменатора при анализе решениязаданияне является проверка знания экзаменуемым синтаксиса языка, а только знания им алгоритмов и умения записать их с определенной степенью формализации.