Skip to content

SciProgCentre-education/sciprog-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Advanced Python programming for MIPT SCP master's program 2022.

Информация будет обновлятся.

Информация о курсе

Занятия происходят в очно формате, по четвергам в 203 УПМ.

Для получения оценки за курс надо выполнять курсовой проект: разработку микрофреймворка для анализа данных и создание графического приложения.

Программа курса

Материал сгруппированный по темам, но даваемый в разные семинары.

  1. Парадигмы программирования: процедурная, функциональная и объектно-ориентированная. Паттерны проектирования и их реализация в Python.
  2. ООП в Python. Магические методы и метаклассы. Менеджеры контекста. Декораторы классов.
  3. ФП в Python. Обработка коллекций в функциональном стиле. Инструменты функционального программирования. Декораторы функций.
  4. Инструменты разработки: инструменты анализа кода, отладчик, профилирование кода. Соглашения о стиле кода. Виртуальное окружение.
  5. Документация: аннотация типов, документирование кода, автоматическая генерация документации. Соглашения о стиле кода. Формат ReStructuredText.
  6. Тестирование: модульное тестирование, CI/CD.
  7. Дополнительные типы данных: перечисления, время и дата, классы данных, расширения стандартных коллекций.
  8. Работа со строками: шаблоны строк, регулярные выражения,
  9. Работа с файловой системой.
  10. Ввод/Вывод: работа с бинарными и текстовыми данными; сериализация/десериализация структур данных в текстовые форматы JSON, XML, бинарный формат Protobuf и с использованием встроенной сериализации; хранение данных в научных форматах HDF5 и ROOT; Numpy IO; архивация данных, отображение данных в память.
  11. Основы баз данных. Использование СУБД Sqlite3.
  12. Численное моделирование и анализ данных с использованием Numpy и Scipy.
  13. Создание графических материалов, анимации и интерактивной инфографики.
  14. Типовые инструменты: логирование, разбор аргументов командной строки, создание командной оболочки, взаимодействие с ОС
  15. Асинхронное, параллельное и многопоточное исполнение программы. Управление процессами, межпроцессорное взаимодействие.
  16. Событийно-ориентированное программирование и создание GUI приложений. Типовые архитектуры GUI приложений;
  17. Сетевое программирование --- передача данных через сокеты. Использование встроенного сервера.
  18. Основы веб-разработки.
  19. Дистрибуция программного обеспечения, распространение пакетов Python.
  20. Оптимизация производительности. Numba. Cython. PyPy.
  21. Управление физическими устройствами. USB.

Домашнее задание

Курсовой проект выдается в виде еженедельного набора задач, за каждую решенную задачу начисляются баллы, за просрочку сдачи на неделю баллы за задачу уменьшаются наполовину. Для получения зачета требуется набрать не менее 50% баллов за семестр.

About

Advanced Python programming for MIPT SCP master's program.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published