2026/2027





Промышленное программирование на Python
ID 1201826
Статус:
Маго-лего
Кто читает:
Департамент прикладной математики
Охват аудитории:
для своего кампуса
Преподаватели:
Сластников Сергей Александрович
Язык:
русский
Кредиты:
6
Контактные часы:
60
Программа дисциплины
Аннотация
Курс нацелен на проектирование, разработку и развертывание сервисов на языке Python; проведение тестирований ПО и мониторинг работы сервера.
Цель освоения дисциплины
- Основы разработки standalone приложений
- Тестирования (функциональное, unit-тестирование, продуктовое)
- Настройка CI/CD
Планируемые результаты обучения
- Студент знает: базовый синтаксис, управляющие конструкции, виды тестирования, TDD, подходы к тестированию.
- Умеем разрабатывать тесты для готовой задачи. Демонстрирует владение базовым синтаксисом языка.
- Студент знает: как работают функции в питоне, как определять виды параметров, как реализовать передачу аргументов, что такое, области видимости, как работает поиск переменных в областях видимости, что такое декораторы и зачем они нужны
- Студент умеет использовать функции, писать декораторы.
- Студент знает синтаксис классов в питоне, какие бывают атрибуты, виды методов, что такое наследование, как ООП как, проявляется в Python, что такое property
- Студент уметь применять принципы ООП, писать собственные классы.
- Студент знает: как работают дескрипторы, что такое метаклассы и их синтаксис, зачем нужны абстрактные базовые классы и их синтаксис, что такое утиная типизация.
- Студент умеет реализовывать метаклассы с дескрипторами
- Студент знает: как работают itertools, functools, collections; что такое вещественные числа, и какие особенности у них есть; зачем нужны дата-классы; что такое enum, и как они работают.
- Студент умеет реализовывать алгоритмы с использованием модулей
- Студент знает: что такое асинхронное программирование и зачем оно нужно; принципы асинхронного программирования; средства реализации асинхронного программирования в Python (библиотечные, встроенные); когда следует использовать асинхронное программирование/
- Студент умеет: производить асинхронную обкачку.
- Студент знает: что такое потоки, как работают управление потоками и синхронизация потоков, что такое GIL, что такое процессы, какие есть способы создания и синхронизации процессов, что такое IPC
- Студент умеет использовать и синхронизировать потоки
- Студент знает: что такое асинхронное программирование и зачем оно нужно; принципы асинхронного программирования; средства реализации асинхронного программирования в Python (библиотечные, встроенные); когда следует использовать асинхронное программирование.
- Студент умеет производить асинхронную обкачку
- Студент знает:что такое логирование и зачем оно нужно средства Python для реализации логирования; встроенные инструменты отладки; правила форматирование кода по PEP-8
- Студент умеет настраивать логирование в своем проекте
- Студент знает: правила написания расширений для PythonОсобенности работы расширений, написанных на С. Основы синтаксиса С. Как интегрировать расширение в Python
- Студент умеет: создавать простые расширения на C, подключать их из Python, производить замеры скорости
- Студент знает: для чего нужна аннотация типов, синтаксис и правила использования применяется, на что влияет аннотация.
- Студент знает: средства стандартной библиотеки для работы со структурами данных и модули с готовыми алгоритмами знать, что такое сложность алгоритмов.
- Студент умеет: использовать встроенные средства для работы с известными структурами данных и алгоритмами
Содержание учебной дисциплины
- Введение в Python, основные понятия, тестирование
- Функции, функциональное программирование
- Объектная модель, введение в ООП.
- ООП, дескрипторы, метаклассы
- Стандартная библиотека Python, работа со строками, файлами
- Потоки, GIL, процессы, IPC.
- Асинхронное программирование.
- Устройство памяти в Python.
- Логирование, оформление кода, отладка
- Расширения на C
- Аннотация типов
- Алгоритмы и СД с Python
- Погружение в профессию Разработчика. Демо-собеседование и демо-интервью
Элементы контроля
- SUM_10_ДЗSUM_10_ДЗ (сумма баллов за Домашние задание - по 7 б. за каждое)
- SUM_ЭкзаменSUM_Экзамен - это сумма баллов, полученных за экзамен (до 30 баллов).
- SUM_11_КвизовSUM_11_Квизов (сумма баллов за короткие опросы (квизы), 11 шт. , оцениваются только на занятиях)
Промежуточная аттестация
- 2026/2027 2nd moduleФормула оценивания: SUM_10_ДЗ + SUM_11_Квизов + SUM_Экзамен, где SUM_10_ДЗ - это сумма баллов, полученных за домашние задания (до 70 баллов); SUM_11_Квизов - это сумма баллов, полученных за квизы (до 11 баллов); SUM_Экзамен - это сумма баллов, полученных за экзамен (до 30 баллов). Полученные на курсе баллы переводятся в 10-ти балльную оценку следующим образом: оценка 10 за 99 баллов и выше; оценка 9 за 90 баллов и выше; оценка 8 за 81 балл и и выше; оценка 7 за 72 балла и выше; оценка 6 за 63 балла и выше; оценка 5 за 54 балла и выше; оценка 4 за 45 балла и выше; оценка 3 за 36 баллов и выше.
Список литературы
Рекомендуемая основная литература
- Python : создание приложений : б-ка профессионала, Чан, Уэсли Дж., 2015
- Python для сетевых инженеров : автоматизация сети, программирование и DevOps, Чоу, Э., 2023
Рекомендуемая дополнительная литература
- Большая книга проектов Python, Свейгарт, Э., 2022