Знакомство со средой KTurtle: панель кода, зона рисования, консоль. Запуск и отладка простых команд. Синтаксис языка.
Команды движения. Управление направлением. Углы поворота. Построение простых траекторий.
Система координат в KTurtle. Движение относительно текущего положения и переход к точкам с заданными координатами. .
Использование цикла для многократного выполнения команд. Построение правильных многоугольников, ломаных, узоров.
Условный оператор. Проверка условий в графической среде. Управление поведением черепахи в зависимости от состояния.
Управление отрисовкой. Изменение цвета лин и её толщины. Создание разрывов в рисунке.
Алгоритмы рисования квадрата, треугольника, прямоугольника, многоугольника. Связь угла поворота с количеством сторон.
Комбинирование циклов и поворотов для генерации симметричных узоров: спирали, цветы, звёзды. Использование вложенных циклов.
Передача значений в команды: длина шага, угол, количество повторений. Параметризация фигур и движений.
Определение пользовательских команд (процедур). Вызов процедур с параметрами. Повторное использование кода.
Выполнение заданий с точным попаданием в точки, соблюдением углов и длин. Отладка траектории. Минимизация ошибок.
Решение алгоритмических головоломок: обход лабиринтов, рисование по шаблону, выполнение условий. Анализ условий и построение решения.
Визуализация выполнения программы шаг за шагом. Отслеживание состояния черепахи, координат, направления. Построение траектории.
Решение задач в формате олимпиад и соревнований. Анализ условий, построение алгоритма, тестирование. Оптимизация кода и точность исполнения.
Целые числа. Условный оператор. Циклы. Поиск ошибок и ревью кода. Строки. Списки. Функции. Кортежи. Множества. Словари.
Основные понятия. Входные, выходные данные, их формат, понятие ограничений, файловый ввод/вывод, тесты.
Вычислительная сложность. Асимптотика, O-нотация (только база), понятия ограничений, ограничений по времени, ограничений по памяти.
Квадратичные сортировки. Пузырьком, выбором, вставками, подсчётом, цифровая.
Бинарный поиск. Линейный поиск, бинарный поиск (на примере «угадай число»), бинарный поиск по ответу.
Два указателя. Слияние двух массивов, скользящее окно.
Префиксные суммы. Задача о нахождении суммы на подотрезке.
Простые числа. Проверка на простоту, решето Эратосфена, факторизация.
НОД и НОК. Алгоритм Евклида, расширенный алгоритм Евклида.
Битовое представление чисел. Двоичная система счисления, битовые операции, примеры использования.
Бинарное возведение в степень.
Квадратичные сортировки. Бинарный поиск. Два указателя. Префиксные суммы. Простые числа. НОД и НОК. Битовое представление чисел. Бинарное возведение в степень.
Сканирующая прямая. Запросы, «события».
Быстрые сортировки. Быстрая, слиянием, количество инверсий.
Комбинаторика. Количество способов, правило умножения, правило сложения, правило вычитания. Перестановки без повторений, перестановки с повторениями, размещения без повторений, размещения с повторениями, сочетания без повторений.
Модулярная арифметика. Сложение, вычитание, умножение по модулю, деление по модулю.
Введение в динамическое программирование. Числа Фибоначчи, запоминание результатов, стандартные задачи, жадные алгоритмы.
Двумерная динамика на таблицах. Черепашка, восстановление ответа, нахождение числа сочетаний.
Задача о рюкзаке. 0-1 рюкзак, рюкзак со стоимостями, ограниченный рюкзак, неограниченный рюкзак.
Наибольшая общая подпоследовательность, наибольшая возрастающая подпоследовательность.
Введение в графы. Понятия графов, способы задания — список рёбер, матрица смежности, список смежности.
Обход в глубину. Связность, проверка на связность, поиск компонент связности, топологическая сортировка.
Обход в ширину.
Кратчайшие пути. Алгоритм Флойда, алгоритм Форда-Беллмана, алгоритм Дейкстры.
Контейнеры STL. Статический массив, динамический массив, стек, очередь, дек, односвязный список, двусвязный список. set, unordered_set, map, unordered_map.
Куча, приоритетная очередь, пирамидальная сортировка.
Двоичное дерево поиска.
Курс для учеников 9-11 классов, направленный на успешную сдачу государственного экзамена по информатике. Осваиваются фундаментальные концепции программирования, алгоритмы и работа с данными.
3 года обучения: Первый год - Kturtle (визуальное программирование, основы алгоритмов). Второй год - Python (базовые задачи, переменные, условия, циклы). Третий год - Python (сложные алгоритмы, структуры данных, оптимизация, подготовка к соревнованиям).
Умение решать задачи экзаменационного формата быстро и точно. Навыки анализа алгоритмов, работы с электронными таблицами, булевой алгеброй, системами счисления, кодирования/декодирования и поиска данных. Подготовка к выполнению заданий под time-pressure.