• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Магистратура 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 module
    0.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).

Авторы

  • Ахмедова Гюнай Интигам кызы