Магистратура
2026/2027





Асинхронная разработка и ООП на Python
Статус:
Курс по выбору (Прикладные нейросетевые технологии)
Где читается:
Факультет компьютерных наук
Когда читается:
1-й курс, 2 модуль
Охват аудитории:
для своего кампуса
Язык:
русский
Кредиты:
3
Контактные часы:
24
Программа дисциплины
Аннотация
Курс посвящён современным подходам к асинхронному программированию и объектно-ориентированному проектированию на языке Python. Вы изучите ключевые принципы ООП, научитесь проектировать расширяемые и поддерживаемые архитектуры, а также освоите асинхронные возможности Python для создания высокопроизводительных приложений. Особое внимание уделено практическим аспектам: от разработки асинхронных серверов до интеграции с внешними API и работы с базами данных. По итогам курса вы сможете эффективно применять асинхронные паттерны и ООП для решения реальных задач.
Цель освоения дисциплины
- 1) проектировать классы и взаимодействие объектов в Python;
- 2) выбирать между наследованием, композицией и протоколами;
- 3) использовать правильные структуры для описания модельных объектов;
- 4) понимать жизненный цикл coroutine, Task и Future;
- 5) разрабатывать приложения на asyncio;
- 6) правильно обрабатывать отмену, таймауты и исключения;
- 7) применять очереди, семафоры и другие примитивы синхронизации;
- 8) строить асинхронный ввод-вывод и сетевые взаимодействия;
- 9) тестировать асинхронный код и диагностировать типичные ошибки;
- 10) оценивать архитектурные и производительные компромиссы асинхронного решения.
Планируемые результаты обучения
- проектирует классы, интерфейсы и взаимодействие объектов на Python;
- создает классы с корректной инкапсуляцией и использует композицию, наследование и протоколы;
- применяет type hints, generics, dataclass и ABC/Protocol в прикладном коде;
- объясняет различия между обычной функцией, coroutine, Task и Future;
- создает и запускает асинхронные задачи в asyncio;
- обрабатывает исключения, отмену задач и таймауты;
- применяет очереди, locks, semaphores и другие примитивы синхронизации;
- реализует асинхронные сетевые и файловые взаимодействия;
- тестирует асинхронный код и локализует проблемы конкурентного выполнения;
- обосновывает архитектурные решения и оценивает их влияние на читаемость, надежность и производительность.
Содержание учебной дисциплины
- ООП в Python: классы, объекты, атрибуты, методы, свойства
- Композиция, наследование, MRO и перегрузка операторов
- Dataclass, Protocol, ABC, декораторы и type hints
- Модель конкурентности: sync vs async, event loop; coroutine и await
- Task, Future, отмена, таймауты и обработка исключений
- Очереди и примитивы синхронизации asyncio; backpressure
- Асинхронный ввод-вывод, HTTP-клиент и потоковая обработка
- Архитектура асинхронного сервиса, наблюдаемость и повторение
Элементы контроля
- Домашнее задание 1 — ООП (10%)Выдается после недели 3; сдача в течение 7 дней.
- Домашнее задание 2 — asyncio (10%)Выдается после недели 5; сдача в течение 10 дней.
- Контрольная работа — практическое программирование (20%)На неделе 8, до защиты проекта; 90 минут.
- Домашнее задание 3 — асинхронный сервис (15%)Выдается после недели 6; сдача до начала недели 8.
- Итоговый проект (25%)Выдается на неделе 5; защита на неделе 8. Пересдача: Нет; при уважительном пропуске защита переносится на согласованную дату до завершения курса.
- Экзамен (20%)
Промежуточная аттестация
- 2026/2027 2nd module0.1 * Домашнее задание 2 — asyncio (10%) + 0.2 * Контрольная работа — практическое программирование (20%) + 0.25 * Итоговый проект (25%) + 0.1 * Домашнее задание 1 — ООП (10%) + 0.2 * Экзамен (20%) + 0.15 * Домашнее задание 3 — асинхронный сервис (15%)
Список литературы
Рекомендуемая основная литература
- Nelli, F. (2015). Python Data Analytics : Data Analysis and Science Using Pandas, Matplotlib and the Python Programming Language. [Berkeley, CA]: Apress. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1056488
- Python crash course : a hands-on, project-based introduction to programming, Matthes, E., 2023
- Ziadé, T. (2008). Expert Python Programming : Learn Best Practices to Designing, Coding, and Distributing Your Python Software. Packt Publishing.
- Янцев, В. В. Web-программирование на Python : учебное пособие для вузов / В. В. Янцев. — 3-е изд., перераб. — Санкт-Петербург : Лань, 2024. — 180 с. — ISBN 978-5-507-48364-8. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/392993 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
Рекомендуемая дополнительная литература
- Жуков Р.А. - Язык программирования Python: практикум - 978-5-16-016971-2 - НИЦ ИНФРА-М - 2023 - https://znanium.ru/catalog/document?id=424006 - 424006 - ZNANIUM
- Чернышев, С. А. Основы программирования на Python : учебник для вузов / С. А. Чернышев. — 2-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2025. — 349 с. — (Высшее образование). — ISBN 978-5-534-17139-6. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/567821 (дата обращения: 02.07.2026).