МОВС Основы программирования на Python (ММОВС23, 1-2 модули) — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
м (add hw-2)
(Добавлены 12, 13, 14 лекции)
 
(не показано 14 промежуточных версии ещё одного участника)
Строка 1: Строка 1:
 
==О курсе==
 
==О курсе==
  
Занятия проводятся в [https://us06web.zoom.us/j/86555948101?pwd=L01SRjVvd3RhazRoVkVoREZlaFg1dz09 Zoom] '''по вторникам в 19:40'''
+
Занятия проводятся в <strike>[https://us06web.zoom.us/j/86555948101?pwd=L01SRjVvd3RhazRoVkVoREZlaFg1dz09 Zoom]</strike> [https://us06web.zoom.us/j/86766261787?pwd=cTZmajdybXdCNGIzbUxnejFnY0Jldz09 новая ссылка] '''по вторникам в 19:40'''
 +
 
 +
Онлайн-курсы:
 +
* Python для извлечения и обработки данных: https://edu.hse.ru/course/view.php?id=132749
 +
* Сбор и анализ данных в Python: https://edu.hse.ru/course/view.php?id=132492
  
 
==Контакты==
 
==Контакты==
Строка 18: Строка 22:
 
|-
 
|-
 
| style="background:#eaecf0;" | Морозов Антон || [https://t.me/MAntonV @MAntonV]
 
| style="background:#eaecf0;" | Морозов Антон || [https://t.me/MAntonV @MAntonV]
 +
|-
 +
| style="background:#eaecf0;" | Зуев Гордей || [https://t.me/WhiteShape @WhiteShape]
 +
|-
 +
| style="background:#eaecf0;" | Сокур Илья || [https://t.me/ilias_ml @ilias_ml]
 
|}
 
|}
  
Строка 29: Строка 37:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Занятие !! Тема !! Дата !! Материалы для самоподготовки к семинарам !! Дополнительные материалы
+
! Занятие !! Тема !! Дата !! Ссылки
 
|-
 
|-
 
| style="background:#eaecf0;" | '''1''' [[https://www.youtube.com/watch?v=QDPsZt9SlkQ&list=PLmA-1xX7IuzDMSdaH9B67TYDe2c4oFwSV Запись]] || [[https://github.com/pileyan/Python_2023_Master/tree/master/lect01.%20Data%20types Ноутбуки]] Основные типы и структуры данных.
 
| style="background:#eaecf0;" | '''1''' [[https://www.youtube.com/watch?v=QDPsZt9SlkQ&list=PLmA-1xX7IuzDMSdaH9B67TYDe2c4oFwSV Запись]] || [[https://github.com/pileyan/Python_2023_Master/tree/master/lect01.%20Data%20types Ноутбуки]] Основные типы и структуры данных.
  || 05.09.23 || ||  
+
  || 05.09.23 ||
 
|-
 
|-
 
| style="background:#eaecf0;" | '''2''' [[https://www.youtube.com/watch?v=fhgl4POcxAw&list=PLmA-1xX7IuzDMSdaH9B67TYDe2c4oFwSV Запись]] || [[https://github.com/pileyan/Python_2023_Master/tree/master/lect02.%20Data%20types%202 Ноутбуки]] Основные типы и структуры данных. Продолжение
 
| style="background:#eaecf0;" | '''2''' [[https://www.youtube.com/watch?v=fhgl4POcxAw&list=PLmA-1xX7IuzDMSdaH9B67TYDe2c4oFwSV Запись]] || [[https://github.com/pileyan/Python_2023_Master/tree/master/lect02.%20Data%20types%202 Ноутбуки]] Основные типы и структуры данных. Продолжение
  || 12.09.23 || ||  
+
  || 12.09.23 ||
 
|-
 
|-
 
| style="background:#eaecf0;" | '''3''' [[https://www.youtube.com/watch?v=8TDbTguBtt8&list=PLmA-1xX7IuzDMSdaH9B67TYDe2c4oFwSV Запись]] || [[https://github.com/pileyan/Python_2023_Master/tree/master/lect03.%20Loops Ноутбуки]] Ветвления, циклы
 
| style="background:#eaecf0;" | '''3''' [[https://www.youtube.com/watch?v=8TDbTguBtt8&list=PLmA-1xX7IuzDMSdaH9B67TYDe2c4oFwSV Запись]] || [[https://github.com/pileyan/Python_2023_Master/tree/master/lect03.%20Loops Ноутбуки]] Ветвления, циклы
  || 26.09.23 || ||
+
  || 26.09.23 ||
 
|-
 
|-
| style="background:#eaecf0;" | '''4''' [[https://www.youtube.com/watch?v=Av0L8YHz8hE&list=PLmA-1xX7IuzDMSdaH9B67TYDe2c4oFwSV Запись]] || [[https://github.com/pileyan/Python_2023_Master/blob/master/lect04.%20Functions/Functions.ipynb Ноутбук]] Функции, рекурсия, генераторы, декораторы. Сложность вычислений || 03.10.23 || ||
+
| style="background:#eaecf0;" | '''4''' [[https://www.youtube.com/watch?v=Av0L8YHz8hE&list=PLmA-1xX7IuzDMSdaH9B67TYDe2c4oFwSV Запись]] || [[https://github.com/pileyan/Python_2023_Master/blob/master/lect04.%20Functions/Functions.ipynb Ноутбук]] Функции, рекурсия, генераторы, декораторы. Сложность вычислений || 03.10.23 || [https://habr.com/ru/articles/320288/ Статья про генераторы] на Хабре
 
|-
 
|-
| style="background:#eaecf0;" | '''5''' [[ Запись]] || [[ Ноутбук]] Регулярные выражения
+
| style="background:#eaecf0;" | '''5''' [[https://www.youtube.com/watch?v=nfvORkyJNXA&list=PLmA-1xX7IuzDMSdaH9B67TYDe2c4oFwSV Запись]] || [[https://github.com/pileyan/Python_2023_Master/blob/master/lect05.%20Regex/regexp.ipynb Ноутбук]] Регулярные выражения
  || 10.10.23 || ||
+
  || 10.10.23 || [https://habr.com/ru/articles/349860/ Статья] про регулярки на Хабре, [https://stepik.org/course/107335/syllabus Курс на Stepik] про регулярки <br/>[https://regex101.com/ regex101] - сайт для разбора регулярных выражений, [https://docs.python.org/3/library/re.html Доки] библиотеки re, [https://pynative.com/python-regex-findall-finditer/ описание работы метода finditer]
 
|-
 
|-
| style="background:#eaecf0;" | '''6''' [[ Запись]] || [[ Ноутбук]] Парсинг || 17.10.23 || ||  
+
| style="background:#eaecf0;" | '''6''' [[https://www.youtube.com/watch?v=DBGTFo-oMVs&list=PLmA-1xX7IuzDMSdaH9B67TYDe2c4oFwSV Запись]] || [[https://github.com/pileyan/Python_2023_Master/tree/master/lect06.%20Web-scraping Ноутбуки]] Парсинг || 17.10.23 ||  
 
|-
 
|-
| style="background:#eaecf0;" | '''7''' [[ Запись]] || [[ Ноутбук]] Введение в numpy и pandas
+
| style="background:#eaecf0;" | '''7''' [[https://www.youtube.com/watch?v=k5EdrAXAgXc&list=PLmA-1xX7IuzDMSdaH9B67TYDe2c4oFwSV Запись]] || [[https://github.com/pileyan/Python_2023_Master/tree/master/lect07.%20NumPy%20 Ноутбук]] Введение в NumPy
  ||  || ||  
+
  || 19.10.23 (Чт.) ||
 +
|-
 +
 
 +
| style="background:#eaecf0;" | '''8''' [[https://www.youtube.com/watch?v=Gr6R4awHOrM&list=PLmA-1xX7IuzDMSdaH9B67TYDe2c4oFwSV Запись]] || [[https://github.com/pileyan/Python_2023_Master/tree/master/lect08.%20Pandas Ноутбук]] Pandas. Разведочный анализ данных
 +
  || 24.10.23 ||
 
|-
 
|-
 
| Конец первого модуля |
 
| Конец первого модуля |
 
|-
 
|-
| style="background:#eaecf0;" | '''8''' [[ Запись]] || [[ Ноутбук]] Разведочный анализ данных
+
| style="background:#eaecf0;" | '''9''' [[https://www.youtube.com/watch?v=gYDdCn8j-dI&list=PLmA-1xX7IuzDMSdaH9B67TYDe2c4oFwSV Запись]] || [[https://github.com/pileyan/Python_2023_Master/tree/master/lect09.%20Data%20visualization Ноутбук]] Визуализация данных
  || || ||
+
  || 31.10.23 ||
 
+
 
|-
 
|-
| style="background:#eaecf0;" | '''9''' [[ Запись]] || [[ Ноутбук]] Визуализация данных
+
| style="background:#eaecf0;" | '''10''' [[https://www.youtube.com/watch?v=ZFV7dw3M4r4&list=PLmA-1xX7IuzDMSdaH9B67TYDe2c4oFwSV Запись]] || [[https://github.com/pileyan/Python_2023_Master/tree/master/lect10.%20(OOP)%20Classes Ноутбук]] Классы и основы ООП
||  || ||  
+
|| 07.11.23 ||
 
|-
 
|-
| style="background:#eaecf0;" | '''10''' [[ Запись]] || [[ Ноутбук]] Классы и основы ООП
+
| style="background:#eaecf0;" | '''11''' [[https://www.youtube.com/watch?v=ANXApBug6Hg&list=PLmA-1xX7IuzDMSdaH9B67TYDe2c4oFwSV Запись]] || [[https://github.com/pileyan/Python_2023_Master/blob/master/lect10.%20(OOP)%20Classes/Multiarmed%20bandits.ipynb Ноутбук]] ООП 2. Многорукие бандиты || 14.11.23 ||
||  || ||
+
 
|-
 
|-
| style="background:#eaecf0;" | '''11''' [[ Запись]] || [[ Ноутбук]] Анализ текстовой информации 1: Исправление опечаток || || ||  
+
| style="background:#eaecf0;" | '''12''' [[https://youtu.be/-LUmbOXInIo?si=a6VJEBmNx_v5Y66R Запись]] || [[ Ноутбук]] Анализ текстовой информации 1: Исправление опечаток || 21.11.23 ||
 
|-
 
|-
| style="background:#eaecf0;" | '''12''' [[ Запись]] || [[ Ноутбук]] Анализ текстовой информации 2: Appproximate Nearest Neighbors (ANN) search - Faiss || || ||  
+
| style="background:#eaecf0;" | '''13''' [[https://youtu.be/eF5ehS2Jaco?si=Sfy3n2utNpnj6GVa Запись]] || [[https://github.com/pileyan/Python_2023_Master/blob/master/lect11_neighbors/neighbors%C2%A0.ipynb Ноутбук]] Анализ текстовой информации 2: Appproximate Nearest Neighbors (ANN) search - Faiss || 12.12.23 ||  
 +
|-
 +
| style="background:#eaecf0;" | '''14''' [[https://youtu.be/MuObAsBtFnk?si=ArcLe0mj57fRr9Vt Запись]] || [[https://github.com/pileyan/Python_2023_Master/tree/master/lect12.%20t-digest%20and%20quantiles Ноутбук]] Пайплайн EDA и (возможно) трюки в IPython и Jupyter || 19.12.23 ||  
 
|-
 
|-
 
|}
 
|}
Строка 101: Строка 113:
  
 
== Домашние задания ==
 
== Домашние задания ==
Инвайт в [https://anytask.org/ Anytask]: <code>BCB3V6W</code>
+
Инвайт в [https://anytask.org/course/1035 Anytask]: <code>BCB3V6W</code>
  
 
# [https://github.com/pileyan/Python_2023_Master/blob/master/homework/hw_01.ipynb ДЗ-1: Типы данных], выдано 14.09.23, '''дедлайн: 24.09.23 23:59 (МСК)'''
 
# [https://github.com/pileyan/Python_2023_Master/blob/master/homework/hw_01.ipynb ДЗ-1: Типы данных], выдано 14.09.23, '''дедлайн: 24.09.23 23:59 (МСК)'''
 
# [https://github.com/pileyan/Python_2023_Master/blob/master/homework/hw_02.ipynb ДЗ-2: Функции], выдано 04.10.23, '''дедлайн: 17.10.23 23:59 (МСК)'''
 
# [https://github.com/pileyan/Python_2023_Master/blob/master/homework/hw_02.ipynb ДЗ-2: Функции], выдано 04.10.23, '''дедлайн: 17.10.23 23:59 (МСК)'''
#  
+
# [https://github.com/pileyan/Python_2023_Master/blob/master/homework/hw_03.ipynb ДЗ-3: Парсинг, регулярки, немного NumPy], выдано 20.10.23, '''ЖЁСТКИЙ Дедлайн: 01.11.23 23:59 (МСК)'''
#
+
# [https://github.com/pileyan/Python_2023_Master/blob/master/homework/hw_04.ipynb ДЗ-4: pandas, визуальный анализ], выдано 08.11.23, '''дедлайн: 21.11.23 23:59 (МСК)'''
 +
# ООП
 +
 
 +
== Тесты ==
 +
1) [https://forms.yandex.ru/u/6520e5c2c09c02875e63cae1/ "Структуры данных, функции"], '''Дедлайн: 10.10.23 (Вт.) 23:59 МСК'''<br/>
 +
2) [https://forms.yandex.ru/u/653639653e9d088871dafe56/ "Регулярные выражения, numpy"], '''Дедлайн: 25.10.23 (Ср.) 23:59 МСК'''<br/>
 +
3) [https://forms.gle/eXSHSJ4jKto33rod9 "NumPy, Pandas, визуализация"], '''Дедлайн: 17.11.23 (Пт.) 23:59 МСК'''<br/>
 +
4) "ООП"<br/>
 +
5)
  
 
== Литература ==
 
== Литература ==

Текущая версия на 16:21, 23 декабря 2023

О курсе

Занятия проводятся в Zoom новая ссылка по вторникам в 19:40

Онлайн-курсы:

Контакты

Чат курса в TG: https://t.me/+MAwRza1aQ9Q4MzNi

Преподаватель: Пиле Ян Эрнестович (https://www.hse.ru/org/persons/591284001)

Ассистент Telegram
Калашникова Анастасия @kalassnikovaa
Флоринский Михаил @roflinski
Морозов Антон @MAntonV
Зуев Гордей @WhiteShape
Сокур Илья @ilias_ml

Материалы курса

Ссылка на плейлист курса на YouTube: YouTube-playlist

Ссылка на GitHub с материалами курса: GitHub repository

После 4-го занятия возможны перестановки по блокам тем

Занятие Тема Дата Ссылки
1 [Запись] [Ноутбуки] Основные типы и структуры данных. 05.09.23
2 [Запись] [Ноутбуки] Основные типы и структуры данных. Продолжение 12.09.23
3 [Запись] [Ноутбуки] Ветвления, циклы 26.09.23
4 [Запись] [Ноутбук] Функции, рекурсия, генераторы, декораторы. Сложность вычислений 03.10.23 Статья про генераторы на Хабре
5 [Запись] [Ноутбук] Регулярные выражения 10.10.23 Статья про регулярки на Хабре, Курс на Stepik про регулярки
regex101 - сайт для разбора регулярных выражений, Доки библиотеки re, описание работы метода finditer
6 [Запись] [Ноутбуки] Парсинг 17.10.23
7 [Запись] [Ноутбук] Введение в NumPy 19.10.23 (Чт.)
8 [Запись] [Ноутбук] Pandas. Разведочный анализ данных 24.10.23
9 [Запись] [Ноутбук] Визуализация данных 31.10.23
10 [Запись] [Ноутбук] Классы и основы ООП 07.11.23
11 [Запись] [Ноутбук] ООП 2. Многорукие бандиты 14.11.23
12 [Запись] Ноутбук Анализ текстовой информации 1: Исправление опечаток 21.11.23
13 [Запись] [Ноутбук] Анализ текстовой информации 2: Appproximate Nearest Neighbors (ANN) search - Faiss 12.12.23
14 [Запись] [Ноутбук] Пайплайн EDA и (возможно) трюки в IPython и Jupyter 19.12.23

Записи консультаций

Формула оценивания

Оценка = 0.3*ОТесты + 0.7*ОДЗ

Распределительное задание

Ноутбук на GitHub. Дедлайн: 08.09.23 (Пт), 23:59 МСК

По результатам мы можем порекомендовать вам не посещать настоящий курс и идти на курсы MLOps. Начало (1-й модуль, Елизавета Гаврилова) и MLOps (2-й модуль, Владислав Гончаренко)

Вторая опция не проходить курс: сдать проект, требования по которым описаны ниже.

Заполненный ноутбук с заданиями распределительного тестирования нужно приложить в Anytask в соответствующий слот.

Проект

Получить оценку за этот курс по альтернативному треку (без ДЗ и тестов) можно путём сдачи проекта.

Требования:

В целом, вас не хочется ограничивать, но предложение преподавателя такое:

  • Парсер;
  •   Разведочный анализ данных/какую-то обработку этих собранных данных;
  •    Потенциальную обработку ошибок (парсер не завелся/запрос вам отправили неправильный);
  •     Неплохо бы фронтенд взаимодействия с пользователем (например, в телеге бота запилить);
  •      И выкладку на сервер, чтоб работало без вашего включенного компа.

Итоговая цель примерно такова, что проект должен отвечать на вопрос: Умеет ли студент на некотором уровне решать задачи с помощью питона.

Если у вас есть альтернативные предложения по проекту - готовы их обсудить.

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

Инвайт в Anytask: BCB3V6W

  1. ДЗ-1: Типы данных, выдано 14.09.23, дедлайн: 24.09.23 23:59 (МСК)
  2. ДЗ-2: Функции, выдано 04.10.23, дедлайн: 17.10.23 23:59 (МСК)
  3. ДЗ-3: Парсинг, регулярки, немного NumPy, выдано 20.10.23, ЖЁСТКИЙ Дедлайн: 01.11.23 23:59 (МСК)
  4. ДЗ-4: pandas, визуальный анализ, выдано 08.11.23, дедлайн: 21.11.23 23:59 (МСК)
  5. ООП

Тесты

1) "Структуры данных, функции", Дедлайн: 10.10.23 (Вт.) 23:59 МСК
2) "Регулярные выражения, numpy", Дедлайн: 25.10.23 (Ср.) 23:59 МСК
3) "NumPy, Pandas, визуализация", Дедлайн: 17.11.23 (Пт.) 23:59 МСК
4) "ООП"
5)

Литература

  • Лутц Марк, "Программирование на Python"
  • Dan Bader, "Python Tricks: The Book"
  • Гарри Персиваль, "Python. Разработка на основе тестирования"
  • Micha Gorelick & Ian Ozsvald "High Performance Python"