2026/2027


Промышленное программирование на Python
Статус:
Маго-лего
Кто читает:
Департамент прикладной математики
Охват аудитории:
для своего кампуса
Преподаватели:
Сластников Сергей Александрович
Язык:
русский
Кредиты:
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.
- Асинхронное программирование.
- Логирование, оформление кода, отладка
- Расширения на C
- Аннотация типов
- Алгоритмы и СД с Python