Видеокурсы: различия между версиями
Перейти к навигации
Перейти к поиску
Ctrlalt (обсуждение | вклад) |
Ctrlalt (обсуждение | вклад) |
||
(не показаны 33 промежуточные версии этого же участника) | |||
Строка 3: | Строка 3: | ||
* [http://sis.khashaev.ru/ Видеозаписи лекций ЛКШ] | * [http://sis.khashaev.ru/ Видеозаписи лекций ЛКШ] | ||
* [http://www. | * [http://www.youtube.com/playlist?list=PLDrmKwRSNx7IYXDzTbe6eZbSaKKHKtItb ЛКШ.2008.Подмосковье, параллель B] (YouTube; О. Давыдов, Р. Сатюков; 2008) | ||
* [http://www. | * [http://www.youtube.com/playlist?list=PLDrmKwRSNx7Jl8Fon2wRh4tCV3PeBUKmf ЛКШ.2008.Подмосковье, параллель B'] (YouTube; С. Копелиович, О. Пестов, С. Мельников; 2008) | ||
* [http://www. | * [http://www.youtube.com/playlist?list=PLDrmKwRSNx7KcHxyf9hSmF3fTLKSwujkM ЛКШ.2008.Подмосковье, параллель C] (YouTube; А. Станкевич, К. Абакумов, М. Мухачева; 2008) | ||
* [http://www. | * [http://www.youtube.com/playlist?list=PLDrmKwRSNx7LxRVAufeIVFFLk4jwlJBT5 ЛКШ.2008.Подмосковье, параллель C'] (YouTube; В. Гуровиц, В. Кошелёв, П. Осипов, О. Пакуляк; 2008) | ||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: стиль программирования, сложность алгоритмов (ясное и наглядное изложение), логические и битовые операции, использование битмасок; (...)</span> | |||
<!-- | <!-- | ||
* [http://www.intuit.ru/studies/courses/1027/307/info ЛКШ.2008.Подмосковье, спецкурс Введение в проективную геометрию] (НОУ ИНТУИТ; А. Феськов; 2008) | * [http://www.intuit.ru/studies/courses/1027/307/info ЛКШ.2008.Подмосковье, спецкурс Введение в проективную геометрию] (НОУ ИНТУИТ; А. Феськов; 2008) | ||
Строка 14: | Строка 15: | ||
* [http://www.intuit.ru/studies/courses/1011/309/info ЛКШ.2008.Подмосковье, спецкурс Введение в БД] (НОУ ИНТУИТ; В. Гуровиц; 2008) | * [http://www.intuit.ru/studies/courses/1011/309/info ЛКШ.2008.Подмосковье, спецкурс Введение в БД] (НОУ ИНТУИТ; В. Гуровиц; 2008) | ||
--> | --> | ||
* Спецкурсы ЛКШ.2008.Подмосковье: [http://www. | * Спецкурсы ЛКШ.2008.Подмосковье: [http://www.youtube.com/playlist?list=PLDrmKwRSNx7KT02ctJY70hzHCpmf2xV1w «Введение в проективную геометрию»], [http://www.youtube.com/playlist?list=PLDrmKwRSNx7KqPAXt8N3HsjstZLYmnfsN «Мышление, вычисления и ИИ»], [http://www.youtube.com/playlist?list=PLDrmKwRSNx7JqfGYA01i9rPIR6rmdYwKg «Избирательные системы»], [http://www.youtube.com/playlist?list=PLDrmKwRSNx7KoNjxuaqvdaPZ4C0bPhMvh «Элементы линейной алгебры»], [http://www.youtube.com/playlist?list=PLDrmKwRSNx7LI_umdfXOeOJWjoDn6qvgN «Введение в БД»] | ||
== Лекции Зимней школы == | == Лекции Зимней школы == | ||
* [http:// | * [http://www.youtube.com/channel/UCBLUcL8gSd5LbCECHp23aTA Видеозаписи лекций Зимней школы ХНУРЭ] (YouTube; коллектив авторов; 2008–2014) | ||
== | == Курсы ИТМО и СПбГУ == | ||
* [http:// | * [http://openedu.ru/course/ITMOUniversity/PADS/ Алгоритмы программирования и структуры данных] (Openedu.ru; М. Буздалов, П. Маврин, Н. Нигматуллин; 2016) | ||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: асимптотические обозначения, сортировка вставками; сортировка слиянием, быстрая сортировка, Ω-оценка сортировок сравнением; сортировка подсчётом, цифровая сортировка, карманная сортировка; стек, очередь, списки, двоичные деревья; двоичная куча, сортировка кучей, очередь с приоритетами; двоичный поиск, двоичные деревья поиска; балансирующиеся двоичные деревья (АВЛ-деревья, Splay-деревья); хеш-таблицы, хеш-функции, методы открытой адресации; поиск подстрок, алгоритм Рабина-Карпа; префикс-функция, Z-функция, алгоритм Бойера-Мура.</span> | |||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Лекции достаточно краткие, часто в ущерб понятности. В задачах попадаются сложный ввод/вывод и жёсткие ограничения.</span> | |||
* <span style="background-color: #f00">–</span> [http://www.coursera.org/learn/competitive-programming-core-skills/ Competitive Programmer's Core Skills] (Coursera; A. Lopatin, A. Kulikov, A. Logunov, K. Simonov; 2018) | |||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Нет, нет и нет. Чудовищный уровень английского (у Логунова и Симонова), краткие лекции, платная практика.</span> | |||
== Курсы КФУ == | |||
* [http://www.youtube.com/playlist?list=PL_9FdAhNCqihb-FFh-19A1nOjYHtJ65nA Видеозаписи лекций ЗШОП КФУ, начинающая группа] (YouTube; К. Хадиев, 2016) | |||
== Курсы МФТИ == | |||
* [http://www.youtube.com/playlist?list=PLDrmKwRSNx7L3YYWrWp9gnXG0rH05mOw8 Алгоритмы: построение и анализ] (YouTube; Д. Швед; 2010) | |||
* [http://www.youtube.com/playlist?list=PL4_hYwCyhAvaVUrDMrAvkiDetyCtMkzMv Алгоритмы и структуры данных] (YouTube; М. Тихомиров; 2019) | |||
== Курсы Самарского университета == | |||
* <span style="background-color: #0f0">+</span> [http://stepik.org/course/4603/syllabus Математика для олимпиад по программированию] (Stepik; Н. Бондаренко; 2018) | |||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: комбинаторика, теория чисел, геометрия, инварианты и полуинварианты, теория игр. Задачи подчас сложные.</span> | |||
* [http://www.coursera.org/learn/sportivnoe-programmirovanie/ Спортивное программирование] (Coursera; Н. Бондаренко; 2019) | |||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: рекурсивный перебор (размещения с повторениями, перестановки, скобочные последовательности, разбиения на слагаемые, коммивояжёр); жадные алгоритмы (размен монет, заказы с дедлайнами, выбор заявок, непрерывный рюкзак); ДП (замощение домино, путь в таблице, префиксные суммы 1d/2d, размен монет, рюкзак, НОП); битовые маски (операции, перебор подмножеств, динамика по маскам, коммивояжёр, динамика по профилю).</span> | |||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Приятный курс. Тот случай, когда лекции, несмотря на краткость, очень выгодно отличаются от, например, петербургских. Есть практические задачи. Экзамен платный.</span> | |||
== Курсы УрФУ и СКБ Контур == | |||
* [http://www.youtube.com/playlist?list=PLtb_PNVHdsV4qZgyqMFC6Tq2wsA0CybJB Видеозаписи семинаров Уральского федерального университета] (YouTube; М. Рубинчик; 2013) | |||
* [http://www.youtube.com/playlist?list=PLSO6QI4DFZ8e_88STemeIgLL7j68EOYyi Видеозаписи семинаров Уральского федерального университета] (YouTube; М. Рубинчик; 2013–2017) | |||
* <span style="background-color: #0f0">+</span> [http://ulearn.me/Course/complexity Оценка сложности алгоритмов] (Ulearn; 2018) | |||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Короткий (~1 час) текстовый курс, содержащий задачи на определение Θ-оценок предложенного кода. Также содержит краткие теоретические разделы.</span> | |||
== Курсы Школы анализа данных Яндекса == | |||
* [http://www.youtube.com/playlist?list=PLJOzdkh8T5koEPv-R5W0ovmL_T2BjB1HX Алгоритмы и структуры данных поиска] (YouTube; М. Бабенко; 2012) | |||
== Курсы Mail.Ru Group == | |||
* <span style="background-color: #f00">–</span> [http://stepik.org/156 Алгоритмы и структуры данных] (Stepik; С. Мацкевич; 2015) | |||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Эталонный отвратительный курс. Обрывочные, сумбурные лекции, малое количество задач, малое количество тестов в задачах. Шквал гневных комментариев от слушателей.</span> | |||
== Курсы Computer Science Center == | == Курсы Computer Science Center == | ||
Строка 29: | Строка 67: | ||
* [http://www.lektorium.tv/course/?id=22843 Алгоритмы и структуры данных 2] (Lektorium; А. Куликов, М. Дворкин; 2012) | * [http://www.lektorium.tv/course/?id=22843 Алгоритмы и структуры данных 2] (Lektorium; А. Куликов, М. Дворкин; 2012) | ||
* [http://www.lektorium.tv/course/?id=22926 Дополнительные главы алгоритмов] (Lektorium; А. Станкевич; 2013) | * [http://www.lektorium.tv/course/?id=22926 Дополнительные главы алгоритмов] (Lektorium; А. Станкевич; 2013) | ||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: d-куча, сливаемые кучи (левосторонние, биномиальные, фибоначчиевы; тонкие, Бродала-Окасаки); splay-деревья; TANGO-деревья; (...)</span> | |||
* [http://www.youtube.com/playlist?list=PLlb7e2G7aSpQutUr7qYIunvm04cqdr5mx Алгоритмы и структуры данных] (Stepik/YouTube; А. Куликов; 2014) | |||
* <span style="background-color: #0f0">+</span> [http://stepik.org/217 Алгоритмы: теория и практика. Методы] (Stepik; А. Куликов; 2015) | |||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: числа Фибоначчи, НОД, асимптотические обозначения; жадные алгоритмы (покрытие точек отрезками, выбор заявок, максимальное независимое множество, непрерывный рюкзак, коды Хаффмана), очереди с приоритетами; divide and conquer (двоичный поиск, умножение Карацубы, умножение Штрассена), сортировки (слиянием, Ω-оценка сортировок сравнением, быстрая, порядковые статистики, кучей, подсчётом), мастер-теорема; динамическое программирование (наибольшая возрастающая подпоследовательность, редакционное расстояние, целочисленный рюкзак, перемножение матриц, независимое множество максимального веса). Разбор решений на C++, Python, Java.</span> | |||
* <span style="background-color: #0f0">+</span> [http://stepik.org/1547 Алгоритмы: теория и практика. Структуры данных] (Stepik; А. Куликов; 2016) | |||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: массивы, списки, стек (скобочная последовательность, стек с минимумом), очередь (очередь на двух стеках, минимум в окне), деревья, расширяющийся массив; очередь с приоритетом, куча, сортировка кучей; система непересекающихся множеств + эвристики; хеш-таблицы, разрешение коллизий, универсальное хеширование, алгоритм Рабина-Карпа; деревья поиска, АВЛ-деревья; АВЛ + count/merge/split, АВЛ + сумма на отрезке, АВЛ + неявный ключ; splay-деревья.</span> | |||
== Курсы | == Вебинары Ф. В. Меньшикова (разбор задач acmp.ru) == | ||
* [http://www.youtube.com/playlist?list=PLIEv2lyiPlJQuuDEnAPfa4iybE7GU62h4 Олимпиадное программирование с нуля на Java] (YouTube; Ф. Меньшиков; 2016–) | |||
* [http://www.youtube.com/playlist?list=PLES6U-jjEXseQ6UBxScgMsJfHPaq72w3Y 3.5 задачи в неделю] (YouTube; Ф. Меньшиков; 2016–) | |||
== Курсы CodeChef == | |||
* [http://www.youtube.com/playlist?list=PLi0ZM-RCX5nsTc2Z6woHr5qoF6n3b-thO CodeChef's Indian Programming Camp 2016] (YouTube; коллектив авторов; 2016) | |||
== Курсы O'Reilly Media == | |||
* [http:// | * [http://shop.oreilly.com/product/0636920039884.do Learning Data Structures and Algorithms] (O'Reilly Media; R. Stephens; 2015) | ||
* [http://shop.oreilly.com/product/110000667.do Working with Algorithms in Python] (O'Reilly Media; G. T. Heineman; 2014) | |||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Курс на английском языке от соавтора книги «Algorithms in a Nutshell». Полная версия видео может быть найдена в Интернете. Слайды + живые примеры программ на Python, наглядно демонстрируется время работы.<br>Кратко рассматриваются: двоичный поиск, двоичные деревья поиска, O-оценка, сортировка слиянием, быстрое возведение в степень, brute-force, kd-деревья, представление графов, DFS, Флойд, ДП (числа Фибоначчи и редакционное расстояние), куча и сортировка кучей, Дейкстра, Прим.</span> | |||
== Курсы университетов США == | == Курсы университетов США == | ||
* [http:// | MIT: | ||
* [http:// | * [http://www.youtube.com/playlist?list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb MIT 6.006 — Introduction to Algorithms] (YouTube; E. Demaine; 2011) | ||
* [http://www.coursera.org/ | * [http://www.youtube.com/playlist?list=PL8B24C31197EC371C MIT 6.046J — Introduction to Algorithms (SMA 5503)] (YouTube; C. Leiserson, E. Demaine; 2005) | ||
* [http://www.coursera.org/ | * [http://www.youtube.com/playlist?list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp MIT 6.046J — Design and Analysis of Algorithms] (YouTube; E. Demaine, S. Devadas, N. Lynch; 2015) | ||
* [http://www.coursera.org/ | * [http://www.youtube.com/playlist?list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf MIT 6.851 — Advanced Data Structures] (YouTube; E. Demaine; 2012) | ||
* [http://www.coursera.org/ | |||
* [http://www.coursera.org/ | Princeton: | ||
* [http://www.coursera.org/ | * <span style="background-color: #0f0">+</span> [http://www.coursera.org/learn/algorithms-part1 Algorithms, Part I] (Coursera; R. Sedgewick, K. Wayne; 2012) | ||
* [http://www. | * <span style="background-color: #0f0">+</span> [http://www.coursera.org/learn/algorithms-part2 Algorithms, Part II] (Coursera; R. Sedgewick, K. Wayne; 2012) | ||
* [http://www. | * [http://www.coursera.org/learn/analysis-of-algorithms Analytic Combinatorics, Part I] (Coursera; R. Sedgewick; 2013) | ||
* [http://www.coursera.org/learn/analytic-combinatorics Analytic Combinatorics, Part II] (Coursera; R. Sedgewick; 2013) | |||
Stanford: | |||
* [http://www.coursera.org/specializations/algorithms Courcera Algorithms Specialization]: | |||
:* [http://www.coursera.org/learn/algorithms-divide-conquer Divide and Conquer, Sorting and Searching, and Randomized Algorithms] (Coursera; T. Roughgarden; 2012) | |||
:* [http://www.coursera.org/learn/algorithms-graphs-data-structures Graph Search, Shortest Paths, and Data Structures] (Coursera; T. Roughgarden; 2012) | |||
:* [http://www.coursera.org/learn/algorithms-greedy Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming] (Coursera; T. Roughgarden; 2012) | |||
:* [http://www.coursera.org/learn/algorithms-npcomplete Shortest Paths Revisited, NP-Complete Problems and What To Do About Them] (Coursera; T. Roughgarden; 2012) | |||
UC San Diego: | |||
* [http://www.coursera.org/specializations/data-structures-algorithms Coursera Data Structures and Algorithms Specialization]: | |||
:* [http://www.coursera.org/learn/algorithmic-toolbox Algorithmic Toolbox] (Coursera; D. Kane, A. Kulikov, M. Levin, P. Pevzner, N. Rhodes; 2016) | |||
:: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: стресс-тестирование; числа Фибоначчи за O(N), алгоритм Евклида, асимптотические обозначения; жадные алгоритмы (заправка машины, покрытие точек единичными отрезками, непрерывный рюкзак); divide and conquer (двоичный поиск, умножение многочленов, мастер-теорема), сортировки (выбором, слиянием, быстрая, подсчётом, Ω-оценка сортировок сравнением); динамическое программирование (размен монет, рюкзак с повторениями, рюкзак без повторений, расстановка скобок).</span> | |||
:* [http://www.coursera.org/learn/data-structures Data Structures] (Coursera; D. Kane, A. Kulikov, M. Levin, N. Rhodes; 2016) | |||
:* [http://www.coursera.org/learn/algorithms-on-graphs Algorithms on Graphs] (Coursera; D. Kane, A. Kulikov, M. Levin, N. Rhodes; 2016) | |||
:* [http://www.coursera.org/learn/algorithms-on-strings Algorithms on Strings] (Coursera; A. Kulikov, M. Levin, P. Pevzner, N. Rhodes; 2016) | |||
:* [http://www.coursera.org/learn/advanced-algorithms-and-complexity Advanced Algorithms and Complexity] (Coursera; D. Kane, A. Kulikov, M. Levin, N. Rhodes; 2016) | |||
:* [http://www.coursera.org/learn/assembling-genomes Genome Assembly Programming Challenge] (Coursera; A. Kulikov, M. Levin, P. Pevzner, N. Rhodes; 2016) | |||
* <span style="background-color: #0f0">+</span> [http://stepik.org/579 Data Structures] (Stepic; N. Moshiri, L. Izhikevich; 2016) | |||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: асимптотические обозначения, классы сложности, основы C++, псевдослучайные числа, битовые операции, командная строка Unix, git; массивы, связные списки, списки с пропусками, циклические массивы, АТД (дек, очередь, стек), итераторы; деревья, кучи, двоичные деревья поиска, декартовы деревья, АВЛ-деревья, красно-чёрные деревья, B-деревья, B+-деревья; графы, представление графов, BFS, DFS, алгоритм Дейкстры, MST, DSU; хеширование, хеш-таблицы, коллизии и их разрешение (открытая адресация, метод цепочек, cuckoo hashing), hash maps; множества и словари (на списках, массивах, деревьях, хеш-таблицах, борах, троичных деревьях поиска); кодирование, энтропия, сжатие Хаффмана, побитовый ввод-вывод; резюме по структурам данных.<br>Курс является текстовым, но содержит колоссальное количество хорошо структурированной информации о структурах данных. Имеются тесты и задачи на программирование, оба вида заданий очень просты.</span> | |||
Stony Brook University: | |||
* [http://www.youtube.com/playlist?list=PL07B3F10B48592010 Programming Challenges HKUST] (YouTube; S. Skiena; 2009) | |||
* [http://www.youtube.com/playlist?list=PLOtl7M3yp-DX32N0fVIyvn7ipWKNGmwpp Analysis of Algorithms] (YouTube; S. Skiena; 2016) | |||
== Курсы по языкам программирования == | |||
C++: | |||
* <span style="background-color: #0f0">+</span> [http://stepik.org/course/363 Введение в программирование (C++)] (Stepic; Яндекс/ВШЭ; М. Густокашин; 2015) | |||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Курс для начинающих, содержащий короткие лекции и большое количество задач.<br>Темы: целые числа, условный оператор, цикл while, действительные числа, цикл for и массивы, двумерные массивы, функции и рекурсия, строки и символы, словари и множества, стандартные алгоритмы STL.</span> | |||
* [http://www.coursera.org/learn/c-plus-plus-white Основы разработки на C++: белый пояс] (Coursera; Яндекс/МФТИ; И. Лежанкин, Е. Парамонов, А. Полднев, И. Шишков; 2018) | |||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Курс платный, но видео и некоторые задания бесплатны (имеет смысл только смотреть видео). Любопытная идея — сразу давать сложные вещи, позволяющие решать практические задачи, а внутреннее устройство разбирать после или не разбирать совсем.<br>Темы: ввод-вывод, простые типы (int, double) и коллекции (vector, set, string), работа с Eclipse, операции, принципы тестирования, if, while, range-based for; функции, передача параметров, vector, map, set; алгоритмы (min, max, sort), лямбда-функции, области видимости, структуры, классы, методы, конструкторы, деструкторы; работа с файлами, перегрузка операторов; исключения.</span> | |||
* [http://www.coursera.org/learn/c-plus-plus-yellow Основы разработки на C++: жёлтый пояс] (Coursera; Яндекс/МФТИ; И. Лежанкин, Е. Парамонов, А. Полднев, И. Шишков; 2018) | |||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">См. замечания к предыдущему.<br>Темы: целочисленные типы, перечисления, кортежи, пары, шаблоны функций; unit-тестирование, разработка фреймворка для тестирования на assert'ах; заголовочные файлы, #include, многофайловые проекты; итераторы, использование итераторов в алгоритмах, дек, очередь, стек, алгоритмы поиска; наследование, protected, порядок инициализации, полиморфизм, виртуальные методы, shared_ptr.</span> | |||
* [http://stepik.org/course/7 Программирование на языке C++] (Stepic; CSC; А. Смаль; 2015) | |||
* [http://stepik.org/course/3206 Программирование на языке C++ (продолжение)] (Stepic; CSC; А. Смаль; 2017) | |||
Python | |||
* [http://www.coursera.org/learn/python-osnovy-programmirovaniya Основы программирования на Python] (Coursera; Яндекс/ВШЭ; М. Густокашин; 2017) | |||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Своеобразный аналог курса по C++ того же автора.</span> |
Версия от 22:01, 22 августа 2019
Лекции Летней компьютерной школы
- Видеозаписи лекций ЛКШ
- ЛКШ.2008.Подмосковье, параллель B (YouTube; О. Давыдов, Р. Сатюков; 2008)
- ЛКШ.2008.Подмосковье, параллель B' (YouTube; С. Копелиович, О. Пестов, С. Мельников; 2008)
- ЛКШ.2008.Подмосковье, параллель C (YouTube; А. Станкевич, К. Абакумов, М. Мухачева; 2008)
- ЛКШ.2008.Подмосковье, параллель C' (YouTube; В. Гуровиц, В. Кошелёв, П. Осипов, О. Пакуляк; 2008)
- Темы: стиль программирования, сложность алгоритмов (ясное и наглядное изложение), логические и битовые операции, использование битмасок; (...)
- Спецкурсы ЛКШ.2008.Подмосковье: «Введение в проективную геометрию», «Мышление, вычисления и ИИ», «Избирательные системы», «Элементы линейной алгебры», «Введение в БД»
Лекции Зимней школы
- Видеозаписи лекций Зимней школы ХНУРЭ (YouTube; коллектив авторов; 2008–2014)
Курсы ИТМО и СПбГУ
- Алгоритмы программирования и структуры данных (Openedu.ru; М. Буздалов, П. Маврин, Н. Нигматуллин; 2016)
- Темы: асимптотические обозначения, сортировка вставками; сортировка слиянием, быстрая сортировка, Ω-оценка сортировок сравнением; сортировка подсчётом, цифровая сортировка, карманная сортировка; стек, очередь, списки, двоичные деревья; двоичная куча, сортировка кучей, очередь с приоритетами; двоичный поиск, двоичные деревья поиска; балансирующиеся двоичные деревья (АВЛ-деревья, Splay-деревья); хеш-таблицы, хеш-функции, методы открытой адресации; поиск подстрок, алгоритм Рабина-Карпа; префикс-функция, Z-функция, алгоритм Бойера-Мура.
- Лекции достаточно краткие, часто в ущерб понятности. В задачах попадаются сложный ввод/вывод и жёсткие ограничения.
- – Competitive Programmer's Core Skills (Coursera; A. Lopatin, A. Kulikov, A. Logunov, K. Simonov; 2018)
- Нет, нет и нет. Чудовищный уровень английского (у Логунова и Симонова), краткие лекции, платная практика.
Курсы КФУ
- Видеозаписи лекций ЗШОП КФУ, начинающая группа (YouTube; К. Хадиев, 2016)
Курсы МФТИ
- Алгоритмы: построение и анализ (YouTube; Д. Швед; 2010)
- Алгоритмы и структуры данных (YouTube; М. Тихомиров; 2019)
Курсы Самарского университета
- + Математика для олимпиад по программированию (Stepik; Н. Бондаренко; 2018)
- Темы: комбинаторика, теория чисел, геометрия, инварианты и полуинварианты, теория игр. Задачи подчас сложные.
- Спортивное программирование (Coursera; Н. Бондаренко; 2019)
- Темы: рекурсивный перебор (размещения с повторениями, перестановки, скобочные последовательности, разбиения на слагаемые, коммивояжёр); жадные алгоритмы (размен монет, заказы с дедлайнами, выбор заявок, непрерывный рюкзак); ДП (замощение домино, путь в таблице, префиксные суммы 1d/2d, размен монет, рюкзак, НОП); битовые маски (операции, перебор подмножеств, динамика по маскам, коммивояжёр, динамика по профилю).
- Приятный курс. Тот случай, когда лекции, несмотря на краткость, очень выгодно отличаются от, например, петербургских. Есть практические задачи. Экзамен платный.
Курсы УрФУ и СКБ Контур
- Видеозаписи семинаров Уральского федерального университета (YouTube; М. Рубинчик; 2013)
- Видеозаписи семинаров Уральского федерального университета (YouTube; М. Рубинчик; 2013–2017)
- + Оценка сложности алгоритмов (Ulearn; 2018)
- Короткий (~1 час) текстовый курс, содержащий задачи на определение Θ-оценок предложенного кода. Также содержит краткие теоретические разделы.
Курсы Школы анализа данных Яндекса
- Алгоритмы и структуры данных поиска (YouTube; М. Бабенко; 2012)
Курсы Mail.Ru Group
- – Алгоритмы и структуры данных (Stepik; С. Мацкевич; 2015)
- Эталонный отвратительный курс. Обрывочные, сумбурные лекции, малое количество задач, малое количество тестов в задачах. Шквал гневных комментариев от слушателей.
Курсы Computer Science Center
- Алгоритмы и структуры данных 1 (Lektorium; А. Куликов, М. Дворкин; 2011)
- Алгоритмы и структуры данных 2 (Lektorium; А. Куликов, М. Дворкин; 2012)
- Дополнительные главы алгоритмов (Lektorium; А. Станкевич; 2013)
- Темы: d-куча, сливаемые кучи (левосторонние, биномиальные, фибоначчиевы; тонкие, Бродала-Окасаки); splay-деревья; TANGO-деревья; (...)
- Алгоритмы и структуры данных (Stepik/YouTube; А. Куликов; 2014)
- + Алгоритмы: теория и практика. Методы (Stepik; А. Куликов; 2015)
- Темы: числа Фибоначчи, НОД, асимптотические обозначения; жадные алгоритмы (покрытие точек отрезками, выбор заявок, максимальное независимое множество, непрерывный рюкзак, коды Хаффмана), очереди с приоритетами; divide and conquer (двоичный поиск, умножение Карацубы, умножение Штрассена), сортировки (слиянием, Ω-оценка сортировок сравнением, быстрая, порядковые статистики, кучей, подсчётом), мастер-теорема; динамическое программирование (наибольшая возрастающая подпоследовательность, редакционное расстояние, целочисленный рюкзак, перемножение матриц, независимое множество максимального веса). Разбор решений на C++, Python, Java.
- + Алгоритмы: теория и практика. Структуры данных (Stepik; А. Куликов; 2016)
- Темы: массивы, списки, стек (скобочная последовательность, стек с минимумом), очередь (очередь на двух стеках, минимум в окне), деревья, расширяющийся массив; очередь с приоритетом, куча, сортировка кучей; система непересекающихся множеств + эвристики; хеш-таблицы, разрешение коллизий, универсальное хеширование, алгоритм Рабина-Карпа; деревья поиска, АВЛ-деревья; АВЛ + count/merge/split, АВЛ + сумма на отрезке, АВЛ + неявный ключ; splay-деревья.
Вебинары Ф. В. Меньшикова (разбор задач acmp.ru)
- Олимпиадное программирование с нуля на Java (YouTube; Ф. Меньшиков; 2016–)
- 3.5 задачи в неделю (YouTube; Ф. Меньшиков; 2016–)
Курсы CodeChef
- CodeChef's Indian Programming Camp 2016 (YouTube; коллектив авторов; 2016)
Курсы O'Reilly Media
- Learning Data Structures and Algorithms (O'Reilly Media; R. Stephens; 2015)
- Working with Algorithms in Python (O'Reilly Media; G. T. Heineman; 2014)
- Курс на английском языке от соавтора книги «Algorithms in a Nutshell». Полная версия видео может быть найдена в Интернете. Слайды + живые примеры программ на Python, наглядно демонстрируется время работы.
Кратко рассматриваются: двоичный поиск, двоичные деревья поиска, O-оценка, сортировка слиянием, быстрое возведение в степень, brute-force, kd-деревья, представление графов, DFS, Флойд, ДП (числа Фибоначчи и редакционное расстояние), куча и сортировка кучей, Дейкстра, Прим.
Курсы университетов США
MIT:
- MIT 6.006 — Introduction to Algorithms (YouTube; E. Demaine; 2011)
- MIT 6.046J — Introduction to Algorithms (SMA 5503) (YouTube; C. Leiserson, E. Demaine; 2005)
- MIT 6.046J — Design and Analysis of Algorithms (YouTube; E. Demaine, S. Devadas, N. Lynch; 2015)
- MIT 6.851 — Advanced Data Structures (YouTube; E. Demaine; 2012)
Princeton:
- + Algorithms, Part I (Coursera; R. Sedgewick, K. Wayne; 2012)
- + Algorithms, Part II (Coursera; R. Sedgewick, K. Wayne; 2012)
- Analytic Combinatorics, Part I (Coursera; R. Sedgewick; 2013)
- Analytic Combinatorics, Part II (Coursera; R. Sedgewick; 2013)
Stanford:
- Divide and Conquer, Sorting and Searching, and Randomized Algorithms (Coursera; T. Roughgarden; 2012)
- Graph Search, Shortest Paths, and Data Structures (Coursera; T. Roughgarden; 2012)
- Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming (Coursera; T. Roughgarden; 2012)
- Shortest Paths Revisited, NP-Complete Problems and What To Do About Them (Coursera; T. Roughgarden; 2012)
UC San Diego:
- Algorithmic Toolbox (Coursera; D. Kane, A. Kulikov, M. Levin, P. Pevzner, N. Rhodes; 2016)
- Темы: стресс-тестирование; числа Фибоначчи за O(N), алгоритм Евклида, асимптотические обозначения; жадные алгоритмы (заправка машины, покрытие точек единичными отрезками, непрерывный рюкзак); divide and conquer (двоичный поиск, умножение многочленов, мастер-теорема), сортировки (выбором, слиянием, быстрая, подсчётом, Ω-оценка сортировок сравнением); динамическое программирование (размен монет, рюкзак с повторениями, рюкзак без повторений, расстановка скобок).
- Data Structures (Coursera; D. Kane, A. Kulikov, M. Levin, N. Rhodes; 2016)
- Algorithms on Graphs (Coursera; D. Kane, A. Kulikov, M. Levin, N. Rhodes; 2016)
- Algorithms on Strings (Coursera; A. Kulikov, M. Levin, P. Pevzner, N. Rhodes; 2016)
- Advanced Algorithms and Complexity (Coursera; D. Kane, A. Kulikov, M. Levin, N. Rhodes; 2016)
- Genome Assembly Programming Challenge (Coursera; A. Kulikov, M. Levin, P. Pevzner, N. Rhodes; 2016)
- + Data Structures (Stepic; N. Moshiri, L. Izhikevich; 2016)
- Темы: асимптотические обозначения, классы сложности, основы C++, псевдослучайные числа, битовые операции, командная строка Unix, git; массивы, связные списки, списки с пропусками, циклические массивы, АТД (дек, очередь, стек), итераторы; деревья, кучи, двоичные деревья поиска, декартовы деревья, АВЛ-деревья, красно-чёрные деревья, B-деревья, B+-деревья; графы, представление графов, BFS, DFS, алгоритм Дейкстры, MST, DSU; хеширование, хеш-таблицы, коллизии и их разрешение (открытая адресация, метод цепочек, cuckoo hashing), hash maps; множества и словари (на списках, массивах, деревьях, хеш-таблицах, борах, троичных деревьях поиска); кодирование, энтропия, сжатие Хаффмана, побитовый ввод-вывод; резюме по структурам данных.
Курс является текстовым, но содержит колоссальное количество хорошо структурированной информации о структурах данных. Имеются тесты и задачи на программирование, оба вида заданий очень просты.
Stony Brook University:
- Programming Challenges HKUST (YouTube; S. Skiena; 2009)
- Analysis of Algorithms (YouTube; S. Skiena; 2016)
Курсы по языкам программирования
C++:
- + Введение в программирование (C++) (Stepic; Яндекс/ВШЭ; М. Густокашин; 2015)
- Курс для начинающих, содержащий короткие лекции и большое количество задач.
Темы: целые числа, условный оператор, цикл while, действительные числа, цикл for и массивы, двумерные массивы, функции и рекурсия, строки и символы, словари и множества, стандартные алгоритмы STL.
- Основы разработки на C++: белый пояс (Coursera; Яндекс/МФТИ; И. Лежанкин, Е. Парамонов, А. Полднев, И. Шишков; 2018)
- Курс платный, но видео и некоторые задания бесплатны (имеет смысл только смотреть видео). Любопытная идея — сразу давать сложные вещи, позволяющие решать практические задачи, а внутреннее устройство разбирать после или не разбирать совсем.
Темы: ввод-вывод, простые типы (int, double) и коллекции (vector, set, string), работа с Eclipse, операции, принципы тестирования, if, while, range-based for; функции, передача параметров, vector, map, set; алгоритмы (min, max, sort), лямбда-функции, области видимости, структуры, классы, методы, конструкторы, деструкторы; работа с файлами, перегрузка операторов; исключения.
- Основы разработки на C++: жёлтый пояс (Coursera; Яндекс/МФТИ; И. Лежанкин, Е. Парамонов, А. Полднев, И. Шишков; 2018)
- См. замечания к предыдущему.
Темы: целочисленные типы, перечисления, кортежи, пары, шаблоны функций; unit-тестирование, разработка фреймворка для тестирования на assert'ах; заголовочные файлы, #include, многофайловые проекты; итераторы, использование итераторов в алгоритмах, дек, очередь, стек, алгоритмы поиска; наследование, protected, порядок инициализации, полиморфизм, виртуальные методы, shared_ptr.
- Программирование на языке C++ (Stepic; CSC; А. Смаль; 2015)
- Программирование на языке C++ (продолжение) (Stepic; CSC; А. Смаль; 2017)
Python
- Основы программирования на Python (Coursera; Яндекс/ВШЭ; М. Густокашин; 2017)
- Своеобразный аналог курса по C++ того же автора.