Обновленная программа, новые преподаватели.
Для кого этот курс?
Программа создана для Junior/Middle разработчиков, владеющих разными языками программирования. Откроет огромные перспективы для развития тем, кто застоялся на месте, и тем, кто хочет вырасти профессионально, избежав многих ошибок. И, конечно, курс просто жизненно необходим всем, кто прогулял или недостаточно серьёзно относился к занятиям по алгоритмам в вузе.
Содержание курса
Введение в алгоритмы и структуры данных
- Тема 1: Математика для разработчиков
- Тема 2: Введение в алгоритмы, RAM-модель. Порядок роста функций.
- Тема 3: Базовые структуры данных: массив, динамический массив, список, стек, очередь, очередь с приоритетами
- Тема 4: Алгебраические алгоритмы: алгоритм Евклида, быстрое возведение в степень, решето Эратосфена, быстрое вычисление чисел Фибоначчи
- Тема 5: Шахматное программирование
Сортировки
- Тема 1: Сортировка вставками, сортировка Шелла, сортировка выбором, пузырьковая сортировка
- Тема 2: Пирамидальная сортировка (heap sort), tree sort
- Тема 3: Сортировка слиянием, timsort. Быстрая сортировка
- Тема 4: Сортировка за линейное время. Поиск порядковых статистик за линейное время.
Деревья
- Тема 1: Двоичные деревья поиска, декартовы деревья, АВЛ-деревья
- Тема 2: Красно-черные деревья, расширяющиеся деревья, рандомизированные деревья
- Тема 3: B-деревья, B+-деревья. Деревья отрезков
Хеш-таблицы
- Тема 1: Таблицы с прямой адресацией. Хэш-таблицы, хэш-функции. Метод цепочек (chaining).
- Тема 2: Хеш-функции. Стратегии поиска. Универсальное хеширование
- Тема 3: Универсальное и идеальное хэширование.
Графы
- Тема 1: Поиск в ширину. Поиск в глубину, поиск компонент сильной связности. Алгоритм Косарайю.
- Тема 2: Топологическая сортировка
- Тема 3: Минимальные остовные деревья. Алгоритмы Крускала и Прима
- Тема 4: Поиск кратчайшего пути в графе. Алгоритмы Дейкстры, Беллмана-Форда, Флойда-Уоршалла
- Тема 5: Алгоритмы Джонсона, А*, и способы решения задачи коммивояжера
- Тема 6: Heap manager, Garbage collector
Алгоритмы на строках
- Тема 1: Алгоритм Бойера-Мура
- Тема 2: Алгоритм Кнута-Морриса-Пратта
- Тема 3: Алгоритм Ахо-Корасика
- Тема 4: Код Хаффмана, алгоритм Лемпела-Зива. Run-length encoding.
- Тема 5: Шифрование данных, базовые принципы и алгоритмы.
Динамическое программирование
- Тема 1: Кэширование
- Тема 2: Динамическое программирование: задачи динамического программирования
Вероятностные алгоритмы и структуры данных
- Тема 1: Фильтр Блума
- Тема 2: Алгоритмы MinHash, SimHash
- Тема 3: Алгоритмы HyperLogLog, Count-Min Sketch
Численные методы оптимизации
- Тема 1: Поиск экстремума функции
- Тема 2: Нейронные сети. Алгоритм обратного распространения ошибки (backpropagation)






