-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Mikhail Zelenyy
committed
Sep 12, 2024
1 parent
28ac04c
commit 2cecaa5
Showing
2 changed files
with
122 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,6 +6,7 @@ | |
* Татьяна Абрамова | ||
* Анна Зелёная | ||
* Александр Нозик | ||
* Тимур Хамитов | ||
|
||
## Контакты | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
# Программа курса | ||
|
||
## Идеология и инструменты разработки ПО | ||
|
||
1. Инструменты разработки на Python. | ||
2. Создание виртуальных окружений. Модули `venv`, `virtualenv`. Виртуальные окружения conda-env. | ||
3. Сборка пакета с `setuptools` и установка пакета в режиме для разработчика. | ||
4. Тестирование ПО. Модули `unittest`, `pytest`. Системы запуска и контроля тестов. | ||
5. Создание документации пакета с помощью `sphinx`. | ||
6. CI/CD. Github Actions. | ||
7. Интерактивные среды. | ||
8. Распространения приложений с помощью `setuptools`. | ||
|
||
## Устройство Python | ||
|
||
1. Трансляторы Python. Байт-код Python и модуль `dis`. | ||
2. Синтаксис Python. Области видимости переменных. | ||
3. ООП и объектная модель Python. | ||
1. Семантика Python. | ||
2. Использование модуля `inspect` для анализа объектов. | ||
4. Система импорта Python. Импорт модулей и пакетов. Использование модуля `importlib`. | ||
5. Работа с памятью в Python. Доступ к сборщику мусора через модуль `gc`. | ||
|
||
|
||
## ООП в Python. Структурная типизация. | ||
|
||
1. ООП. Создание интерфейсов и абстрактных классов с модулем `abc`. | ||
2. Протоколы и структурная типизация с модулем `typing`. Статическая проверка типов с `mypy`. | ||
3. Контекстные менеджеры. | ||
4. Создание перечислений с модулем `enum`. | ||
5. Датаклассы в Python. | ||
6. Дескрипторы Python. | ||
|
||
## Функциональное программирование в Python. Коллекции и дата-классы | ||
|
||
1. Функциональное программирование в Python. | ||
2. Итераторы и коллекции. Модули `itertools` и `collection`. | ||
3. Функциональное программирование c модулем `functools`. | ||
4. Декораторы функций и классов. | ||
5. Создание дата-классов с помощью декоратора `@dataclass`. | ||
6. Генерация и обработка исключений. | ||
|
||
## Разработка приложений и библиотек. Создание консольных приложений. Инструменты стандартной библиотеки. | ||
|
||
1. Логирование с модулем `logging` | ||
2. Генерация скрипта для консольной оболочки ОС с помощью `setuptools` | ||
3. Парсинг аргументов командной строки с модулем `argparse` | ||
4. Создание консольного приложения с модулем `cmd`. | ||
5. Время и дата. Модули datetime, `time` | ||
6. Работа с операционной системой через модули `os`, `sys` и `shutil`. Запуск дочерних процессов с модулем subprocess | ||
|
||
## Работа с файловой системой | ||
|
||
1. Работа с путями с помощью модуля pathlib | ||
2. Модуль io | ||
3. Использование модуля tempfile для создания временных файлов | ||
4. Системы конфигурация HYDRA и OmegaConf | ||
5. Модуль appdirs | ||
|
||
## Форматы данных и файлов. Сериализация/Дессераилизацияю | ||
|
||
### Текстовые данные и файлы. | ||
|
||
1. Строки: модули string и template, f-strings. | ||
2. Форматирование таблиц с модулем tabulate | ||
3. Формат CSV и модуль csv | ||
4. Формат JSON, валидация с помощью JSOM Schema и модули json, jsonschema, json-schema-for-humans | ||
5. Формат XML и модули xml, lxml | ||
6. YAML | ||
7. Работа с архивами с модулями zipfile и tarfile | ||
8. Последовательная обработка нескольких файлов с помощью модуля fileinput | ||
9. Numpy IO: работа с текстовыми файлами | ||
10. Шаблонизатор jinja2 | ||
11. Чтение данных с помошью Pandas | ||
|
||
### Бинарные данные и файлы. | ||
|
||
1. Типа данных bytes | ||
2. Чтение Си-структур с помощью модуля struct | ||
3. Numpy nd-arrays | ||
4. Numpy IO: файлы форматов NPY и NPZ | ||
5. Парсинг выражений с модулем numexp | ||
6. Консервация объектов. Модули pickle и shelve | ||
7. Формат Google Protobuff | ||
8. Memory mapping и модуль mmap | ||
9. Common Data Model | ||
10. Чтение файлов CERN ROOT с помощью модуля uproot | ||
11. Профилировка с модулем profile | ||
|
||
## Многопоточное, асинхронное и параллельное исполнение. GIL | ||
|
||
1. Вытесняющая многозадачность и модуль threading | ||
2. Кооперативная многозадачность и модуль asyncio | ||
3. Параллельное исполнение с модулем multyprocessing | ||
|
||
## Сетевое программирование и WEB | ||
|
||
1. Сокеты. UPD и TCP. Модули socket и socketserver | ||
2. HTTP. Модули http и request | ||
3. HTML. GET и POST запросы. . | ||
4. Асинхронный сервер с asyncio | ||
5. Построение графиков с plotly и bokeh | ||
6. WEB-фреймворки: Tornado, Flask, Django, aiohttp, FastAPI | ||
|
||
## Graphical User Interface | ||
|
||
1. Создание графических приложений с tkinter и PySide | ||
2. Events, signal and slots. Observable property. | ||
3. Models and Views. Файловый менеджер как пример MVC. | ||
4. Matplotlib и его интеграция с GUI | ||
5. Конфигурация GUI приложений | ||
|
||
## Базы данныx | ||
|
||
1. СУБД и ACID. DBM. DB API v2.0. SQLite. ORM, CRUD и SQLAlchemy | ||
|
||
## Взаимодействие с нативным кодом и оборудованием | ||
|
||
1. Взаимодействие с нативным кодом и оборудованием: Python.h, ctypes, cffi, Cython, Сборка нативных артефактов в setuptools | ||
2. Взаимодействие с нативным кодом: Numba, SWIG, Boost.Python, Embedded Python. PyROOT и G4Py как примеры. | ||
3. Работа с оборудованием и драйверами. Подключение Си-драйвера через ctypes. HID, FTD32, USB. Модули pyusb, pyserial, pyftdi, pylibftdi. Arduino. |