Практикум Python весна 2026: различия между версиями

Материал из Public ATP Wiki
Перейти к навигации Перейти к поиску
 
(не показано 11 промежуточных версий этого же участника)
Строка 37: Строка 37:
- Flask
- Flask


==== Руководитель курса ====
=== Руководитель курса/лектор ===
Спицын Николай (tg: @Jetminded)
Спицын Н.А. (tg: @Jetminded)
 
==== Преподаватели курса ====
Спицын Николай
Подзорова Полина
Филатенков Артур
Лотфуллин Камиль
Троян-Головян Владислав
Восканян Давид
Реброва Алина
Матыкина Ольга


=== Материалы занятий ===
=== Материалы занятий ===
*[https://drive.google.com/drive/folders/1-Hh7yHPTlx0O943N7-T_m36MouPQHXbl?usp=sharing Папка с материалами лекций, семинаров и домашними заданиями]
*[https://drive.google.com/drive/folders/1qY0_A4FMKcm_DZBKBlHVFDmUkyVstmAs?usp=sharing Папка с материалами лекций, семинаров и домашними заданиями]


*[https://www.youtube.com/playlist?list=PL4_hYwCyhAva3fvTKkBGl5n1WUKY_o-dm Записи лекций продвинутого потока]


===== Оценки =====
=== Направления курса ===
Оценка за семестр (предварительно, финальную уточнять у руководителя курса):
==== Python for Physics & Math ====
Запускается на базе 503 и 516 групп. Предполагаются домашние задания и примеры на семинарах из сфер физики и математики.


К + Л + Пр + Сем,
- Базовый синтаксис


где
- ООП + декораторы


К - сумма баллов за контесты из блока 2, до 30% от итоговой оценки
- Type hints, typing
Л - сумма баллов за лабораторные работы из блока 3, до 40% от итоговой оценки
Пр - балл за итоговый проект, до 30% от итоговой оценки
Сем - балл от семинариста, до 10% от итоговой оценки


Блоки  К, Л, Пр - блокирующие, т.е. за каждый из них надо получить хотя бы 3/10 для получения положительной итоговой оценки.
- Numpy, Pandas, Matplotlib


- Numpy.linalg, sympy; PyTorch


=== Пересдачи по курсу ===
==== Основной поток + ДПО ====
- Базовый синтаксис


1. Надо понять, какой из блоков за семестр не выполнен.
- ООП + декораторы
Если не выполнены лабораторные работы, следует самостоятельно выполнить их на нужную оценку и сдать.
Если не выполнен проект, то нужно изучить требования к проекту и сдать его.
Если не выполнены контесты, то нужно будет прийти на устную сдачу и во время неё решить 3-5 несложных задач на синтаксис Python.


2. После того, как будут выполнены задания из п.1, надо прийти на устную сдачу к Спицыну Николаю (tg: @jetminded). На ней будет обсуждение выполненных работ и вопросы на понимание; устный опрос по темам курса.
- Type hints, typing


Список тем курса, из которых состоит устный опрос:
- Numpy, Pandas, Matplotlib


- Requests, работа с API


Внутреннее устройство и работа с памятью.
- BeautifulSoup


1.1 Интерпретатор vs. Компилятор
- Asyncio


1.2 Интерпретатор Python (CPython, GIL, bytecode)
==== Продвинутый поток ====
- Базовый синтаксис


1.3 Работа с памятью (garbage collector, подсчёт ссылок)
- ООП + декораторы


1.4 Mutability vs. Immutability. __hash__
- Type hints, typing


1.5 Deep vs. Shallow copy (copy module)
- Numpy, Pandas, Matplotlib


1.6 Скоупы в Python. Замыкания
- Метаклассы, декораторы


1.7 Виртуальное окружение (venv), pip
- Requests, API, BeautifulSoup


1.8 __globals__, function.__dict__, function.__defaults__
- Asyncio + multiprocessing


- PyTorch


ООП в Python
=== Критерии оценивания ===
==== Разбалловка: ====


2.1 Классы. Концепция ООП. Принципы, их реализация в Python
- 10 баллов за семинары


2.2 Множественное наследование, Method Resolution Order (MRO)
- 6 лабораторных работ по 10 баллов (60 б.)


2.3 Magic methods (__dunder__). __init__, __new__, __del__
- 30 баллов за проект


2.4 __name__, __doc__, __repr__, __str__, __format__
- 2 коллоквиума по 10 баллов (20 б.)


2.5 Descriptors (__get__, __set__, __delete__)
Для получения уд(3) и выше нужно выполнить следующие блоки:


2.6 Property decorator (@property, @setter)
- 3/10 за каждый коллоквиум


2.7 @classmethod, @staticmethod. Custom inits
- 24/60 в сумме за лабораторные работы


=== Пересдачи по курсу ===


Контейнеры в Python
1. Надо понять, какой из блоков за семестр не выполнен.
Если не выполнены лабораторные работы, следует самостоятельно выполнить их на нужную оценку и сдать.
Если не выполнен проект, то нужно изучить требования к проекту и сдать его.
Если не выполнены контесты, то нужно будет прийти на устную сдачу и во время неё решить 3-5 несложных задач на синтаксис Python.


3.1 list, tuple, dict, set. Кто это, создание, добавление/удаление элементов, обращение к элементам
2. После того, как будут выполнены задания из п.1, надо прийти на устную сдачу к Спицыну Николаю (tg: @jetminded). На ней будет обсуждение выполненных работ и вопросы на понимание; устный опрос по темам курса.
 
3.2 Sequence vs mapping. collections.abc.Sequence. collections.abc.Mapping
 
3.3 __len__, __getitem__, __setitem__, __delitem__
 
3.4 Итератор. Написание итератора. __iter__, __next__
 
 
Декораторы и генераторы
 
4.1 Декораторы: объявление, использование
 
4.2 functools (cache, lru_cache, wraps)
 
4.3 Лямбда функции, модуль operator
 
4.4 Генераторы: объявление, использование. yield
 
 
Исключения в Python
 
5.1 Иерархия built-in исключений. Примеры исключений
 
5.2 Написание своих исключений
 
5.3 Конструкция try - except - else - finally
 
5.4 from … raise. __cause__, __context__
 
5.5 assert. Assert vs. raise
 
 
Прочее
 
6.1 Операторы * и **. Правила передачи аргументов в функцию. *args, **kwargs
 
6.2 map, zip, filter, reduce
 
6.3 Контекстные менеджеры (with, contextlib). __enter__, __exit__
 
6.4 @contextmanager
 
6.5 Docstrings, type hints (typing module)
 
6.6 Format, f-строки. Оператор %.
 
6.7 @dataclass
 
6.8 @singleton
 
 
На основе устных ответов и выполненных работ формируется итоговая оценка за курс.

Текущая версия от 13:21, 1 сентября 2026

Общие сведения

Основная цель курса - научиться работе с Python и изучить практические применения в различных сферах. Python — один из самых популярных языков. До 70-80% выпускников МФТИ встречаются с Python на работе.

Полезные ссылки

Начало курса

03.02.2026

Конец курса

31.05.2026

План курса

Блок 1. Окружение - Интерпретатор Python. Отличие от компилятора. - Основы работы с Google Colab - Основы работы с VS Code

Блок 2. Синтаксис Python - Циклы, условия - Генераторы, list comprehension - Контейнеры - Функции, лямбда-функции; классы. Основы ООП

Блок 3. Python для работы с данными - Numpy - Pandas - Matplotlib, seaborn - Работа с выборками в Python - Основы HTML. Веб-скрапинг. BeautifulSoup. - Работа с API

Блок 4. Применение Python в проектной деятельности. - Telegram-боты - PyGame - Flask

Руководитель курса/лектор

Спицын Н.А. (tg: @Jetminded)

Материалы занятий

Направления курса

Python for Physics & Math

Запускается на базе 503 и 516 групп. Предполагаются домашние задания и примеры на семинарах из сфер физики и математики.

- Базовый синтаксис

- ООП + декораторы

- Type hints, typing

- Numpy, Pandas, Matplotlib

- Numpy.linalg, sympy; PyTorch

Основной поток + ДПО

- Базовый синтаксис

- ООП + декораторы

- Type hints, typing

- Numpy, Pandas, Matplotlib

- Requests, работа с API

- BeautifulSoup

- Asyncio

Продвинутый поток

- Базовый синтаксис

- ООП + декораторы

- Type hints, typing

- Numpy, Pandas, Matplotlib

- Метаклассы, декораторы

- Requests, API, BeautifulSoup

- Asyncio + multiprocessing

- PyTorch

Критерии оценивания

Разбалловка:

- 10 баллов за семинары

- 6 лабораторных работ по 10 баллов (60 б.)

- 30 баллов за проект

- 2 коллоквиума по 10 баллов (20 б.)

Для получения уд(3) и выше нужно выполнить следующие блоки:

- 3/10 за каждый коллоквиум

- 24/60 в сумме за лабораторные работы

Пересдачи по курсу

1. Надо понять, какой из блоков за семестр не выполнен. Если не выполнены лабораторные работы, следует самостоятельно выполнить их на нужную оценку и сдать. Если не выполнен проект, то нужно изучить требования к проекту и сдать его. Если не выполнены контесты, то нужно будет прийти на устную сдачу и во время неё решить 3-5 несложных задач на синтаксис Python.

2. После того, как будут выполнены задания из п.1, надо прийти на устную сдачу к Спицыну Николаю (tg: @jetminded). На ней будет обсуждение выполненных работ и вопросы на понимание; устный опрос по темам курса.