Видеокурсы

Материал из Олимпиадное программирование в УлГТУ
Перейти к навигации Перейти к поиску

Лекции Летней компьютерной школы

Темы: стиль программирования, сложность алгоритмов (ясное и наглядное изложение), логические и битовые операции, использование битмасок; (...)

Лекции Зимней школы

Лекции КФУ

Семинары УрФУ и курсы СКБ Контур

Короткий (~1 час) текстовый курс, содержащий задачи на определение Θ-оценок предложенного кода. Также содержит краткие теоретические разделы.

Курсы МФТИ

Курсы ИТМО

Темы: асимптотические обозначения, сортировка вставками; сортировка слиянием, быстрая сортировка, Ω-оценка сортировок сравнением; сортировка подсчётом, цифровая сортировка, карманная сортировка; стек, очередь, списки, двоичные деревья; двоичная куча, сортировка кучей, очередь с приоритетами; двоичный поиск, двоичные деревья поиска; балансирующиеся двоичные деревья (АВЛ-деревья, Splay-деревья); хеш-таблицы, хеш-функции, методы открытой адресации; поиск подстрок, алгоритм Рабина-Карпа; префикс-функция, Z-функция, алгоритм Бойера-Мура.
Лекции достаточно краткие, часто в ущерб понятности. В задачах попадаются сложный ввод/вывод и жёсткие ограничения.

Курсы Computer Science Center

Темы: d-куча, сливаемые кучи (левосторонние, биномиальные, фибоначчиевы; тонкие, Бродала-Окасаки); splay-деревья; TANGO-деревья; (...)
Темы: числа Фибоначчи, НОД, асимптотические обозначения; жадные алгоритмы (покрытие точек отрезками, выбор заявок, максимальное независимое множество, непрерывный рюкзак, коды Хаффмана), очереди с приоритетами; divide and conquer (двоичный поиск, умножение Карацубы, умножение Штрассена), сортировки (слиянием, Ω-оценка сортировок сравнением, быстрая, порядковые статистики, кучей, подсчётом), мастер-теорема; динамическое программирование (наибольшая возрастающая подпоследовательность, редакционное расстояние, целочисленный рюкзак, перемножение матриц, независимое множество максимального веса). Разбор решений на C++, Python, Java.
Темы: массивы, списки, стек (скобочная последовательность, стек с минимумом), очередь (очередь на двух стеках, минимум в окне), деревья, расширяющийся массив; очередь с приоритетом, куча, сортировка кучей; система непересекающихся множеств + эвристики; хеш-таблицы, разрешение коллизий, универсальное хеширование, алгоритм Рабина-Карпа; деревья поиска, АВЛ-деревья; АВЛ + count/merge/split, АВЛ + сумма на отрезке, АВЛ + неявный ключ; splay-деревья.

Курсы Школы анализа данных Яндекса

Вебинары Ф. В. Меньшикова (разбор задач acmp.ru)

Лекции CodeChef

Курсы O'Reilly Media

Курс на английском языке от соавтора книги «Algorithms in a Nutshell». Полная версия видео может быть найдена в Интернете. Слайды + живые примеры программ на Python, наглядно демонстрируется время работы.
Кратко рассматриваются: двоичный поиск, двоичные деревья поиска, O-оценка, сортировка слиянием, быстрое возведение в степень, brute-force, kd-деревья, представление графов, DFS, Флойд, ДП (числа Фибоначчи и редакционное расстояние), куча и сортировка кучей, Дейкстра, Прим.

Курсы университетов США

MIT:

Princeton:

Stanford:

UC San Diego:

Темы: стресс-тестирование; числа Фибоначчи за O(N), алгоритм Евклида, асимптотические обозначения; жадные алгоритмы (заправка машины, покрытие точек единичными отрезками, непрерывный рюкзак); divide and conquer (двоичный поиск, умножение многочленов, мастер-теорема), сортировки (выбором, слиянием, быстрая, подсчётом, Ω-оценка сортировок сравнением); динамическое программирование (размен монет, рюкзак с повторениями, рюкзак без повторений, расстановка скобок).
Темы: асимптотические обозначения, классы сложности, основы C++, псевдослучайные числа, битовые операции, командная строка Unix, git; массивы, связные списки, списки с пропусками, циклические массивы, АТД (дек, очередь, стек), итераторы; деревья, кучи, двоичные деревья поиска, декартовы деревья, АВЛ-деревья, красно-чёрные деревья, B-деревья, B+-деревья; графы, представление графов, BFS, DFS, алгоритм Дейкстры, MST, DSU; хеширование, хеш-таблицы, коллизии и их разрешение (открытая адресация, метод цепочек, cuckoo hashing), hash maps; множества и словари (на списках, массивах, деревьях, хеш-таблицах, борах, троичных деревьях поиска); кодирование, энтропия, сжатие Хаффмана, побитовый ввод-вывод; резюме по структурам данных.
Курс является текстовым, но содержит колоссальное количество хорошо структурированной информации о структурах данных. Имеются тесты и задачи на программирование, оба вида заданий очень просты.

Stony Brook University: