Курс «Олимпиадное программирование на Java»
Класс: 8-11
Педагог: Игорь Баранов
Предметные области: Информатика, Математика
Период обучения: 2 года
Курс ориентирован на учащихся 8 – 11 классов с уклоном на информатику и математику. Курс посвящен знакомству с языком программирования Java, изучению базовых алгоритмов для решения тех или иных задач. Навыки, приобретенные на курсе, помогут при поступлении на технические специальности.
Темы
1 год обучения
- Встроенные типы данных, операции над ними:
- Примитивные типы данных и операции;
- Выражения;
- Операторы;
- Решение задач на логику.
- Работа с массивами:
- Теоретическая информация по работе с одномерными и многомерными массивами;
- Решение задач на работу с массивами.
- Сортировки, базовые алгоритмы НОД и НОК
- Работа со строками:
- Описание строк;
- Работа со встроенными методами класса String;
- Решение задач со строками.
- Объектно-ориентированное программирование в Java:
- Описание классов и объектов;
- Наследование;
- Описание функций и процедур;
- Рекурсия.
- Основы комбинаторики:
- Формулы перестановок, размещений и сочетаний без повторения;
- Формулы перестановок, размещений и сочетаний c повторениями;
- Решение задач с использованием комбинаторных формул.
- Основы динамического программирования:
- Описание алгоритмов решения задач при помощи динамического программирования;
- Решение типовых задач на динамическое программирование.
* Решение задач ЕГЭ и ОГЭ.
2 год обучения
- Минимальный остов: алгоритм Прима, Крускала;
- Решение задач.
- Алгоритмы на строках:
- Префикс-функция, алгоритм Кнута-Морриса-Пратта;
- Z- функция;
- Алгоритмы хэширования;
- Суффиксный автомат, нахождение всех подпалиндромов;
- Алгоритм Ахо-Корасика;
- Суффиксное дерево, Алгоритм Укконена, алгоритм Вейнера.
- Решение задач.
- Работа со структурами данных:
- Sqrt-декомпозиция;
- Стеки, очереди;
- Дерево фенвика;
- Система непересекающихся множеств;
- Дерево отрезков;
- Решение задач.
- Алгоритмы на последовательностях:
- Задача RMQ и модификации;
- Решение задач.
- Алгоритмы на графах:
- Поиск кратчайшего пути: алгоритм Дейкстры, алгоритм Форда-Беллмана;
- Поиск в глубину, ширину;
Результат обучения
- Освоение языка программирования Java.
- Изучение различных базовых алгоритмов.
- Умение решать олимпиадные задачи различной сложности.