Содержание пакета (4 курса)
1. Добрые, добрые структуры данных с Сергеем Балакиревым 4.79
Учимся оценивать вычислительную сложность алгоритмов
2 урока
1.
Введение в Big O
↗
2.
Big O логарифмической и факториальной сложности
↗
Простейшие структуры данных
5 уроков
1.
Статический массив
↗
2.
Статический массив на С++
↗
3.
Динамический массив
↗
4.
Динамический массив на Python
↗
5.
Динамический массив на С++
↗
Связные списки
5 уроков
1.
Односвязный список
↗
2.
Односвязный список на С++
↗
3.
Двусвязный список
↗
4.
Двусвязный список на С++ с нуля
↗
5.
Класс list двусвязного списка библиотеки STL языка С++
↗
Очереди и стек
5 уроков
1.
Очереди типов FIFO и LIFO
↗
2.
Очередь collections.deque на Python
↗
3.
Класс deque очереди библиотеки STL языка C++
↗
4.
Стек (stack)
↗
5.
Реализация стека на Python и C++
↗
Деревья и множества
7 уроков
1.
Бинарные деревья
↗
2.
Способы обхода и удаления вершин бинарного дерева
↗
3.
Бинарное дерево на Python
↗
4.
Множества (set). Операции над множествами
↗
5.
Множества set и multiset в C++
↗
6.
Контейнер map библиотеки STL в C++
↗
7.
Префиксное (нагруженное, Trie) дерево. Ассоциативные массивы
↗
Хэш-таблицы
4 урока
1.
Хэш-таблицы
↗
2.
Универсальное хэширование
↗
3.
Метод открытой адресации. Двойное хэширование
↗
4.
Хэш-таблицы в языках Python и С++
↗
2. Добрый, добрый Python ООП — обучающий курс от Сергея Балакирева 4.90
Первые шаги в ООП
8 уроков
1.
Как правильно выполнять задания курса
↗
2.
Концепция ООП простыми словами
↗
3.
Классы и объекты. Атрибуты классов и объектов
↗
4.
Методы классов. Параметр self
↗
5.
Инициализатор __init__ и финализатор __del__
↗
6.
Магический метод __new__. Пример паттерна Singleton
↗
7.
Методы класса (classmethod) и статические методы (staticmethod)
↗
8.
Испытание свойствами и методами
↗
Режимы доступа, свойства и дескрипторы
3 урока
1.
Режимы доступа public, private, protected. Сеттеры и геттеры
↗
2.
Свойства property. Декоратор @property
↗
3.
Дескрипторы (data descriptor и non-data descriptor)
↗
Магические методы классов
10 уроков
1.
Методы __setattr__, __getattribute__, __getattr__ и __delattr__
↗
2.
Метод __call__. Функторы и классы-декораторы
↗
3.
Методы __str__, __repr__, __len__, __abs__
↗
4.
Методы __add__, __sub__, __mul__, __truediv__
↗
5.
Сравнения __eq__, __ne__, __lt__, __gt__ и другие
↗
6.
Методы __eq__ и __hash__
↗
7.
Метод __bool__
↗
8.
Методы __getitem__, __setitem__ и __delitem__
↗
9.
Методы __iter__ и __next__
↗
10.
Испытание магией
↗
Наследование и полиморфизм
8 уроков
1.
Наследование в объектно-ориентированном программировании
↗
2.
Функция issubclass(). Наследование от встроенных типов
↗
3.
Наследование. Функция super() и делегирование
↗
4.
Наследование. Атрибуты private и protected
↗
5.
Полиморфизм и абстрактные методы
↗
6.
Множественное наследование
↗
7.
Коллекция __slots__
↗
8.
Испытание "Бремя наследия"
↗
Data Classes
3 урока
1.
Введение в Data Classes
↗
2.
Углубляемся в Data Classes
↗
3.
Наследование Data Classes
↗
Исключения и менеджеры контекста
6 уроков
1.
Введение в обработку исключений. Блоки try / except
↗
2.
Обработка исключений. Блоки finally и else
↗
3.
Распространение исключений (propagation exceptions)
↗
4.
Инструкция raise и пользовательские исключения
↗
5.
Менеджеры контекстов. Оператор with
↗
6.
Посвящение в объектно-ориентированное программирование
↗
3. Многопоточность в Python: от новичка до эксперта 5.00
Основные понятия
3 урока
1.
Введение
↗
2.
Основные определения
↗
3.
Реализация и ограничения в Python
↗
Многопоточность. Модуль threading
24 урока
1.
Библиотека threading. Поток. Создание потоков. ч.1
↗
2.
Библиотека threading. Поток. Создание потоков. ч.2
↗
3.
Перехват исключений, трассировка, профилирование
↗
4.
Поток-таймер
↗
5.
Переопределение потока
↗
6.
Взаимодействие потоков. Очередь queue. ч.1
↗
7.
Взаимодействие потоков. Очередь queue. ч.2
↗
8.
Локальное хранилище
↗
9.
Синхронизация потоков. Базовый примитив
↗
10.
Синхронизация потоков. Классификация
↗
11.
Синхронизация потоков. Семафор и Барьер
↗
12.
Синхронизация потоков. Событие
↗
13.
Синхронизация потоков. Условная переменная
↗
14.
Пул потоков. ч.1
↗
15.
Пул потоков. ч.2
↗
16.
Пул потоков. ч.3
↗
17.
Пул интерпретаторов. Многопоточные параллельные вычисления
↗
18.
Создание и использование субинтерпретаторов.
↗
19.
Отключение GIL. free-threaded build интерпретаторы
↗
20.
Ускоряем многопоточные расчеты, используя NumPy, Numba и Cython
↗
21.
Учебный проект: агрегация рыночных данных
↗
22.
Разбор тестовых задач и примеры решений
↗
23.
Заключение
↗
24.
Post game
↗
Отладка многопоточных программ
3 урока
1.
Работа с исключениями
↗
2.
Traceback исключений
↗
3.
Трассировка и профилирование
↗
Пул потоков. Модуль concurrent.futures
3 урока
1.
Пул потоков. ч.1
↗
2.
Пул потоков. ч.2
↗
3.
Пул потоков. ч.3
↗
Финал
3 урока
1.
Разбор тестовых задач и примеры решений
↗
2.
Заключение
↗
3.
Post game
↗
Многопоточные параллельные вычисления
4 урока
1.
Пул интерпретаторов. Многопоточные параллельные вычисления
↗
2.
Создание и использование субинтерпретаторов.
↗
3.
Отключение GIL. free-threaded build интерпретаторы
↗
4.
Ускоряем многопоточные расчеты, используя NumPy, Numba и Cython
↗
4. Многопроцессность в Python: от новичка до эксперта 4.86
Основные понятия
2 урока
1.
Введение
↗
2.
Основные определения
↗
Многопроцессность. Модуль multiprocessing
15 уроков
1.
Библиотека multiprocessing. Процесс. ч.1
↗
2.
Библиотека multiprocessing. Процесс. ч.2
↗
3.
Переопределение процесса
↗
4.
Взаимодействие процессов. Разделяемая память.
↗
5.
Взаимодействие процессов. Менеджеры.
↗
6.
Взаимодействие процессов. Очереди.
↗
7.
Взаимодействие процессов. Каналы.
↗
8.
Объекты синхронизации процессов
↗
9.
Пул процессов ч.1
↗
10.
Пул процессов ч.2
↗
11.
Логирование. Рекомендации при использовании multiprocessing
↗
12.
Учебный проект: агрегация рыночных данных II
↗
13.
Разбор тестовых задач и примеры решений.
↗
14.
Заключение
↗
15.
Post game
↗