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

Материал из Public ATP Wiki
Перейти к: навигация, поиск
(Общие сведения)
м
 
(не показано 9 промежуточных версий 3 участников)
Строка 1: Строка 1:
 
= Общие сведения =
 
= Общие сведения =
  
[https://docs.google.com/forms/d/e/1FAIpQLSdR69YysLl3qxiPnfXyzluAsisKU3TGOkpKoA6Jx-GhVTQBUw/viewform?usp=header Регистрация на курс]
+
Основная цель курса - научиться работе с Python и изучить практические применения в различных сферах.
  
==== План курса====
+
'''Полезные ссылки'''
 +
*[https://docs.google.com/forms/d/e/1FAIpQLSe43I80JtDVeaKpIKNOoNtZfNy048HI3K3MzYW-cgwpVVWbsA/viewform?usp=header Форма регистрации на курс]
  
==== Руководитель курса====
+
==== Начало курса ====
 +
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)
 +
 
 +
==== Преподаватели курса ====
 
Спицын Николай
 
Спицын Николай
 +
Подзорова Полина
 +
Филатенков Артур
 +
Лотфуллин Камиль
 +
Троян-Головян Владислав
 +
Восканян Давид
 +
Реброва Алина
 +
Матыкина Ольга
  
==== Преподаватели курса====
+
=== Материалы занятий ===
 +
*[https://drive.google.com/drive/folders/1-Hh7yHPTlx0O943N7-T_m36MouPQHXbl?usp=sharing Папка с материалами лекций, семинаров и домашними заданиями]
  
=== Материалы занятий ===
 
  
 
===== Оценки =====
 
===== Оценки =====
Оценка за семестр (с округлением вниз:
+
Оценка за семестр (предварительно, финальную уточнять у руководителя курса):
  
Кр + З + Б,
+
К + Л + Пр + Сем,
  
 
где
 
где
  
Кр – средний балл за все контрольные в семестре,
+
К - сумма баллов за контесты из блока 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
  
===== Семинары =====
 
*[https:// Коды и презентации семинаров]
 
*[https://Домашние задания]
 
*[https://Интересные ссылки]
 
  
== Технические ссылки ==
+
На основе устных ответов и выполненных работ формируется итоговая оценка за курс.

Текущая версия на 12:22, 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


На основе устных ответов и выполненных работ формируется итоговая оценка за курс.