Практикум Python весна 2025 — различия между версиями
(Добавлен формат пересдачи) |
|||
Строка 67: | Строка 67: | ||
Блоки К, Л, Пр - блокирующие, т.е. за каждый из них надо получить хотя бы 3/10 для получения положительной итоговой оценки. | Блоки К, Л, Пр - блокирующие, т.е. за каждый из них надо получить хотя бы 3/10 для получения положительной итоговой оценки. | ||
+ | |||
+ | |||
+ | === Пересдачи по курсу === | ||
+ | |||
+ | 1. Надо понять, какой из блоков за семестр не выполнен. | ||
+ | Если не выполнены лабораторные работы, следует самостоятельно выполнить их на нужную оценку и сдать. | ||
+ | Если не выполнен проект, то нужно изучить требования к проекту и сдать его. | ||
+ | Если не выполнены контесты, то нужно будет прийти на устную сдачу и во время неё решить 3-5 несложных задач на синтаксис Python. | ||
+ | |||
+ | 2. После того, как будут выполнены задания из п.1, надо прийти на устную сдачу к Спицыну Николаю (tg: @jetminded). На ней будет обсуждение выполненных работ и вопросы на понимание; устный опрос по темам курса. | ||
+ | |||
+ | Список тем курса, из которых состоит устный опрос: | ||
+ | Внутреннее устройство и работа с памятью. | ||
+ | 1.1 Интерпретатор vs. Компилятор | ||
+ | 1.2 Интерпретатор Python (CPython, GIL, bytecode) | ||
+ | 1.3 Работа с памятью (garbage collector, подсчёт ссылок) | ||
+ | 1.4 Mutability vs. Immutability. __hash__ | ||
+ | 1.5 Deep vs. Shallow copy (copy module) | ||
+ | 1.6 Скоупы в Python. Замыкания | ||
+ | 1.7 Виртуальное окружение (venv), pip | ||
+ | 1.8 __globals__, function.__dict__, function.__defaults__ | ||
+ | |||
+ | ООП в Python | ||
+ | 2.1 Классы. Концепция ООП. Принципы, их реализация в Python | ||
+ | 2.2 Множественное наследование, Method Resolution Order (MRO) | ||
+ | 2.3 Magic methods (__dunder__). __init__, __new__, __del__ | ||
+ | 2.4 __name__, __doc__, __repr__, __str__, __format__ | ||
+ | 2.5 Descriptors (__get__, __set__, __delete__) | ||
+ | 2.6 Property decorator (@property, @setter) | ||
+ | 2.7 @classmethod, @staticmethod. Custom inits | ||
+ | |||
+ | Контейнеры в Python | ||
+ | 3.1 list, tuple, dict, set. Кто это, создание, добавление/удаление элементов, обращение к элементам | ||
+ | 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 | ||
+ | |||
+ | На основе устных ответов и выполненных работ формируется итоговая оценка за курс. |
Версия 12:21, 19 июня 2025
Содержание
[убрать]Общие сведения
Основная цель курса - научиться работе с Python и изучить практические применения в различных сферах.
Полезные ссылки
Начало курса
01.02.2025
Конец курса
31.05.2025
План курса
Блок 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)
Преподаватели курса
Спицын Николай Подзорова Полина Филатенков Артур Лотфуллин Камиль Троян-Головян Владислав Восканян Давид Реброва Алина Матыкина Ольга
Материалы занятий
Оценки
Оценка за семестр (предварительно, финальную уточнять у руководителя курса):
К + Л + Пр + Сем,
где
К - сумма баллов за контесты из блока 2, до 30% от итоговой оценки Л - сумма баллов за лабораторные работы из блока 3, до 40% от итоговой оценки Пр - балл за итоговый проект, до 30% от итоговой оценки Сем - балл от семинариста, до 10% от итоговой оценки
Блоки К, Л, Пр - блокирующие, т.е. за каждый из них надо получить хотя бы 3/10 для получения положительной итоговой оценки.
Пересдачи по курсу
1. Надо понять, какой из блоков за семестр не выполнен. Если не выполнены лабораторные работы, следует самостоятельно выполнить их на нужную оценку и сдать. Если не выполнен проект, то нужно изучить требования к проекту и сдать его. Если не выполнены контесты, то нужно будет прийти на устную сдачу и во время неё решить 3-5 несложных задач на синтаксис Python.
2. После того, как будут выполнены задания из п.1, надо прийти на устную сдачу к Спицыну Николаю (tg: @jetminded). На ней будет обсуждение выполненных работ и вопросы на понимание; устный опрос по темам курса.
Список тем курса, из которых состоит устный опрос: Внутреннее устройство и работа с памятью. 1.1 Интерпретатор vs. Компилятор 1.2 Интерпретатор Python (CPython, GIL, bytecode) 1.3 Работа с памятью (garbage collector, подсчёт ссылок) 1.4 Mutability vs. Immutability. __hash__ 1.5 Deep vs. Shallow copy (copy module) 1.6 Скоупы в Python. Замыкания 1.7 Виртуальное окружение (venv), pip 1.8 __globals__, function.__dict__, function.__defaults__
ООП в Python 2.1 Классы. Концепция ООП. Принципы, их реализация в Python 2.2 Множественное наследование, Method Resolution Order (MRO) 2.3 Magic methods (__dunder__). __init__, __new__, __del__ 2.4 __name__, __doc__, __repr__, __str__, __format__ 2.5 Descriptors (__get__, __set__, __delete__) 2.6 Property decorator (@property, @setter) 2.7 @classmethod, @staticmethod. Custom inits
Контейнеры в Python 3.1 list, tuple, dict, set. Кто это, создание, добавление/удаление элементов, обращение к элементам 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
На основе устных ответов и выполненных работ формируется итоговая оценка за курс.