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

Материал из Олимпиадное программирование в УлГТУ
Перейти к навигации Перейти к поиску
 
(не показано 6 промежуточных версий этого же участника)
Строка 6: Строка 6:
* [http://www.youtube.com/playlist?list=PLDrmKwRSNx7Jl8Fon2wRh4tCV3PeBUKmf ЛКШ.2008.Подмосковье, параллель B'] (YouTube; С. Копелиович, О. Пестов, С. Мельников; 2008)
* [http://www.youtube.com/playlist?list=PLDrmKwRSNx7Jl8Fon2wRh4tCV3PeBUKmf ЛКШ.2008.Подмосковье, параллель B'] (YouTube; С. Копелиович, О. Пестов, С. Мельников; 2008)
* [http://www.youtube.com/playlist?list=PLDrmKwRSNx7KcHxyf9hSmF3fTLKSwujkM ЛКШ.2008.Подмосковье, параллель C] (YouTube; А. Станкевич, К. Абакумов, М. Мухачева; 2008)
* [http://www.youtube.com/playlist?list=PLDrmKwRSNx7KcHxyf9hSmF3fTLKSwujkM ЛКШ.2008.Подмосковье, параллель C] (YouTube; А. Станкевич, К. Абакумов, М. Мухачева; 2008)
* [http://www.youtube.com/playlist?list=PLDrmKwRSNx7LxRVAufeIVFFLk4jwlJBT5 ЛКШ.2008.Подмосковье, параллель C'] (YouTube; В. Гуровиц, В. Кошелёв, П. Осипов, О. Пакуляк; 2008)
* [http://www.youtube.com/playlist?list=PLDrmKwRSNx7LxRVAufeIVFFLk4jwlJBT5 ЛКШ.2008.Подмосковье, параллель C'] (YouTube; В. Гуровиц, В. Кошелёв, П. Осипов, О. Пакуляк; 2008) {{Comment|Темы: стиль программирования, сложность алгоритмов (ясное и наглядное изложение), логические и битовые операции, использование битмасок; (...)}}
: <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)
Строка 23: Строка 22:
== Курсы ИТМО и СПбГУ ==
== Курсы ИТМО и СПбГУ ==


* [http://openedu.ru/course/ITMOUniversity/PADS/ Алгоритмы программирования и структуры данных] (Openedu.ru; М. Буздалов, П. Маврин, Н. Нигматуллин; 2016)
* [http://openedu.ru/course/ITMOUniversity/PADS/ Алгоритмы программирования и структуры данных] (Openedu.ru; М. Буздалов, П. Маврин, Н. Нигматуллин; 2016) {{Comment|Темы: асимптотические обозначения, сортировка вставками; сортировка слиянием, быстрая сортировка, Ω-оценка сортировок сравнением; сортировка подсчётом, цифровая сортировка, карманная сортировка; стек, очередь, списки, двоичные деревья; двоичная куча, сортировка кучей, очередь с приоритетами; двоичный поиск, двоичные деревья поиска; балансирующиеся двоичные деревья (АВЛ-деревья, Splay-деревья); хеш-таблицы, хеш-функции, методы открытой адресации; поиск подстрок, алгоритм Рабина-Карпа; префикс-функция, Z-функция, алгоритм Бойера-Мура.<br>Лекции достаточно краткие, часто в ущерб понятности. В задачах попадаются сложный ввод/вывод и жёсткие ограничения.}}
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: асимптотические обозначения, сортировка вставками; сортировка слиянием, быстрая сортировка, Ω-оценка сортировок сравнением; сортировка подсчётом, цифровая сортировка, карманная сортировка; стек, очередь, списки, двоичные деревья; двоичная куча, сортировка кучей, очередь с приоритетами; двоичный поиск, двоичные деревья поиска; балансирующиеся двоичные деревья (АВЛ-деревья, Splay-деревья); хеш-таблицы, хеш-функции, методы открытой адресации; поиск подстрок, алгоритм Рабина-Карпа; префикс-функция, Z-функция, алгоритм Бойера-Мура.</span>
* {{BadBadge}} [http://www.coursera.org/learn/competitive-programming-core-skills/ Competitive Programmer's Core Skills] (Coursera; A. Lopatin, A. Kulikov, A. Logunov, K. Simonov; 2018) {{Comment|Нет, нет и нет. Чудовищный уровень английского (у Логунова и Симонова), краткие лекции, платная практика.}}
: <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/watch?v=apR9GhhjBjM&list=PLrS21S1jm43geDXVdeQy96P-f59pXeyPC Алгоритмы и структуры данных (1 семестр)] (YouTube; П. Маврин; 2019)
* [http://www.youtube.com/watch?v=apR9GhhjBjM&list=PLrS21S1jm43geDXVdeQy96P-f59pXeyPC Алгоритмы и структуры данных (1 семестр)] (YouTube; П. Маврин; 2019)
* [http://www.youtube.com/watch?v=PHL6gHLfBs8&list=PLrS21S1jm43huya9OjmrdzlXTMzQFzfw4 Алгоритмы и структуры данных (2 семестр)] (YouTube; П. Маврин; 2019)
* [http://www.youtube.com/watch?v=PHL6gHLfBs8&list=PLrS21S1jm43huya9OjmrdzlXTMzQFzfw4 Алгоритмы и структуры данных (2 семестр)] (YouTube; П. Маврин; 2019)
Строка 41: Строка 37:
* [http://www.youtube.com/playlist?list=PLDrmKwRSNx7L3YYWrWp9gnXG0rH05mOw8 Алгоритмы: построение и анализ] (YouTube; Д. Швед; 2010)
* [http://www.youtube.com/playlist?list=PLDrmKwRSNx7L3YYWrWp9gnXG0rH05mOw8 Алгоритмы: построение и анализ] (YouTube; Д. Швед; 2010)
* [http://www.youtube.com/playlist?list=PL4_hYwCyhAvaVUrDMrAvkiDetyCtMkzMv Алгоритмы и структуры данных] (YouTube; М. Тихомиров; 2019)
* [http://www.youtube.com/playlist?list=PL4_hYwCyhAvaVUrDMrAvkiDetyCtMkzMv Алгоритмы и структуры данных] (YouTube; М. Тихомиров; 2019)
* <span style="background-color: #f00">–</span> [http://stepik.org/64454 Быстрый старт в спортивное программирование] (Stepik; В. Невструев, Ф. Рухович, О. Христенко; 2020)
* {{BadBadge}} [http://stepik.org/64454 Быстрый старт в спортивное программирование] (Stepik; В. Невструев, Ф. Рухович, О. Христенко; 2020) {{Comment|Темы: асимптотические обозначения, 10^8, поиск второго максимума, префиксные суммы, бинпоиск; диапазоны целых типов, проверка на простоту, решето Эратосфена, операции по модулю, алгоритм Евклида (обычный и расширенный), быстрое возведение в степень, обратный элемент; динамическое программирование, путь в полосе и таблице, восстановление ответа, рюкзак; графы, dfs, bfs.}}
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: асимптотические обозначения, 10^8, поиск второго максимума, префиксные суммы, бинпоиск; диапазоны целых типов, проверка на простоту, решето Эратосфена, операции по модулю, алгоритм Евклида (обычный и расширенный), быстрое возведение в степень, обратный элемент; динамическое программирование, путь в полосе и таблице, восстановление ответа, рюкзак; графы, dfs, bfs.</span>


== Курсы Самарского университета ==
== Курсы Самарского университета ==


* <span style="background-color: #0f0">+</span> [http://stepik.org/course/4603/syllabus Математика для олимпиад по программированию] (Stepik; Н. Бондаренко; 2018)
* {{GoodBadge}} [http://stepik.org/course/4603/syllabus Математика для олимпиад по программированию] (Stepik; Н. Бондаренко; 2018) {{Comment|Темы: комбинаторика, теория чисел, геометрия, инварианты и полуинварианты, теория игр. Задачи подчас сложные.}}
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: комбинаторика, теория чисел, геометрия, инварианты и полуинварианты, теория игр. Задачи подчас сложные.</span>
* [http://www.coursera.org/learn/sportivnoe-programmirovanie/ Спортивное программирование] (Coursera; Н. Бондаренко; 2019) {{Comment|Темы: рекурсивный перебор (размещения с повторениями, перестановки, скобочные последовательности, разбиения на слагаемые, коммивояжёр); жадные алгоритмы (размен монет, заказы с дедлайнами, выбор заявок, непрерывный рюкзак); ДП (замощение домино, путь в таблице, префиксные суммы 1d/2d, размен монет, рюкзак, НОП); битовые маски (операции, перебор подмножеств, динамика по маскам, коммивояжёр, динамика по профилю).<br>Приятный курс. Тот случай, когда лекции, несмотря на краткость, очень выгодно отличаются от, например, петербургских. Есть практические задачи. Экзамен платный.}}
* [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>


== Курсы УрФУ и СКБ Контур ==
== Курсы УрФУ и СКБ Контур ==
Строка 56: Строка 48:
* [http://www.youtube.com/playlist?list=PLtb_PNVHdsV4qZgyqMFC6Tq2wsA0CybJB Видеозаписи семинаров Уральского федерального университета] (YouTube; М. Рубинчик; 2013)
* [http://www.youtube.com/playlist?list=PLtb_PNVHdsV4qZgyqMFC6Tq2wsA0CybJB Видеозаписи семинаров Уральского федерального университета] (YouTube; М. Рубинчик; 2013)
* [http://www.youtube.com/playlist?list=PLSO6QI4DFZ8e_88STemeIgLL7j68EOYyi Видеозаписи семинаров Уральского федерального университета] (YouTube; М. Рубинчик; 2013&ndash;2017)
* [http://www.youtube.com/playlist?list=PLSO6QI4DFZ8e_88STemeIgLL7j68EOYyi Видеозаписи семинаров Уральского федерального университета] (YouTube; М. Рубинчик; 2013&ndash;2017)
* <span style="background-color: #0f0">+</span> [http://ulearn.me/Course/complexity Оценка сложности алгоритмов] (Ulearn; 2018)
* {{GoodBadge}} [http://ulearn.me/Course/complexity Оценка сложности алгоритмов] (Ulearn; 2018) {{Comment|Короткий (~1 час) текстовый курс, содержащий задачи на определение &Theta;-оценок предложенного кода. Также содержит краткие теоретические разделы.}}
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Короткий (~1 час) текстовый курс, содержащий задачи на определение &Theta;-оценок предложенного кода. Также содержит краткие теоретические разделы.</span>


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


* [http://www.youtube.com/playlist?list=PLJOzdkh8T5koEPv-R5W0ovmL_T2BjB1HX Алгоритмы и структуры данных поиска] (YouTube; М. Бабенко; 2012)
* [http://www.youtube.com/playlist?list=PLJOzdkh8T5koEPv-R5W0ovmL_T2BjB1HX Алгоритмы и структуры данных поиска] (YouTube; М. Бабенко; 2012)
* [https://www.youtube.com/playlist?list=PL6Wui14DvQPySdPv5NUqV3i8sDbHkCKC5 Тренировки по алгоритмам] (YouTube; М. Густокашин; 2021)


== Курсы Mail.Ru Group ==
== Курсы Mail.Ru Group ==


* <span style="background-color: #f00">–</span> [http://stepik.org/156 Алгоритмы и структуры данных] (Stepik; С. Мацкевич; 2015)
* {{BadBadge}} [http://stepik.org/156 Алгоритмы и структуры данных] (Stepik; С. Мацкевич; 2015) {{Comment|Эталонный отвратительный курс. Обрывочные, сумбурные лекции, малое количество задач, малое количество тестов в задачах. Шквал гневных комментариев от слушателей.}}
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Эталонный отвратительный курс. Обрывочные, сумбурные лекции, малое количество задач, малое количество тестов в задачах. Шквал гневных комментариев от слушателей.</span>


== Курсы Computer Science Center ==
== Курсы Computer Science Center ==
Строка 72: Строка 63:
* [http://www.lektorium.tv/course/?id=22823 Алгоритмы и структуры данных 1] (Lektorium; А. Куликов, М. Дворкин; 2011)
* [http://www.lektorium.tv/course/?id=22823 Алгоритмы и структуры данных 1] (Lektorium; А. Куликов, М. Дворкин; 2011)
* [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) {{Comment|Темы: d-куча, сливаемые кучи (левосторонние, биномиальные, фибоначчиевы; тонкие, Бродала-Окасаки); splay-деревья; TANGO-деревья; (...)}}
: <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)
* [http://www.youtube.com/playlist?list=PLlb7e2G7aSpQutUr7qYIunvm04cqdr5mx Алгоритмы и структуры данных] (Stepik/YouTube; А. Куликов; 2014)
* <span style="background-color: #0f0">+</span> [http://stepik.org/217 Алгоритмы: теория и практика. Методы] (Stepik; А. Куликов; 2015)
* {{GoodBadge}} [http://stepik.org/217 Алгоритмы: теория и практика. Методы] (Stepik; А. Куликов; 2015) {{Comment|Темы: числа Фибоначчи, НОД, асимптотические обозначения; жадные алгоритмы (покрытие точек отрезками, выбор заявок, максимальное независимое множество, непрерывный рюкзак, коды Хаффмана), очереди с приоритетами; divide and conquer (двоичный поиск, умножение Карацубы, умножение Штрассена), сортировки (слиянием, &Omega;-оценка сортировок сравнением, быстрая, порядковые статистики, кучей, подсчётом), мастер-теорема; динамическое программирование (наибольшая возрастающая подпоследовательность, редакционное расстояние, целочисленный рюкзак, перемножение матриц, независимое множество максимального веса). Разбор решений на C++, Python, Java.}}
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: числа Фибоначчи, НОД, асимптотические обозначения; жадные алгоритмы (покрытие точек отрезками, выбор заявок, максимальное независимое множество, непрерывный рюкзак, коды Хаффмана), очереди с приоритетами; divide and conquer (двоичный поиск, умножение Карацубы, умножение Штрассена), сортировки (слиянием, &Omega;-оценка сортировок сравнением, быстрая, порядковые статистики, кучей, подсчётом), мастер-теорема; динамическое программирование (наибольшая возрастающая подпоследовательность, редакционное расстояние, целочисленный рюкзак, перемножение матриц, независимое множество максимального веса). Разбор решений на C++, Python, Java.</span>
* {{GoodBadge}} [http://stepik.org/1547 Алгоритмы: теория и практика. Структуры данных] (Stepik; А. Куликов; 2016) {{Comment|Темы: массивы, списки, стек (скобочная последовательность, стек с минимумом), очередь (очередь на двух стеках, минимум в окне), деревья, расширяющийся массив; очередь с приоритетом, куча, сортировка кучей; система непересекающихся множеств + эвристики; хеш-таблицы, разрешение коллизий, универсальное хеширование, алгоритм Рабина-Карпа; деревья поиска, АВЛ-деревья; АВЛ + count/merge/split, АВЛ + сумма на отрезке, АВЛ + неявный ключ; splay-деревья.}}
* <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) ==
== Вебинары Ф. В. Меньшикова (разбор задач acmp.ru) ==
Строка 84: Строка 72:
* [http://www.youtube.com/playlist?list=PLIEv2lyiPlJQuuDEnAPfa4iybE7GU62h4 Олимпиадное программирование с нуля на Java]  (YouTube; Ф. Меньшиков; 2016&ndash;)
* [http://www.youtube.com/playlist?list=PLIEv2lyiPlJQuuDEnAPfa4iybE7GU62h4 Олимпиадное программирование с нуля на Java]  (YouTube; Ф. Меньшиков; 2016&ndash;)
* [http://www.youtube.com/playlist?list=PLES6U-jjEXseQ6UBxScgMsJfHPaq72w3Y 3.5 задачи в неделю]  (YouTube; Ф. Меньшиков; 2016&ndash;)
* [http://www.youtube.com/playlist?list=PLES6U-jjEXseQ6UBxScgMsJfHPaq72w3Y 3.5 задачи в неделю]  (YouTube; Ф. Меньшиков; 2016&ndash;)
== Курсы CodeChef ==
* [http://www.youtube.com/playlist?list=PLi0ZM-RCX5nsTc2Z6woHr5qoF6n3b-thO CodeChef's Indian Programming Camp 2016] (YouTube; коллектив авторов; 2016)
== Курсы O'Reilly Media ==
* [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;">Курс на английском языке от соавтора книги &laquo;Algorithms in a Nutshell&raquo;. Полная версия видео может быть найдена в Интернете. Слайды + живые примеры программ на Python, наглядно демонстрируется время работы.<br>Кратко рассматриваются: двоичный поиск, двоичные деревья поиска, O-оценка, сортировка слиянием, быстрое возведение в степень, brute-force, kd-деревья, представление графов, DFS, Флойд, ДП (числа Фибоначчи и редакционное расстояние), куча и сортировка кучей, Дейкстра, Прим.</span>


== Курсы университетов США ==
== Курсы университетов США ==
Строка 104: Строка 82:


Princeton:
Princeton:
* <span style="background-color: #0f0">+</span> [http://www.coursera.org/learn/algorithms-part1 Algorithms, Part I] (Coursera; R. Sedgewick, K. Wayne; 2012)
* {{GoodBadge}} [http://www.coursera.org/learn/algorithms-part1 Algorithms, Part I] (Coursera; R. Sedgewick, K. Wayne; 2012)
* <span style="background-color: #0f0">+</span> [http://www.coursera.org/learn/algorithms-part2 Algorithms, Part II] (Coursera; R. Sedgewick, K. Wayne; 2012)
* {{GoodBadge}} [http://www.coursera.org/learn/algorithms-part2 Algorithms, Part II] (Coursera; R. Sedgewick, K. Wayne; 2012)
* [http://www.coursera.org/learn/analysis-of-algorithms Analytic Combinatorics, Part I] (Coursera; R. Sedgewick; 2013)
* [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)
* [http://www.coursera.org/learn/analytic-combinatorics Analytic Combinatorics, Part II] (Coursera; R. Sedgewick; 2013)


Stanford:
Stanford:
* [http://www.coursera.org/specializations/algorithms Courcera Algorithms Specialization]:
* [http://www.coursera.org/specializations/algorithms Coursera 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-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-graphs-data-structures Graph Search, Shortest Paths, and Data Structures] (Coursera; T. Roughgarden; 2012)
Строка 118: Строка 96:
UC San Diego:
UC San Diego:
* [http://www.coursera.org/specializations/data-structures-algorithms Coursera Data Structures and Algorithms Specialization]:
* [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)
:* [http://www.coursera.org/learn/algorithmic-toolbox Algorithmic Toolbox] (Coursera; D. Kane, A. Kulikov, M. Levin, P. Pevzner, N. Rhodes; 2016) {{Comment|Темы: стресс-тестирование; числа Фибоначчи за O(N), алгоритм Евклида, асимптотические обозначения; жадные алгоритмы (заправка машины, покрытие точек единичными отрезками, непрерывный рюкзак); divide and conquer (двоичный поиск, умножение многочленов, мастер-теорема), сортировки (выбором, слиянием, быстрая, подсчётом, Ω-оценка сортировок сравнением); динамическое программирование (размен монет, рюкзак с повторениями, рюкзак без повторений, расстановка скобок).}}
:: <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/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-graphs Algorithms on Graphs] (Coursera; D. Kane, A. Kulikov, M. Levin, N. Rhodes; 2016)
Строка 125: Строка 102:
:* [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/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://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)
* {{GoodBadge}} [http://stepik.org/579 Data Structures] (Stepik; N. Moshiri, L. Izhikevich; 2016) {{Comment|Темы: асимптотические обозначения, классы сложности, основы C++, псевдослучайные числа, битовые операции, командная строка Unix, git; массивы, связные списки, списки с пропусками, циклические массивы, АТД (дек, очередь, стек), итераторы; деревья, кучи, двоичные деревья поиска, декартовы деревья, АВЛ-деревья, красно-чёрные деревья, B-деревья, B+-деревья; графы, представление графов, BFS, DFS, алгоритм Дейкстры, MST, DSU; хеширование, хеш-таблицы, коллизии и их разрешение (открытая адресация, метод цепочек, cuckoo hashing), hash maps; множества и словари (на списках, массивах, деревьях, хеш-таблицах, борах, троичных деревьях поиска); кодирование, энтропия, сжатие Хаффмана, побитовый ввод-вывод; резюме по структурам данных.<br>Курс является текстовым, но содержит колоссальное количество хорошо структурированной информации о структурах данных. Имеются тесты и задачи на программирование, оба вида заданий очень просты.}}
: <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:
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)
== Прочие зарубежные курсы ==
* [http://www.youtube.com/playlist?list=PLi0ZM-RCX5nsTc2Z6woHr5qoF6n3b-thO CodeChef's Indian Programming Camp 2016] (YouTube; коллектив авторов; 2016)
* [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) {{Comment|Курс на английском языке от соавтора книги &laquo;Algorithms in a Nutshell&raquo;. Полная версия видео может быть найдена в Интернете. Слайды + живые примеры программ на Python, наглядно демонстрируется время работы.<br>Кратко рассматриваются: двоичный поиск, двоичные деревья поиска, O-оценка, сортировка слиянием, быстрое возведение в степень, brute-force, kd-деревья, представление графов, DFS, Флойд, ДП (числа Фибоначчи и редакционное расстояние), куча и сортировка кучей, Дейкстра, Прим.}}


== Курсы по языкам программирования ==
== Курсы по языкам программирования ==


C++:
C++:
* <span style="background-color: #0f0">+</span> [http://stepik.org/course/363 Введение в программирование (C++)] (Stepic; Яндекс/ВШЭ; М. Густокашин; 2015)
* {{GoodBadge}} [http://stepik.org/course/363 Введение в программирование (C++)] (Stepik; Яндекс/ВШЭ; М. Густокашин; 2015) {{Comment|Курс для начинающих, содержащий короткие лекции и большое количество задач.<br>Темы: целые числа, условный оператор, цикл while, действительные числа, цикл for и массивы, двумерные массивы, функции и рекурсия, строки и символы, словари и множества, стандартные алгоритмы STL.}}
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Курс для начинающих, содержащий короткие лекции и большое количество задач.<br>Темы: целые числа, условный оператор, цикл while, действительные числа, цикл for и массивы, двумерные массивы, функции и рекурсия, строки и символы, словари и множества, стандартные алгоритмы STL.</span>
* [http://www.coursera.org/specializations/c-plus-plus-modern-development Специализация Coursera «Искусство разработки на современном C++»]:
* [http://www.coursera.org/specializations/c-plus-plus-modern-development Специализация Coursera «Искусство разработки на современном C++»]:
:* [http://www.coursera.org/learn/c-plus-plus-white Основы разработки на C++: белый пояс] (Coursera; Яндекс/МФТИ; И. Лежанкин, Е. Парамонов, А. Полднев, И. Шишков; 2017)
:* [http://www.coursera.org/learn/c-plus-plus-white Основы разработки на C++: белый пояс] (Coursera; Яндекс/МФТИ; И. Лежанкин, Е. Парамонов, А. Полднев, И. Шишков; 2017) {{Comment|Курс платный, но видео и некоторые задания бесплатны. Любопытная идея — сразу давать сложные вещи, позволяющие решать практические задачи, а внутреннее устройство разбирать после или не разбирать совсем.<br>Темы: ввод-вывод, простые типы (int, double) и коллекции (vector, set, string), работа с Eclipse, операции, принципы тестирования, if, while, range-based for; функции, передача параметров, vector, map, set; алгоритмы (min, max, sort), лямбда-функции, области видимости, структуры, классы, методы, конструкторы, деструкторы; работа с файлами, перегрузка операторов; исключения.}}
:: <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; Яндекс/МФТИ; И. Лежанкин, Е. Парамонов, А. Полднев, И. Шишков; 2017) {{Comment|Темы: целочисленные типы, перечисления, кортежи, пары, шаблоны функций; unit-тестирование, разработка фреймворка для тестирования на assert'ах; заголовочные файлы, #include, многофайловые проекты; итераторы, использование итераторов в алгоритмах, дек, очередь, стек, алгоритмы поиска; наследование, protected, порядок инициализации, полиморфизм, виртуальные методы, shared_ptr.}}
:* [http://www.coursera.org/learn/c-plus-plus-yellow Основы разработки на C++: жёлтый пояс] (Coursera; Яндекс/МФТИ; И. Лежанкин, Е. Парамонов, А. Полднев, И. Шишков; 2017)
:* [http://www.coursera.org/learn/c-plus-plus-red Основы разработки на C++: красный пояс] (Coursera; Яндекс/МФТИ; А. Полднев, И. Шишков; 2018) {{Comment|Темы: макросы, #, __FILE__, __LINE__, шаблоны классов, вывод шаблонных типов; простой профайлер, endl vs \n, cin.tie(0), O-оценка, примерная оценка времени работы, амортизированная сложность; стек и куча, указатели, new и delete, арифметика указателей, простой vector, константность указателей; инвалидация, устройство vector, deque, list, array, string_view; move, конструктор копирования (перемещения) и оператор (перемещающего) присваивания, move-итераторы, некопируемые типы, copy elision, async, future, гонки, mutex, lock_guard.}}
:: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: целочисленные типы, перечисления, кортежи, пары, шаблоны функций; unit-тестирование, разработка фреймворка для тестирования на assert'ах; заголовочные файлы, #include, многофайловые проекты; итераторы, использование итераторов в алгоритмах, дек, очередь, стек, алгоритмы поиска; наследование, protected, порядок инициализации, полиморфизм, виртуальные методы, shared_ptr.</span>
:* [http://www.coursera.org/learn/c-plus-plus-brown Основы разработки на C++: коричневый пояс] (Coursera; Яндекс/МФТИ; А. Зобнин, М. Матросов, А. Полднев, Н. Субоч, И. Шишков; 2018) {{Comment|Темы: unordered_set/map, сравнение с set/map, пользовательские типы в set и unordered_set, выбор хеш-функции, extract, merge;  пространства имён, using, this, присваивание себе; преимущества const, IILE, mutable, утечки памяти, unique_ptr; shared_ptr, устройство unique_ptr и shared_ptr, weak_ptr, deleter, жизненный цикл объекта, RAII; рефакторинг функций, способы передачи параметров, span, ranges, способы возврата значений, optional, variant, рефакторинг конструкторов.}}
:* [http://www.coursera.org/learn/c-plus-plus-red Основы разработки на C++: красный пояс] (Coursera; Яндекс/МФТИ; А. Полднев, И. Шишков; 2018)
:* [http://www.coursera.org/learn/c-plus-plus-black Основы разработки на C++: чёрный пояс] (Coursera; Яндекс/МФТИ; А. Зобнин, М. Матросов, А. Полднев, Н. Субоч, И. Шишков; 2019) {{Comment|Темы: отладочные #define, санитайзер, undefined behavior; бинарная сериализация, protobuf; выравнивание, порядок байтов, #pragma pack, битовые поля, vptr, таблица виртуальных методов; placement new, operator new, std::uninitialized_*, реализация std::vector, variadic templates, std::forward; ANTLR. '''Очень тяжёлые''' задачи (интерпретатор Mython, транспортный справочник в 15 частях, электронная таблица).}}
:: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: макросы, #, __FILE__, __LINE__, шаблоны классов, вывод шаблонных типов; простой профайлер, endl vs \n, cin.tie(0), O-оценка, примерная оценка времени работы, амортизированная сложность; стек и куча, указатели, new и delete, арифметика указателей, простой vector, константность указателей; инвалидация, устройство vector, deque, list, array, string_view; move, конструктор копирования (перемещения) и оператор (перемещающего) присваивания, move-итераторы, некопируемые типы, copy elision, async, future, гонки, mutex, lock_guard.</span>
* [http://stepik.org/course/7 Программирование на языке C++] (Stepik; CSC; А. Смаль; 2015)
:* [http://www.coursera.org/learn/c-plus-plus-brown Основы разработки на C++: коричневый пояс] (Coursera; Яндекс/МФТИ; А. Зобнин, М. Матросов, А. Полднев, Н. Субоч, И. Шишков; 2018)
* [http://stepik.org/course/3206 Программирование на языке C++ (продолжение)] (Stepik; CSC; А. Смаль; 2017)
:: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: unordered_set/map, сравнение с set/map, пользовательские типы в set и unordered_set, выбор хеш-функции, extract, merge;  пространства имён, using, this, присваивание себе; преимущества const, IILE, mutable, утечки памяти, unique_ptr; shared_ptr, устройство unique_ptr и shared_ptr, weak_ptr, deleter, жизненный цикл объекта, RAII; рефакторинг функций, способы передачи параметров, span, ranges, способы возврата значений, optional, variant, рефакторинг констукторов.</span>
:* [http://www.coursera.org/learn/c-plus-plus-black Основы разработки на C++: чёрный пояс] (Coursera; Яндекс/МФТИ; А. Зобнин, М. Матросов, А. Полднев, Н. Субоч, И. Шишков; 2019)
:: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: отладочные #define, санитайзер, undefined behavior; бинарная сериализация, protobuf; выравнивание, порядок байтов, #pragma pack, битовые поля, vptr, таблица виртуальных методов; placement new, operator new, std::uninitialized_*, реализация std::vector, variadic templates, std::forward; ANTLR. '''Очень тяжёлые''' задачи (интерпретатор Mython, транспортный справочник в 15 частях, электронная таблица).</span>
* [http://stepik.org/course/7 Программирование на языке C++] (Stepic; CSC; А. Смаль; 2015)
* [http://stepik.org/course/3206 Программирование на языке C++ (продолжение)] (Stepic; CSC; А. Смаль; 2017)


Python
Python
* [http://www.coursera.org/learn/python-osnovy-programmirovaniya Основы программирования на Python] (Coursera; Яндекс/ВШЭ; М. Густокашин; 2017)
* [http://www.coursera.org/learn/python-osnovy-programmirovaniya Основы программирования на Python] (Coursera; Яндекс/ВШЭ; М. Густокашин; 2017) {{Comment|Своеобразный аналог курса по C++ того же автора.}}
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Своеобразный аналог курса по C++ того же автора.</span>

Текущая версия от 17:08, 24 августа 2021

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

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

Курсы ИТМО и СПбГУ

Курсы КФУ

Курсы МФТИ

Курсы Самарского университета

  • Математика для олимпиад по программированию (Stepik; Н. Бондаренко; 2018)
  • Спортивное программирование (Coursera; Н. Бондаренко; 2019)

Курсы УрФУ и СКБ Контур

Курсы Яндекса и ШАД

Курсы Mail.Ru Group

  • Алгоритмы и структуры данных (Stepik; С. Мацкевич; 2015)

Курсы Computer Science Center

  • Алгоритмы и структуры данных 1 (Lektorium; А. Куликов, М. Дворкин; 2011)
  • Алгоритмы и структуры данных 2 (Lektorium; А. Куликов, М. Дворкин; 2012)
  • Дополнительные главы алгоритмов (Lektorium; А. Станкевич; 2013)
  • Алгоритмы и структуры данных (Stepik/YouTube; А. Куликов; 2014)
  • Алгоритмы: теория и практика. Методы (Stepik; А. Куликов; 2015)
  • Алгоритмы: теория и практика. Структуры данных (Stepik; А. Куликов; 2016)

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

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

MIT:

Princeton:

Stanford:

UC San Diego:

  • Algorithmic Toolbox (Coursera; D. Kane, A. Kulikov, M. Levin, P. Pevzner, N. Rhodes; 2016)
  • 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 (Stepik; N. Moshiri, L. Izhikevich; 2016)

Stony Brook University:

Прочие зарубежные курсы

  • CodeChef's Indian Programming Camp 2016 (YouTube; коллектив авторов; 2016)
  • Learning Data Structures and Algorithms (O'Reilly Media; R. Stephens; 2015)
  • Working with Algorithms in Python (O'Reilly Media; G. T. Heineman; 2014)

Курсы по языкам программирования

C++:

  • Основы разработки на C++: белый пояс (Coursera; Яндекс/МФТИ; И. Лежанкин, Е. Парамонов, А. Полднев, И. Шишков; 2017)
  • Основы разработки на C++: жёлтый пояс (Coursera; Яндекс/МФТИ; И. Лежанкин, Е. Парамонов, А. Полднев, И. Шишков; 2017)
  • Основы разработки на C++: красный пояс (Coursera; Яндекс/МФТИ; А. Полднев, И. Шишков; 2018)
  • Основы разработки на C++: коричневый пояс (Coursera; Яндекс/МФТИ; А. Зобнин, М. Матросов, А. Полднев, Н. Субоч, И. Шишков; 2018)
  • Основы разработки на C++: чёрный пояс (Coursera; Яндекс/МФТИ; А. Зобнин, М. Матросов, А. Полднев, Н. Субоч, И. Шишков; 2019)

Python