Введение
ГЛАВА 1. Соревнования по программированию
1.1. Обзор соревнований по программированию 15
1.1.1. Соревнования по программированию среди студентов 15
1.1.2. Соревнования по информатике и программированию среди школьников 20
1.1.3. Учебно-тренировочные сборы 23
1.1.4. Летние школы 24
1.1.5. Интернет-архивы задач 24
1.2. Сценарии тестирования программных решений 25
1.3. Системы оценки и подведения итогов соревнований по программированию 26
1.3.1. Система подведения итогов студенческого чемпионата мира по программированию 27
1.3.2. Система международной олимпиады школьников по информатике {ЮГ), использовавшаяся до 2009 г 29
1.3.3. Новая система международной олимпиады школьников по информатике (ЮГ) 31
1.3.4. Системы с баллами за задачу, зависящими от времени (Topcoder, Codeforces) 32
1.4. Системы автоматического проведения соревнований по программированию 33
1.5. Задачи, решаемые в диссертационной работе 35
Выводы по главе 1 36
ГЛАВА 2. Методология проведения соревнований по информатике и программированию 37
2.1. Требования к проведению соревнований по программированию .37
2.1.1. Требования к проведению соревнований 37
2.1.2. Требования к системе автоматического управления соревнованиями 39
2.2. Организация очной командной олимпиады школьников по программированию 42
2.2.1. Организационная структура олимпиады 43
2.2.2. Схема проведения заключительного этапа 46
2.2.3. Организация отбора на олимпиаду 47
2.2.4. Принцип формирования комплекта задач 51
2.3. Организация серии интернет-соревнований 52
2.3.1. Требования к серии интернет-соревнований 52
2.3.2. Сравнительный анализ существующих интернет-соревнований 54
2.3.3. Схема цикла интернет-олимпиад 57
2.4. Методология проведения олимпиад по информатике и программированию с использованием автоматической системы управления соревнованиями 62
2.5. Использование соревнований для поиска, отбора и обучения школьников и студентов, одаренных в области информатики и программирования 65
Выводы по главе 2 66
ГЛАВА 3. Формальные методы описания сценариев тестирования программных решений и подведения итогов соревнований 67
3.1. Сценарии тестирования программных решений 67
3.1.1. Левоконтекстные терминальные грамматики 70
3.1.2. Задание сценариев тестирования левоконтекстными терминальными грамматиками 75
3.1.3. Обработка ошибок при выполнении сценариев 77
3.1.4. Реализация выполнения сценария тестирования с использованием стековой машины 80
3.1.5. Алгоритмы анализа контекстно-свободных грамматик с возможностью бесконечных цепочек порождений 83
3.1.6. Верификация свойств сценариев тестирования 91
3.1.7. Пример задания и анализа сценария тестирования 99
3.2. Унифицированный метод обработки результатов и подведения итогов соревнований для различных систем оценки 104
3.2.1. Модель подведения итогов соревнования 104
3.2.2. Реализация различных систем оценки с использованием предлагаемого подхода 105
Выводы по главе 3 110
ГЛАВА 4. Система автоматического управления соревнованиями 112
4.1. Компонентная модель построения системы автоматического управления соревнованиями 114
4.2. Модель данных в системе автоматического управления соревнованиями 122
4.2.1. Описание классов в модели данных 123
4.2.2. Сравнение с другими системами управления соревнованиями по программированию 130
4.3. Работа со сценариями тестирования 134
4.3.1. Реализация работы со сценариями тестирования 134
4.3.2. Сравнение с другими системами управления соревнованиями по программированию 134
4.4. Подведение итогов соревнований 136
4.4.1. Реализация подведения итогов соревнований 136
4.4.2. Сравнение с другими системами управления соревнованиями по программированию 137
5 4.5. Итоговое сравнение с другими системами управления соревнованиями по программированию 141
Выводы по главе 4 147
ГЛАВА 5. Внедрение результатов работы 148
5.1. Проведение олимпиад по информатике и программированию 148
5.1.1. Всероссийская командная олимпиада школьников по информатике и программированию 148
5.1.2. Цикл интернет-олимпиад 150
5.1.3. Индивидуальная олимпиада школьников по информатике и программированию 154
5.1.4. Кубок по программированию Russian Code Сир 155
5.2. Внедрение в учебный процесс 156
5.2.1. Обучение школьников 156
5.2.2. Тестирования абитуриентов 157
5.2.3. Обучение студентов 158
5.2.4. Использование олимпиадного подхода для проверки некоторых научных результатов 161
Выводы по главе 5 163
Заключение 164
Список источников 167


