Видеокурсы: различия между версиями
Перейти к навигации
Перейти к поиску
Ctrlalt (обсуждение | вклад) |
Ctrlalt (обсуждение | вклад) |
||
Строка 142: | Строка 142: | ||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: целочисленные типы, перечисления, кортежи, пары, шаблоны функций; unit-тестирование, разработка фреймворка для тестирования на assert'ах; заголовочные файлы, #include, многофайловые проекты; итераторы, использование итераторов в алгоритмах, дек, очередь, стек, алгоритмы поиска; наследование, protected, порядок инициализации, полиморфизм, виртуальные методы, shared_ptr.</span> | : <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-red Основы разработки на C++: красный пояс] (Coursera; Яндекс/МФТИ; А. Полднев, И. Шишков; 2018) | * [http://www.coursera.org/learn/c-plus-plus-red Основы разработки на C++: красный пояс] (Coursera; Яндекс/МФТИ; А. Полднев, И. Шишков; 2018) | ||
: <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: макросы, #, __FILE__, __LINE__; (...).</span> | : <span style="line-height: 80%; font-size: 80%; font-style: italic;">Темы: макросы, #, __FILE__, __LINE__, шаблоны классов, вывод шаблонных типов; (...).</span> | ||
* [http://stepik.org/course/7 Программирование на языке C++] (Stepic; CSC; А. Смаль; 2015) | * [http://stepik.org/course/7 Программирование на языке C++] (Stepic; CSC; А. Смаль; 2015) | ||
* [http://stepik.org/course/3206 Программирование на языке C++ (продолжение)] (Stepic; CSC; А. Смаль; 2017) | * [http://stepik.org/course/3206 Программирование на языке C++ (продолжение)] (Stepic; CSC; А. Смаль; 2017) |
Версия от 19:43, 23 марта 2020
Лекции Летней компьютерной школы
- Видеозаписи лекций ЛКШ
- ЛКШ.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)
- Нет, нет и нет. Чудовищный уровень английского (у Логунова и Симонова), краткие лекции, платная практика.
- Алгоритмы и структуры данных (1 семестр) (YouTube; П. Маврин; 2019)
- Алгоритмы и структуры данных (2 семестр) (YouTube; П. Маврин; 2019)
- Алгоритмы и структуры данных (3 семестр) (YouTube; П. Маврин; 2018)
- Алгоритмы и структуры данных (4 семестр) (YouTube; П. Маврин; 2018)
Курсы КФУ
- Видеозаписи лекций ЗШОП КФУ, начинающая группа (YouTube; К. Хадиев, 2016)
Курсы МФТИ
- Алгоритмы: построение и анализ (YouTube; Д. Швед; 2010)
- Алгоритмы и структуры данных (YouTube; М. Тихомиров; 2019)
- – Быстрый старт в спортивное программирование (Stepik; В. Невструев, Ф. Рухович, О. Христенко; 2020)
- Темы: асимптотические обозначения, 10^8, поиск второго максимума, префиксные суммы, бинпоиск; диапазоны целых типов, проверка на простоту, решето Эратосфена, операции по модулю, алгоритм Евклида (обычный и расширенный), быстрое возведение в степень, обратный элемент; динамическое программирование, путь в полосе и таблице, восстановление ответа, рюкзак; графы, dfs, bfs.
Курсы Самарского университета
- + Математика для олимпиад по программированию (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++: красный пояс (Coursera; Яндекс/МФТИ; А. Полднев, И. Шишков; 2018)
- Темы: макросы, #, __FILE__, __LINE__, шаблоны классов, вывод шаблонных типов; (...).
- Программирование на языке C++ (Stepic; CSC; А. Смаль; 2015)
- Программирование на языке C++ (продолжение) (Stepic; CSC; А. Смаль; 2017)
Python
- Основы программирования на Python (Coursera; Яндекс/ВШЭ; М. Густокашин; 2017)
- Своеобразный аналог курса по C++ того же автора.