Примерная программа по олимпиадной информатике В.М. Кирюхин, Председатель ЦПМК по информатике Всероссийских олимпиад школьников МОН РФ (2009 год)1
Примерная программа по олимпиадной информатике Всероссийских олимпиад школьников построена с учетом Государственного образовательного стандарта по предмету «Информатике и ИКТ» (Приказ Минобразования 2004 года и Приказ МОН РФ 2005 года) с перспективой стандарта второго поколения для всех ступеней школьного образования: начальной пропедевтической (3-6 классы), основной (7-8 классы) и старшей предпрофильной (9 класс) и профильной (10-11 классы), а также на основе структуры современного содержания олимпиад по информатике. Программа является примерной, она отражает постоянно растущие требования к участникам олимпиады в освоении наиболее важных разделов информатики с учетом развития олимпиадного движения, и обобщает 20-летний опыт развития содержания курса школьной информатики, банка задач региональных и заключительных этапов Всероссийской олимпиады школьников, разработанных Центральной предметно-методической комиссией по информатике Всероссийских олимпиад школьников МОН РФ. Не следует рассматривать данную программу как совокупность знаний и умений, необходимых для победы в олимпиадах по информатике. Путь к наивысшим достижениям на олимпиадах по информатике является эволюционным и включает несколько этапов. Эти этапы органично отражены в современном Положении о Всероссийских олимпиадах школьников. Это школьный этап (точка входа в этот этап - 5-6 классы, диапазон участия 5-11 классы), муниципальный этап (точка входа в этот этап – 7-8 классы, диапазон участия 7-11 классы), региональный этап и заключительный этап (точки входа в эти этапы – 9 класс, диапазон участия 9-11 классы). При этом наивысшие достижения могут проявляться учениками на разных этапах олимпиады, однако следует учитывать, что сильнейшие учащиеся устойчиво показывают наивысшие достижения в группе 9-11 классов только в случае, если они использовали точку входа в олимпиады уже в 5-6 классах. Каждый из этапов характеризуется своим уровнем сложности. Постепенно осваивая каждый такой уровень и переходя с одного уровня на другой, только так можно подняться на вершину олимпиадной пирамиды и стать лучшим из лучших. Чтобы отразить в программе уровни сложности, каждая дидактическая единица в ней, характерная для участия в различных этапах всероссийской олимпиады школьников по информатике, имеет различное обозначение. В частности, выделено три уровня сложности, каждый из которых отмечен следующим образом: дидактическая единица без символа «*» это означает, что она относится к начальному уровню сложности для учащихся 5-6 классов), и знание этих дидактических единиц позволяет учащимся впервые попробовать свои силы и определить свой олимпиадный уровень при участии в школьных и муниципальных этапах олимпиад, обеспечивает достижение понятийного уровня требований к участнику олимпиад по информатике, позволяет осмысленно подойти к решению олимпиадных заданий; дидактическая единица без символа «*», но выделенная подчеркиванием соответствует основному уровню сложности для 7-8 классов, и знание этих дидактических единиц позволяет учащимся проявлять олимпиадный уровень при участии в муниципальных и региональных этапах олимпиад, обеспечивает достижение продуктивного уровня требований к участнику олимпиад по информатике, позволяет подойти к поиску оптимальных решений олимпиадных заданий и обеспечивает им возможность технологично представить свои идеи; символ «*» означает, что дополнительное изучение этих дидактических единиц формирует у школьников устойчивые профильный умения в области олимпиадной подготовки для учащихся 9-11 классов, открывает перед участником олимпиадного состязания возможность проявить свой творческий потенциал на высоком уровне представления решений олимпиадных заданий и позволяет сформировать портфолио достижений такого учащегося на уровне дипломов победителей и призеров региональных и заключительных этапов всероссийской олимпиады школьников по информатике. Следует отметить, что представленная программа и ее градация по уровням сложности не затрагивает требований к кандидатам в сборную команду России для участия в международных олимпиадах. Для подготовки к международным олимпиадам разработана специальная программа, представленная делегацией России на конференции IOI-2009 и одобренная международным жюри в 2009 году2. Для успешного выступления на этих соревнованиях необходим специализированный уровень подготовки, который не является предметом обсуждения в данной программе. Представленная ниже примерная программа по олимпиадной информатике содержит восемь разделов, которые раскрываются входящими в них темами. Каждая тема, в свою очередь, содержит дидактические единицы, более подробно раскрывающие ключевые знания и умения, позволяющие для каждого школьника выстроить индивидуальную траекторию подготовки к олимпиадам по информатике. С учетом сказанного программа будет выглядеть следующим образом. Математические основы информатики Функции, отношения и множества Функции, обратная функция, композиция Отношения (рефлексивность, симметричность, транзитивность, эквивалентность, лексикографический порядок) Множества (диаграммы Венна, дополнения, декартовы произведения) Вполне упорядоченные множества * Мощность и счетность * Основные геометрические понятия Точка, прямая, отрезок, вектор, угол Декартовы координаты в евклидовом пространстве Евклидово расстояние Векторное и скалярное произведение на плоскости Треугольник, прямоугольник, многоугольник Выпуклые многоугольники Основы логики Логические переменные, операции, выражения Таблицы истинности Булевы функции Формы задания и синтез логических функций Преобразование логических выражений Минимизация булевых функций * Основные законы логики суждений* Логика предикатов * Основы вычислений Основы вычислений: Правила суммы и произведения Арифметические и геометрические прогрессии Числа Фибоначчи Принцип включения-выключения * Рекуррентные соотношения Матрицы и действия над ними * Методы доказательства Прямые доказательства Доказательство через контрпример Доказательство через противопоставление Доказательство через противоречие Математическая индукция Структура формальных доказательств * Основы теории чисел Простые числа. Основная теорема арифметики Деление с остатком Наибольший общий делитель Взаимно простые числа Делимость. Кольцо вычетов по модулю * Основы алгебры Многочлены и операции над ними. Решение квадратных уравнений. Теорема Виета Общий случай теоремы Виета. Симметрические многочлены * Понятие группы * Свойства групп * Теоремы о гомоморфизме и изоморфизме * Основы комбинаторики Перестановки, размещения и сочетания: Основные определения Тождество Паскаля Биномиальная теорема Коды Грея: подмножества, сочетания, перестановки * Таблицы инверсий перестановок * Разбиения на подмножества. Числа Стирлинга * Скобочные последовательности * Теория графов Типы графов Маршруты и связность Операции над графами Деревья Остовные деревья Раскраска графов Эйлеровы и гамильтоновы графы Покрытия и независимость * Укладка графов. Плоские (планарные) графы * Двусвязность графа. Мосты, блоки, точки сочленения * Связь ориентированных ациклических графов и отношений порядка. Транзитивное замыкание * Двудольные графы * Потоки и сети * Основы теории вероятностей Понятие вероятности и математического ожидания. Аксиомы теории вероятностей * Формула полной вероятности и формула Байеса. Условное математическое ожидание * Основы теории игр Понятие игры и результата игры Простейшие игры и стратегии Игры на матрицах * Разработка и анализ алгоритмов Алгоритмы и их свойства Понятие алгоритма Концепции и свойства алгоритмов Запись алгоритма на неформальном языке Структуры данных Простые базовые структуры Множества Последовательности Списки Неориентированные графы Ориентированные графы Деревья Пирамида и дерево отрезков * Сбалансированные деревья * Хэш-таблицы и ассоциативные массивы * Бор * Основы анализа алгоритмов Нотация О большое Стандартные классы сложности Асимптотический анализ поведения алгоритмов в среднем и крайних случаях Компромисс между временем и объемом памяти в алгоритмах * Использование рекуррентных отношений для анализа рекурсивных алгоритмов * NP-полнота * Алгоритмические стратегии Алгоритмы полного перебора "Жадные" алгоритмы Алгоритмы "разделяй и властвуй" * Перебор с возвратом * Эвристики * Рекурсия Понятие рекурсии Рекурсивные математические функции Простые рекурсивные процедуры Реализация рекурсии Стратегия "разделяй и властвуй" * Рекурсивный перебор с возвратами * Фундаментальные вычислительные алгоритмы Простые численные алгоритмы Классические комбинаторные алгоритмы Алгоритмы с подмножествами: генерация, восстановление по номеру и построение номера, генерация следующего и предыдущего (прибавление и вычитание единицы) Алгоритмы с сочетаниями и перестановками: генерация, восстановление по номеру и построение номера, генерация следующего и предыдущего. Алгоритмы последовательного и бинарного поиска Квадратичные методы сортировки (сортировка методом выбора, сортировка вставками) Сортировка подсчетом за линейное время. Алгоритмы сортировки за время O(N log N) (быстрая сортировка, пирамидальная сортировка, сортировка слиянием) * Цифровая сортировка * Алгоритм вычисления номера слова в лексикографически упорядоченном множестве перестановок его символов * Арифметика многоразрядных целых чисел * Числовые алгоритмы Разложение числа на простые множители Решето Эратосфена Алгоритм Евклида Расширенный алгоритм Евклида. Способы реализации алгоритма без деления * Решение линейных сравнений с помощью алгоритма Евклида * Эффективная реализация решета Эратосфена (O(n)) * Эффективная проверка числа на простоту * Быстрые алгоритмы разложения чисел на простые множители. Ро-эвристика * Алгоритмы на строках Поиск подстроки в строке. Наивный метод Алгоритмы поиска подстроки в строке за O(N+M) * Периодические и циклические строки * Алгоритм поиска нескольких подстрок за линейное время * Алгоритмы на графах Вычисление длин кратчайших путей в дереве Обход графа в ширину и в глубину Способы реализации поиска в ширину (“наивный” и с очередью) Проверка графа на связность Алгоритмы поиска кратчайшего пути во взвешенных графах Топологическая сортировка графа, нахождение компонент сильной связности и построение диаграммы порядка * Циклы отрицательной длины – критерий наличия, поиск * Задача о синхронизации времени и задача о системе неравенств * Алгоритм поиска эйлерова цикла (в том числе лексикографически минимального) * Нахождение транзитивного замыкания графа * Алгоритмы нахождения взвешенных остовных деревьев* Алгоритмы отыскания компонент двусвязности, точек сочленения, мостов с помощью поиска в глубину * Алгоритм нахождения максимального паросочетания и минимального вершинного покрытия в двудольном графе * Поиск максимального потока в сети * Динамическое программирование Основная идея динамического программирования. Рекурсивная реализация и развертывание в цикл. Задачи с монотонным направлением движения в таблице Задача о рюкзаке – решение методом динамического программирования Оптимизация решения задачи динамического программирования на примере задачи о рюкзаке (исключение лишних параметров) * Восстановление решения в задачах динамического программирования * Общая схема решения задач динамического программирования * Алгоритмы теории игр * Динамическое программирование и полный перебор как методы решения игровых задач. Игры на ациклическом графе * Оценка позиций. Альфа-бета отсечение * Геометрические алгоритмы Алгоритмы определения совпадения точек, лучей, прямых и отрезков Представление точек, прямых и отрезков на плоскости Нахождение расстояний между объектами на плоскости * Алгоритмы определения пересечения отрезков на плоскости * Алгоритмы вычисления площади многоугольника с заданными координатами вершин. Случай целочисленной решетки (формула Пика) * Алгоритмы построения выпуклой оболочки (алгоритмы Грэхема и Джарвиса) * Окружности на плоскости, пересечение их с другими геометрическими объектами * Эффективный алгоритм нахождения пары ближайших точек на плоскости * Основы программирования Языки программирования Классификация языков программирования Процедурные языки Основы синтаксиса и семантики языков высокого уровня Формальные методы описания синтаксиса: форма Бэкуса-Наура * Объектно-ориентированные языки * Основные конструкции программирования Переменные, типы, выражения и присваивания Основы ввода/вывода Операторы проверки условия и цикла Функции и передача параметров Структурная декомпозиция * Переменные и типы данных Концепция типа данных как множества значений и операций над ними Свойства объявлений (связывание, область видимости, блоки и время жизни) Обзор проверки типов Типы структур данных Примитивные типы Массивы Записи Стратегии выбора подходящей структуры данных Представление данных в памяти * Статическое, автоматическое и динамическое выделение памяти * Указатели и ссылки * Связанные структуры * Методы реализации стеков, очередей и хэш-таблиц * Методы реализации графов и деревьев * Механизмы абстракции. Процедуры, функции и итераторы как механизмы абстракции Механизмы параметризации (ссылки и значения) Модули в языках программирования Особенности программирования фундаментальных алгоритмов. Стратегии решения задач Роль алгоритмов в процессе решения задач Стратегии реализации алгоритмов Реализация рекурсии Стратегии отладки * Средства ИКТ Цифровая логика Логические схемы Системы счисления Компьютерная арифметика Представление данных в памяти компьютера Биты, байты и слова Представление числовых данных * Системы с фиксированной и плавающей точкой * Представление со знаковым битом и в дополнительном коде * Представление нечисловых данных (коды символов, графические данные) * Представление массивов и записей * Организация работы компьютера Принципы фон Неймана Управляющее устройство: выборка инструкций, декодирование и выполнение Набор инструкций и виды инструкций (манипуляция данными, управление, ввод-вывод) Форматы инструкций * Режимы адресации * Механизм вызовов и возвратов из процедур * Ввод-вывод и прерывания * Устройство памяти компьютера Организация основной памяти и операции с ней Иерархия памяти Кодирование данных, сжатие данных и целостность * Кэш-память * Взаимодействие и коммуникации Интерфейс пользователя. Основы ввода-вывода информации. Принципы скоростного клавиатурного ввода. Внешняя память, физическая организация и устройства Введение в сетевые технологии Прямой доступ к памяти * Операционные системы Основы операционных систем Роль и задачи операционных систем Функционирование типичной операционной системы Директории: содержимое и структура Именование, поиск, доступ, резервное копирование Основные функции операционных систем Абстракции, процессы и ресурсы Организация устройств Защита, доступ и аутентификация Управление памятью Обзор физической памяти и аппаратного обеспечения, предназначенного для управления памятью Страничная и сегментная организации памяти * Кэширование * Основы технологии программирования Программные средства и окружения. Среды программирования Инструментальные средства тестирования * Проверка соответствия программного обеспечения. Основы тестирования, включая создание тестового плана и генерацию тестов * Тестирование методом "черного ящика" и "белого ящика" * Тестирование элементов, интеграционное, системное тестирование и проверка соответствия * Методы вычислений и моделирование Основы вычислительной математики*. Основные методы вычислительной математики вычисление значения и корней функции * вычисление периметра, площади и объема плоских фигур* Вычисление функций с шагом. Метод сеток * Арифметика с плавающей точкой * Ошибка, устойчивость, сходимость* Введение в моделирование. Понятия модели и моделирования Основные типы моделей Компоненты компьютерной модели и способы их описания: входные и выходные переменные, переменные состояния, функции перехода и выхода, функция продвижения времени Основные этапы и особенности построения компьютерных моделей Основные этапы использования компьютерных моделей при решении практических задач Компьютерные сетевые технологии Сети и телекоммуникации. Сетевые карты и сетевые устройства Среды передачи данных Сетевые архитектуры Использование паролей и механизмов контроля доступа Вопросы качества обслуживания: производительность, восстановление после сбоев * Беспроводные сети. Специфические проблемы беспроводных и мобильных компьютеров Установка программ на мобильные и беспроводные компьютеры Беспроводные локальные сети и линии связи Следует отметить, что представленная программа подготовки к олимпиадам по информатике позволяет не только и не столько определять подготовку школьников к участию в олимпиадах, хотя и этот аспект имеет немалое значение в судьбе ребят, но главное – готовить их к дальнейшему профессиональному росту в выбранной ими профильной сфере образования в старшей школе. Список рекомендуемой литературы олимпиадной подготовки по информатике издательства «БИНОМ. Лаборатория знаний» (см каталог на сайте www.LBZ.RU ).
1 | Фролов М. И. Учимся программировать в компьютере: самоучитель для детей и родителей | 2 | Богомолова О. Б. Логические задачи | 3 | Дрозина В. В., Дильман В. Л. Механизм творчества решения нестандартных задач. Руководство для тех, кто хочет научиться решать нестандартные задачи: учебное пособие | 4 | Покровская Т. А. Формирование у младших школьников представлений о геометрических фигкрах: пособие для учителя начальной школы | 5 | Цветкова М. С., Курис Г. Э. Виртуальные лаборатории по информатике в начальной школе: методическое пособие | 6 | Цветкова М. С., Богомолова О. Б. Культура клавиатурного письма: методическое пособие | 7 | Сулейманов Р. Р. Методика решения учебных задач средствами программирования: методическое пособие | 8 | Сулейманов Р. Р. Организация внеклассной работы в школьном клубе программистов: методическое пособие | 9 | Босова Л.Л. Занимательные задачи по информатике |
1 | Окулов С. М. Основы программирования | 2 | Окулов С. М. Программирование в алгоритмах | 3 | Окулов С. М. Задачи по программированию | 4 | Окулов С. М., Лялин А. В. Ханойские башни. Занятия по информатике с одаренными школьниками | 5 | Лесневский А. С. Объектно-ориентированное программирование для начинающих | 6 | Плаксин М. А. Тестирование и отладка программ для профессионалов будущих и настоящих | 7 | Столяр С. Е. Информатика: представление данных и алгоритмы | 8 | Великович Л., Цветкова М. Программирование для начинающих | 9 | Робертсон Л.А. Программирование – это просто: пошаговый подход. (перевод с английского) | 10 | Баженова И. Ю. Введение в программирование. Учебное пособие | 11 | Андреева Т. А. Программирование на языке Pascal. Учебное пособие | 12 | Марченко А. Л. Основы программирования на С# 2.0 | 13 | Стивенс Э. Самоучитель по С++ от Wiley (перевод с английского языка) | 14 | Бишоп Дж. С# в кратком изложении (перевод с английского языка) | 15 | Анисимов А. Е. Сборник заданий по основаниям программирования. Учебное пособие | 16 | Биллинг В. А. Основы программирования С#. Учебное пособие | 17 | Костюкова Н. И. Язык Си и особенности работы с ним. Учебное пособие | 18 | Желонкин А. В. Основы программирования в интегрированной среде DELPHI. Практикум | 19 | Златопольский Д. М. Программирование: типовые задачи, алгоритмы, методы | 20 | Анисимов А. Е. Сборник заданий по основам программирования | 21 | Волченков С.Г. Ярославские олимпиады по информатике |
1 | Кирюхин В. М., Окулов С. М. Методика решения задач по информатике. Международные олимпиады | 2 | Окулов С.М. и др. Дискретная математика. Теория и практика решения задач по информатике | 3 | Конгер Д. Физика для разработчиков компьютерных игр (перевод с английского языка) | 4 | Алексеев В. Е. Графы и алгоритмы. Структура данных. Модели вычисления. Учебник | 5 | Андреева Е. В., Босова Л. Л., Фалина И. Н. Математические основы информатики. Элективный курс. Учебное пособие | 6 | Залогова Л. А. Разработка Паскаль-компилятора | 7 | Миллер Р. Последовательные и параллельные алгоритмы: общий подход (перевод с английского языка) | 8 | Круз Р. Л. Структуры данных и проектирование программ (перевод с английского языка) | 9 | Костюкова Н.И. Графы и их применение. Комбинаторные алгоритмы для программистов. | 10 | Котляров В. П. Основы тестирования программного обеспечения | 11 | Просветов Г. И. Дискретная математика: задачи и решения. Учебное пособие | 12 | Дехтярь М. И. Лекции по дискретной математике. Учебное пособие | 13 | Лежнёв А. В. Динамическое программирование в экономических задачах | 14 | Лагутин М. Б. Наглядная математическая статистика. Учебное пособие | 15 | Чжун К. Л. и др. Элементарный курс теории вероятностей. Стохастические процессы и фин. математика (перевод с английского языка) | 16 | Алон Н., Спенсер Дж. Вероятностный метод. Учебное пособие (перевод с английского языка) | 17 | Казиев В. М. Введение в анализ, синтез и моделирование систем. Учебное пособие |
|