Повторение языка программирования Python
Целые числа. Условный оператор. Циклы. Поиск ошибок и ревью кода. Строки. Списки. Функции. Кортежи. Множества. Словари.
Введение в теорию алгоритмов
Основные понятия. Входные, выходные данные, их формат, понятие ограничений, файловый ввод/вывод, тесты.
Вычислительная сложность. Асимптотика, O-нотация (только база), понятия ограничений, ограничений по времени, ограничений по памяти.
Базовые алгоритмы
Квадратичные сортировки. Пузырьком, выбором, вставками, подсчётом, цифровая.
Бинарный поиск. Линейный поиск, бинарный поиск (на примере «угадай число»), бинарный поиск по ответу.
Два указателя. Слияние двух массивов, скользящее окно.
Префиксные суммы. Задача о нахождении суммы на подотрезке.
Теория чисел
Простые числа. Проверка на простоту, решето Эратосфена, факторизация.
НОД и НОК. Алгоритм Евклида, расширенный алгоритм Евклида.
Битовое представление чисел. Двоичная система счисления, битовые операции, примеры использования.
Бинарное возведение в степень.