Видеокурсы: различия между версиями

Материал из Олимпиадное программирование в УлГТУ
Перейти к навигации Перейти к поиску
Строка 86: Строка 86:
* [http://www.coursera.org/learn/analytic-combinatorics Analytic Combinatorics, Part II] (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]):
Stanford:
* [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/specializations/algorithms Courcera Algorithms Specialization]:
* [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-divide-conquer Divide and Conquer, Sorting and Searching, and Randomized Algorithms] (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-graphs-data-structures Graph Search, Shortest Paths, and Data Structures] (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)
:* [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]):
UC San Diego:
* [http://www.coursera.org/learn/algorithmic-toolbox Algorithmic Toolbox] (Coursera; D. Kane, A. Kulikov, M. Levin, P. Pevzner, N. Rhodes; 2016)
* [http://www.coursera.org/specializations/data-structures-algorithms Coursera Data Structures and Algorithms Specialization]:
: Темы: стресс-тестирование; числа Фибоначчи за O(N), алгоритм Евклида, асимптотические обозначения; жадные алгоритмы (заправка машины, покрытие точек единичными отрезками, непрерывный рюкзак); divide and conquer (двоичный поиск, умножение многочленов, мастер-теорема), сортировки (выбором, слиянием, быстрая, подсчётом, Ω-оценка сортировок сравнением); динамическое программирование (размен монет, рюкзак с повторениями, рюкзак без повторений, расстановка скобок).
:* [http://www.coursera.org/learn/algorithmic-toolbox Algorithmic Toolbox] (Coursera; D. Kane, A. Kulikov, M. Levin, P. Pevzner, N. Rhodes; 2016)
* [http://www.coursera.org/learn/data-structures Data Structures] (Coursera; D. Kane, A. Kulikov, M. Levin, N. Rhodes; 2016)
:: Темы: стресс-тестирование; числа Фибоначчи за O(N), алгоритм Евклида, асимптотические обозначения; жадные алгоритмы (заправка машины, покрытие точек единичными отрезками, непрерывный рюкзак); divide and conquer (двоичный поиск, умножение многочленов, мастер-теорема), сортировки (выбором, слиянием, быстрая, подсчётом, Ω-оценка сортировок сравнением); динамическое программирование (размен монет, рюкзак с повторениями, рюкзак без повторений, расстановка скобок).
* [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/data-structures Data Structures] (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/algorithms-on-graphs Algorithms on Graphs] (Coursera; D. Kane, A. Kulikov, M. Levin, 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/algorithms-on-strings Algorithms on Strings] (Coursera; A. Kulikov, M. Levin, P. Pevzner, N. Rhodes; 2016)
* [http://www.coursera.org/learn/assembling-genomes Genome Assembly Programming Challenge] (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)
* [http://stepik.org/579 Data Structures] (Stepic; N. Moshiri, L. Izhikevich; 2016)
: Темы: асимптотические обозначения, классы сложности, основы C++, псевдослучайные числа, битовые операции, командная строка Unix, git; массивы, связные списки, списки с пропусками, циклические массивы, АТД (дек, очередь, стек), итераторы; деревья, кучи, двоичные деревья поиска, декартовы деревья, АВЛ-деревья, красно-чёрные деревья, B-деревья, B+-деревья; графы, представление графов, BFS, DFS, алгоритм Дейкстры, MST, DSU; хеширование, хеш-таблицы, коллизии и их разрешение (открытая адресация, метод цепочек, cuckoo hashing), hash maps; множества и словари (на списках, массивах, деревьях, хеш-таблицах, борах, троичных деревьях поиска); кодирование, энтропия, сжатие Хаффмана, побитовый ввод-вывод; резюме по структурам данных.
: Курс является текстовым, но содержит колоссальное количество хорошо структурированной информации о структурах данных. Имеются тесты и задачи на программирование, оба вида заданий очень просты.


Stony Brook University:
Stony Brook University:
* [http://www.youtube.com/playlist?list=PL07B3F10B48592010 Programming Challenges HKUST] (YouTube; S. Skiena; 2009)
* [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)
* [http://www.youtube.com/playlist?list=PLOtl7M3yp-DX32N0fVIyvn7ipWKNGmwpp Analysis of Algorithms] (YouTube; S. Skiena; 2016)

Версия от 14:42, 5 июня 2017

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

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

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

Лекции КФУ

Семинары УрФУ

Курсы МФТИ

Курсы ИТМО

Темы: асимптотические обозначения, сортировка вставками; сортировка слиянием, быстрая сортировка, Ω-оценка сортировок сравнением; сортировка подсчётом, цифровая сортировка, карманная сортировка; стек, очередь, списки, двоичные деревья; двоичная куча, сортировка кучей, очередь с приоритетами; двоичный поиск, двоичные деревья поиска; балансирующиеся двоичные деревья (АВЛ-деревья, 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: