Дистанционная олимпиадная программа по информатике

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

Открыть программу на сайте дистанционного обучения

  • Структура программы:
    1. Математические основы информатики
    1.1. Функции, отношения и множества
    1.1.1. Функции, обратная функция, композиция
    1.1.2. Отношения (рефлексивность, симметричность, транзитивность, эквивалентность, лексикографический порядок)
    1.1.3. Множества (диаграммы Венна, дополнения, декартовы произведения)
    1.1.4. Вполне упорядоченные множества *
    1.1.5. Мощность и счетность *
    1.2. Основные геометрические понятия
    1.2.1. Точка, прямая, отрезок, вектор, угол
    1.2.2. Декартовы координаты в евклидовом пространстве
    1.2.3. Евклидово расстояние
    1.2.4. Векторное и скалярное произведение на плоскости
    1.2.5. Треугольник, прямоугольник, многоугольник
    1.2.6. Выпуклые многоугольники
    1.3. Основы логики
    1.3.1. Логические переменные, операции, выражения
    1.3.2. Таблицы истинности
    1.3.3. Булевы функции
    1.3.4. Формы задания и синтез логических функций
    1.3.5. Преобразование логических выражений
    1.3.6. Минимизация булевых функций *
    1.3.7. Основные законы логики суждений*
    1.3.8. Логика предикатов *
    1.4. Основы вычислений
    1.4.1. Основы вычислений:
    • Правила суммы и произведения
    • Арифметические и геометрические прогрессии
    • Числа Фибоначчи
    • Принцип включения-выключения *
    1.4.2. Рекуррентные соотношения
    1.4.3. Матрицы и действия над ними *
    1.5. Методы доказательства
    1.5.1. Прямые доказательства
    1.5.2. Доказательство через контрпример
    1.5.3. Доказательство через противопоставление
    1.5.4. Доказательство через противоречие
    1.5.5. Математическая индукция
    1.5.6. Структура формальных доказательств *
    1.6. Основы теории чисел
    1.6.1. Простые числа. Основная теорема арифметики
    1.6.2. Деление с остатком
    1.6.3. Наибольший общий делитель
    1.6.4. Взаимно простые числа
    1.6.5. Делимость. Кольцо вычетов по модулю *
    1.7. Основы алгебры
    1.7.1. Многочлены и операции над ними. Решение квадратных уравнений. Теорема Виета
    1.7.2. Общий случай теоремы Виета. Симметрические многочлены *
    1.7.3. Понятие группы *
    1.7.4. Свойства групп *
    1.7.5. Теоремы о гомоморфизме и изоморфизме *
    1.8. Основы комбинаторики
    1.8.1. Перестановки, размещения и сочетания:
    • Основные определения
    • Тождество Паскаля
    • Биномиальная теорема
    1.8.2. Коды Грея: подмножества, сочетания, перестановки *
    1.8.3. Таблицы инверсий перестановок *
    1.8.4. Разбиения на подмножества. Числа Стирлинга *
    1.8.5. Скобочные последовательности *
    1.9. Теория графов
    1.9.1. Типы графов
    1.9.2. Маршруты и связность
    1.9.3. Операции над графами
    1.9.4. Деревья
    1.9.5. Остовные деревья
    1.9.6. Раскраска графов
    1.9.7. Эйлеровы и гамильтоновы графы
    1.9.8. Покрытия и независимость *
    1.9.9. Укладка графов. Плоские (планарные) графы *
    1.9.10. Двусвязность графа. Мосты, блоки, точки сочленения *
    1.9.11. Связь ориентированных ациклических графов и отношений порядка. Транзитивное замыкание *
    1.9.12. Двудольные графы *
    1.9.13. Потоки и сети *
    1.10. Основы теории вероятностей
    1.10.1. Понятие вероятности и математического ожидания. Аксиомы теории вероятностей *
    1.10.2. Формула полной вероятности и формула Байеса. Условное математическое ожидание *
    1.11. Основы теории игр
    1.11.1. Понятие игры и результата игры
    1.11.2. Простейшие игры и стратегии
    1.11.3. Игры на матрицах *
    2. Разработка и анализ алгоритмов
    2.1. Алгоритмы и их свойства
    2.1.1. Понятие алгоритма
    2.1.2. Концепции и свойства алгоритмов
    2.1.3. Запись алгоритма на неформальном языке
    2.2. Структуры данных
    2.2.1. Простые базовые структуры
    2.2.2. Множества
    2.2.3. Последовательности
    2.2.4. Списки
    2.2.5. Неориентированные графы
    2.2.6. Ориентированные графы
    2.2.7. Деревья
    2.2.8. Пирамида и дерево отрезков *
    2.2.9. Сбалансированные деревья *
    2.2.10. Хэш-таблицы и ассоциативные массивы *
    2.2.11. Бор *
    2.3. Основы анализа алгоритмов
    2.3.1. Нотация О большое
    2.3.2. Стандартные классы сложности
    2.3.3. Асимптотический анализ поведения алгоритмов в среднем и крайних случаях
    2.3.4. Компромисс между временем и объемом памяти
    в алгоритмах *
    2.3.5. Использование рекуррентных отношений для анализа рекурсивных алгоритмов *
    2.3.6. NP-полнота *
    2.4. Алгоритмические стратегии
    2.4.1. Алгоритмы полного перебора
    2.4.2. «Жадные» алгоритмы
    2.4.3. Алгоритмы «разделяй и властвуй» *
    2.4.4. Перебор с возвратом *
    2.4.5. Эвристики *
    2.5. Рекурсия
    2.5.1. Понятие рекурсии
    2.5.2. Рекурсивные математические функции
    2.5.3. Простые рекурсивные процедуры
    2.5.4. Реализация рекурсии
    2.5.5. Стратегия «разделяй и властвуй» *
    2.5.6. Рекурсивный перебор с возвратами *
    2.6. Фундаментальные вычислительные алгоритмы
    2.6.1. Простые численные алгоритмы
    2.6.2. Классические комбинаторные алгоритмы
    2.6.3. Алгоритмы с подмножествами: генерация, восстановление по номеру и построение номера, генерация следующего и предыдущего (прибавление и вычитание единицы)
    2.6.4. Алгоритмы с сочетаниями и перестановками: генерация, восстановление по номеру и построение номера, генерация следующего и предыдущего.
    2.6.5. Алгоритмы последовательного и бинарного поиска
    2.6.6. Квадратичные методы сортировки (сортировка методом выбора, сортировка вставками)
    2.6.7. Сортировка подсчетом за линейное время.
    2.6.8. Алгоритмы сортировки за время O(N log N) (быстрая сортировка, пирамидальная сортировка,
    сортировка слиянием) *
    2.6.9. Цифровая сортировка *
    2.6.10. Алгоритм вычисления номера слова в лексикографически упорядоченном множестве перестановок его символов *
    2.6.11. Арифметика многоразрядных целых чисел *
    2.7. Числовые алгоритмы
    2.7.1. Разложение числа на простые множители
    2.7.2. Решето Эратосфена
    2.7.3. Алгоритм Евклида
    2.7.4. Расширенный алгоритм Евклида. Способы реализации алгоритма без деления *
    2.7.5. Решение линейных сравнений с помощью алгоритма Евклида *
    2.7.6. Эффективная реализация решета Эратосфена (O(n)) *
    2.7.7. Эффективная проверка числа на простоту *
    2.7.8. Быстрые алгоритмы разложения чисел на простые множители. Ро-эвристика *
    2.8. Алгоритмы на строках
    2.8.1. Поиск подстроки в строке. Наивный метод
    2.8.2. Алгоритмы поиска подстроки в строке за O(N+M) *
    2.8.3. Периодические и циклические строки *
    2.8.4. Алгоритм поиска нескольких подстрок за линейное время *
    2.9. Алгоритмы на графах
    2.9.1. Вычисление длин кратчайших путей в дереве
    2.9.2. Обход графа в ширину и в глубину
    2.9.3. Способы реализации поиска в ширину (“наивный” и с очередью)
    2.9.4. Проверка графа на связность
    2.9.5. Алгоритмы поиска кратчайшего пути во взвешенных графах
    2.9.6. Топологическая сортировка графа, нахождение компонент сильной связности и построение диаграммы порядка *
    2.9.7. Циклы отрицательной длины – критерий наличия, поиск *
    2.9.8. Задача о синхронизации времени и задача о системе неравенств *
    2.9.9. Алгоритм поиска эйлерова цикла (в том числе лексикографически минимального) *
    2.9.10. Нахождение транзитивного замыкания графа *
    2.9.11. Алгоритмы нахождения взвешенных остовных деревьев*
    2.9.12. Алгоритмы отыскания компонент двусвязности, точек сочленения, мостов с помощью поиска в глубину *
    2.9.13. Алгоритм нахождения максимального паросочетания и минимального вершинного покрытия в двудольном графе *
    2.9.14. Поиск максимального потока в сети *
    2.10. Динамическое программирование
    2.10.1. Основная идея динамического программирования. Рекурсивная реализация и развертывание в цикл.
    2.10.2. Задачи с монотонным направлением движения в таблице
    2.10.3. Задача о рюкзаке – решение методом динамического программирования
    2.10.4. Оптимизация решения задачи динамического программирования на примере задачи о рюкзаке (исключение лишних параметров) *
    2.10.5. Восстановление решения в задачах динамического программирования *
    2.10.6. Общая схема решения задач динамического
    программирования *
    2.11. Алгоритмы теории игр *
    2.11.1. Динамическое программирование и полный перебор как методы решения игровых задач. Игры на ациклическом графе *
    2.11.2. Оценка позиций. Альфа-бета отсечение *
    2.12. Геометрические алгоритмы
    2.12.1. Алгоритмы определения совпадения точек, лучей, прямых и отрезков
    2.12.2. Представление точек, прямых и отрезков на плоскости
    2.12.3. Нахождение расстояний между объектами на плоскости *
    2.12.4. Алгоритмы определения пересечения отрезков на плоскости *
    2.12.5. Алгоритмы вычисления площади многоугольника с заданными координатами вершин. Случай целочисленной решетки (формула Пика) *
    2.12.6. Алгоритмы построения выпуклой оболочки (алгоритмы Грэхема и Джарвиса) *
    2.12.7. Окружности на плоскости, пересечение их с другими геометрическими объектами *
    2.12.8. Эффективный алгоритм нахождения пары ближайших точек на плоскости *
    3. Основы программирования
    3.1. Языки программирования
    3.1.1. Классификация языков программирования
    3.1.2. Процедурные языки
    3.1.3. Основы синтаксиса и семантики языков высокого уровня
    3.1.4. Формальные методы описания синтаксиса:
    форма Бэкуса-Наура *
    3.1.5. Объектно-ориентированные языки *
    3.2. Основные конструкции программирования
    3.2.1. Переменные, типы, выражения и присваивания
    3.2.2. Основы ввода/вывода
    3.2.3. Операторы проверки условия и цикла
    3.2.4. Функции и передача параметров
    3.2.5. Структурная декомпозиция *
    3.3. Переменные и типы данных
    3.3.1. Концепция типа данных как множества значений и операций над ними
    3.3.2. Свойства объявлений (связывание, область видимости, блоки и время жизни)
    3.3.3. Обзор проверки типов
    3.4. Типы структур данных
    3.4.1. Примитивные типы
    3.4.2. Массивы
    3.4.3. Записи
    3.4.4. Стратегии выбора подходящей структуры данных
    3.4.5. Представление данных в памяти *
    3.4.6. Статическое, автоматическое и динамическое выделение памяти *
    3.4.7. Указатели и ссылки *
    3.4.8. Связанные структуры *
    3.4.9. Методы реализации стеков, очередей и хэш-таблиц *
    3.4.10. Методы реализации графов и деревьев *
    3.5. Механизмы абстракции.
    3.5.1. Процедуры, функции и итераторы как механизмы абстракции
    3.5.2. Механизмы параметризации (ссылки и значения)
    3.5.3. Модули в языках программирования
    3.6. Особенности программирования фундаментальных алгоритмов.
    3.6.1. Стратегии решения задач
    3.6.2. Роль алгоритмов в процессе решения задач
    3.6.3. Стратегии реализации алгоритмов
    3.6.4. Реализация рекурсии
    3.6.5. Стратегии отладки *
    4. Средства ИКТ
    4.1. Цифровая логика
    4.1.1. Логические схемы
    4.1.2. Системы счисления
    4.1.3. Компьютерная арифметика
    4.2. Представление данных в памяти компьютера
    4.2.1. Биты, байты и слова
    4.2.2. Представление числовых данных *
    4.2.3. Системы с фиксированной и плавающей точкой *
    4.2.4. Представление со знаковым битом и в дополнительном коде *
    4.2.5. Представление нечисловых данных (коды символов, графические данные) *
    4.2.6. Представление массивов и записей *
    4.3. Организация работы компьютера
    4.3.1. Принципы фон Неймана
    4.3.2. Управляющее устройство: выборка инструкций, декодирование и выполнение
    4.3.3. Набор инструкций и виды инструкций (манипуляция данными, управление, ввод-вывод)
    4.3.4. Форматы инструкций *
    4.3.5. Режимы адресации *
    4.3.6. Механизм вызовов и возвратов из процедур *
    4.3.7. Ввод-вывод и прерывания *
    4.4. Устройство памяти компьютера
    4.4.1. Организация основной памяти и операции с ней
    4.4.2. Иерархия памяти
    4.4.3. Кодирование данных, сжатие данных и целостность *
    4.4.4. Кэш-память *
    4.5. Взаимодействие и коммуникации
    4.5.1. Интерфейс пользователя. Основы ввода-вывода информации. Принципы скоростного клавиатурного ввода.
    4.5.2. Внешняя память, физическая организация и устройства
    4.5.3. Введение в сетевые технологии
    4.5.4. Прямой доступ к памяти *
    5. Операционные системы
    5.1. Основы операционных систем
    5.1.1. Роль и задачи операционных систем
    5.1.2. Функционирование типичной операционной системы
    5.1.3. Директории: содержимое и структура
    5.1.4. Именование, поиск, доступ, резервное копирование
    5.2. Основные функции операционных систем
    5.2.1. Абстракции, процессы и ресурсы
    5.2.2. Организация устройств
    5.2.3. Защита, доступ и аутентификация
    5.3. Управление памятью
    5.3.1. Обзор физической памяти и аппаратного обеспечения, предназначенного для управления памятью
    5.3.2. Страничная и сегментная организации памяти *
    5.3.3. Кэширование *
    6. Основы технологии программирования
    6.1. Программные средства и окружения.
    6.1.1. Среды программирования
    6.1.2. Инструментальные средства тестирования *
    6.2. Проверка соответствия программного обеспечения.
    6.2.1. Основы тестирования, включая создание тестового плана и генерацию тестов *
    6.2.2. Тестирование методом «черного ящика» и «белого ящика» *
    6.2.3. Тестирование элементов, интеграционное, системное тестирование и проверка соответствия *
    7. Методы вычислений и моделирование
    7.1. Основы вычислительной математики*.
    7.1.1. Основные методы вычислительной математики
    • вычисление значения и корней функции *
    • вычисление периметра, площади и объема плоских фигур*
    7.1.2. Вычисление функций с шагом. Метод сеток *
    7.1.3. Арифметика с плавающей точкой *
    7.1.4. Ошибка, устойчивость, сходимость*
    7.2. Введение в моделирование.
    7.2.1. Понятия модели и моделирования
    7.2.2. Основные типы моделей
    7.2.3. Компоненты компьютерной модели и способы их описания: входные и выходные переменные, переменные состояния, функции перехода и выхода, функция продвижения времени
    7.2.4. Основные этапы и особенности построения компьютерных моделей
    7.2.5. Основные этапы использования компьютерных моделей при решении практических задач
    8. Компьютерные сетевые технологии
    8.1. Сети и телекоммуникации.
    8.1.1. Сетевые карты и сетевые устройства
    8.1.2. Среды передачи данных
    8.1.3. Сетевые архитектуры
    8.1.4. Использование паролей и механизмов контроля доступа
    8.1.5. Вопросы качества обслуживания: производительность, восстановление после сбоев *
    8.2. Беспроводные сети.
    8.2.1. Специфические проблемы беспроводных и мобильных компьютеров
    8.2.2. Установка программ на мобильные и беспроводные компьютеры
    8.2.3. Беспроводные локальные сети и линии связи
Участниками программы могут стать победители и призеры муниципального этапа Всероссийской олимпиады школьников по информатике. Также преподаватель в исключительных случаях может принимать решение о зачислении слушателей самостоятельно на основании достижений ученика. Заявку на программу можно подать на электронную почту mira.edurm@gmail.com
Юшков Игорь Сергеевич
  • Кандидат технических наук
  • Доцент кафедры электроники и наноэлектроники ФГБОУ ВО «МГУ им. Н.П. Огарева»
Дистанционная олимпиадная программа по информатике