Алгоритмы и структуры данных, часть 1
Санкт-Петербург, осень 2017
Описание
Курс знакомит слушателей с базовыми алгоритмическими приёмами и структурами данных. Цели курса: изучить базовые алгоритмы и структуры данных; попрактиковаться использовать стандартные алгоритмические методы для решения вычислительных задач; попрактиковаться доказывать корректность и оценки на время работы алгоритмов; попрактиковаться писать надёжный, читаемый и поддерживаемый код; попрактиковаться тестировать и отлаживать код.
Содержание
- Скорость роста функций, время работы алгоритмов; жадные алгоритмы; разделяй и властвуй; динамическое программирование
- Базовые структуры (массивы, списки, стеки, очереди); очереди с приоритетами; системы непересекающихся множеств; хеш-таблицы; сбалансированные деревья
- Декомпозиция графов, пути в графах, минимальные остовные деревья
- Поиск образца в строке, суффиксное дерево, суффиксный массив, преобразование Барроуза–Уиллера
- Потоки в сетях, линейное программирование, NP-полные задачи, алгоритмы для NP-полных задач
Методы
Структуры данных
Алгоритмы на графах
Алгоритмы на строках
Алгоритмы и теория сложности
Оценка за курс
Оценка будет складываться из:
- Обратная связь по онлайн-курсу (10%)
- Теоретические задачи (45%)
- Задачи на программирование (45%)
Для получения оценки отлично
необходимо будет набрать хотя бы 80%, хорошо — хотя бы 70%, удовлетворительно — хотя бы 60% (данные проходные баллы могут слегка поменяться).