4. Проверка задач конкурса и критерии оценок

Перекрестная проверка работ

   Все решения,  присылаемые на конкурс проверяются в Универси-
тете, но кроме этого сами  ребята  проверяют  работы друг друга
(по принципу команда из города A проверяет работы команд из го-
родов B, C и D).
   Перекрестная проверка  работ  продолжает  этап обучения. Она
позволяет:
   - Провести практические занятия с детьми по  очень важному и
ответственному этапу  создания программного продукта - его тес-
тированию на  предмет  выявления  ошибок.  Ни одна компьютерная
фирма не выпустит  свой программный продукт в свет без тщатель-
ной и всесторонней проверки. Время, затраченное на тестирование
готового продукта, заранее предусматривается, включается в план
разработки и  по  количеству  человеко-часов  часто сравнимо со
временем создания самого продукта.  Тестируют  программы специ-
альные работники фирмы  и  обязательно не авторы программы. Как
показывает  опыт,  автор программы не способен выявить в  своем
продукте большинство  из  допущенных им ошибок. Объясняется это
очень просто. Работая над своей программой, автор оказывается в
"плену" собственных представлений и  алгоритмов.  Он заставляет
программу работать правильно  и  на это направляет свои усилия.
Человек-тестер, наоборот,  прилагает все усилия для того, чтобы
заставить программу  работать  неверно,  "подсовывает" ей такие
входные  данные,  на которых она начинает "хромать" -  выдавать
неверные результаты. Иными словами, у автора программы и прове-
ряющего разные  психологические установки: у одного - заставить
программу работать, у другого - "сломать" ее.
     - Перекрестная проверка позволит научить детей читать чужую
программу и понимать по ее исходному тексту мысль автора.
     - Проверка работ  позволит  детям  познакомиться с решением
других ребят и сравнить их со своими.

Общие рекомендации по проверке

   1) Тестирование программы. Первой,  обязательной частью кон-
троля, является проверка работоспособности программы на  компь-
ютере. Тестирование не должно сводиться к  одному запуску прог-
раммы с тем  состоянием  среды, которое предложено автором. За-
пускайте программу с различными допустимыми (по условию задачи)
начальными  условиями.  Обязательно   рассмотрите   критические
(крайние) случаи  и  убедитесь,  что  программа обрабатывает их
правильно.
   2) Проверка качества алгоритма.  Нужно внимательно прочитать
объяснение алгоритма,  приведенное автором, и проверить его со-
ответствие программе при помощи запуска "по шагам".
   Если Вы заметите в алгоритме погрешность, которая может при-
вести к неверной работе программы, то придумайте тест (допусти-
мое начальное состояние среды), который обрабатывается програм-
мой неверно. Этот тест послужит доказательством наличия в прог-
рамме ошибки.
   3) Оценка  эффективности  алгоритма и  программы. Оценивайте
эффективность по трем признакам:
   - универсальность алгоритма (алгоритмы,  которые работают не
для всех возможных начальных состояний среды - ошибочные);
   - число строк программы с кодом (чем меньше, тем лучше);
   - время работы  программы (чем меньше движений выполняет ис-
полнитель в среде, тем лучше);
   4) Качество описаний алгоритма и внешний вид (рисунок) прог-
раммы. Изучая  алгоритм  автора,  обратите внимание на качество
описания, доступность  и  точность изложения (грамматика в пос-
леднюю очередь). Рассматривая текст программы, обращайте внима-
ние  на  правильное  форматирование и оформление:  комментарии,
смысловые имена  процедур, верно расставленные отступы и пустые
строки улучшают  внешний  вид  и способствуют лучшему пониманию
программы.

Критерии оценок

1. Если задача не решалась командой,  то  за  нее выставляется 0
   баллов.
2. Если задача имеет несколько вариантов решения, то выставляет-
   ся единственная оценка (балл) по лучшему варианту.
3. Программа не работает: выдается синтаксическая ошибка или со-
   общение "Не  могу". Может это недоразумение? Попробуйте обна-
   ружить и исправить, допущенную автором описку.
   3.1. Описка. Если исправление помогло и программа заработала,
        снизьте оценку по рекомендациям для каждой отдельной за-
        дачи.
   3.2. Неверное решение. Если ошибки серьезные и  связаны с не-
        верным алгоритмом  или неверной программой,  выставляйте
        за задачу 1 балл.
4. Программа работает, но в ней обнаружены грубые ошибки.
   (программа работает  только для того состояния среды, которое
   предложил автор) - выставляйте 2 балла.
5. Программа работает, но  в  ней есть ошибки (обнаружены состо-
   яния среды, в которых программа работает неправильно). Ставь-
   те оценку  в  соответствии  с приведенными рекомендациями для
   каждой отдельной задачи.
6. В тех случаях, когда приведенные рекомендации оставляют неод-
   нозначность, проверяющий принимает  самостоятельное решение по
   выставлению оценки.
