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

Материал из Олимпиадное программирование в УлГТУ
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 21: Строка 21:
* [http://www.youtube.com/channel/UCBLUcL8gSd5LbCECHp23aTA Видеозаписи лекций Зимней школы ХНУРЭ] (YouTube; коллектив авторов; 2008–2014)
* [http://www.youtube.com/channel/UCBLUcL8gSd5LbCECHp23aTA Видеозаписи лекций Зимней школы ХНУРЭ] (YouTube; коллектив авторов; 2008–2014)


== Лекции КФУ ==
== Курсы ИТМО ==
 
* [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=PL_9FdAhNCqihb-FFh-19A1nOjYHtJ65nA Видеозаписи лекций ЗШОП КФУ, начинающая группа] (YouTube; К. Хадиев, 2016)


== Семинары УрФУ и курсы СКБ Контур ==
== Курсы МФТИ ==
 
* [http://www.youtube.com/playlist?list=PLDrmKwRSNx7L3YYWrWp9gnXG0rH05mOw8 Алгоритмы: построение и анализ] (YouTube; Д. Швед; 2010)
 
== Курсы Самарского университета ==
 
* [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=PLtb_PNVHdsV4qZgyqMFC6Tq2wsA0CybJB Видеозаписи семинаров Уральского федерального университета] (YouTube; М. Рубинчик; 2013)
Строка 32: Строка 52:
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Короткий (~1 час) текстовый курс, содержащий задачи на определение &Theta;-оценок предложенного кода. Также содержит краткие теоретические разделы.</span>
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Короткий (~1 час) текстовый курс, содержащий задачи на определение &Theta;-оценок предложенного кода. Также содержит краткие теоретические разделы.</span>


== Курсы МФТИ ==
== Курсы Школы анализа данных Яндекса ==


* [http://www.youtube.com/playlist?list=PLDrmKwRSNx7L3YYWrWp9gnXG0rH05mOw8 Алгоритмы: построение и анализ] (YouTube; Д. Швед; 2010)
* [http://www.youtube.com/playlist?list=PLJOzdkh8T5koEPv-R5W0ovmL_T2BjB1HX Алгоритмы и структуры данных поиска] (YouTube; М. Бабенко; 2012)
 
== Курсы ИТМО ==
 
* [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>


== Курсы Computer Science Center ==
== Курсы Computer Science Center ==
Строка 53: Строка 67:
* <span style="background-color: #0f0">+</span> [http://stepik.org/1547 Алгоритмы: теория и практика. Структуры данных] (Stepik; А. Куликов; 2016)
* <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>
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: массивы, списки, стек (скобочная последовательность, стек с минимумом), очередь (очередь на двух стеках, минимум в окне), деревья, расширяющийся массив; очередь с приоритетом, куча, сортировка кучей; система непересекающихся множеств + эвристики; хеш-таблицы, разрешение коллизий, универсальное хеширование, алгоритм Рабина-Карпа; деревья поиска, АВЛ-деревья; АВЛ + count/merge/split, АВЛ + сумма на отрезке, АВЛ + неявный ключ; splay-деревья.</span>
== Курсы Школы анализа данных Яндекса ==
* [http://www.youtube.com/playlist?list=PLJOzdkh8T5koEPv-R5W0ovmL_T2BjB1HX Алгоритмы и структуры данных поиска] (YouTube; М. Бабенко; 2012)


== Вебинары Ф. В. Меньшикова (разбор задач acmp.ru) ==
== Вебинары Ф. В. Меньшикова (разбор задач acmp.ru) ==
Строка 63: Строка 73:
* [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 ==
== Курсы CodeChef ==


* [http://www.youtube.com/playlist?list=PLi0ZM-RCX5nsTc2Z6woHr5qoF6n3b-thO CodeChef's Indian Programming Camp 2016] (YouTube; коллектив авторов; 2016)
* [http://www.youtube.com/playlist?list=PLi0ZM-RCX5nsTc2Z6woHr5qoF6n3b-thO CodeChef's Indian Programming Camp 2016] (YouTube; коллектив авторов; 2016)

Версия от 21:48, 16 января 2019

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

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

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

Курсы ИТМО

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

Курсы КФУ

Курсы МФТИ

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

Темы: комбинаторика, теория чисел, геометрия, инварианты и полуинварианты, теория игр. Задачи подчас сложные.
Темы: рекурсивный перебор (размещения с повторениями, перестановки, скобочные последовательности, разбиения на слагаемые, коммивояжёр); жадные алгоритмы (размен монет, заказы с дедлайнами, выбор заявок, непрерывный рюкзак); ДП (замощение домино, путь в таблице, префиксные суммы 1d/2d, размен монет, рюкзак, НОП); битовые маски (операции, перебор подмножеств, динамика по маскам, коммивояжёр, динамика по профилю).
Приятный курс. Тот случай, когда лекции, несмотря на краткость, очень выгодно отличаются от лекций того же ИТМО. Есть практические задачи. Экзамен платный.

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

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

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

Курсы 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:

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

C++:

Курс для начинающих, содержащий короткие лекции и большое количество задач.
Темы: целые числа, условный оператор, цикл while, действительные числа, цикл for и массивы, двумерные массивы, функции и рекурсия, строки и символы, словари и множества, стандартные алгоритмы STL.
Курс платный, но видео и некоторые задания бесплатны (имеет смысл только смотреть видео). Любопытная идея — сразу давать сложные вещи, позволяющие решать практические задачи, а внутреннее устройство разбирать после или не разбирать совсем.
Темы: ввод-вывод, простые типы (int, double) и коллекции (vector, set, string), работа с Eclipse, операции, принципы тестирования, if, while, range-based for; функции, передача параметров, vector, map, set; алгоритмы (min, max, sort), лямбда-функции, области видимости, структуры, классы, методы, конструкторы, деструкторы; работа с файлами, перегрузка операторов; исключения.
См. замечания к предыдущему.
Темы: целочисленные типы, перечисления, кортежи, пары, шаблоны функций; unit-тестирование, разработка фреймворка для тестирования на assert'ах; заголовочные файлы, #include, многофайловые проекты; итераторы, использование итераторов в алгоритмах, дек, очередь, стек, алгоритмы поиска; наследование, protected, порядок инициализации, полиморфизм, виртуальные методы, shared_ptr.

Python

Своеобразный аналог курса по C++ того же автора.