Программирование для всех (основы работы с Python): различия между версиями
(не показано 29 промежуточных версий этого же участника) | |||
Строка 83: | Строка 83: | ||
* [https://pythontutor.com/visualize.html#mode=edit Визуализатор] кода от Pythontutor. | * [https://pythontutor.com/visualize.html#mode=edit Визуализатор] кода от Pythontutor. | ||
− | |||
=== Лабораторная работа №2. Методы на списках и строках === | === Лабораторная работа №2. Методы на списках и строках === | ||
Строка 103: | Строка 102: | ||
В случае проблем с загрузкой решений на Dropbox, можно отправить работу на '''matstat.polit@gmail.com'''. | В случае проблем с загрузкой решений на Dropbox, можно отправить работу на '''matstat.polit@gmail.com'''. | ||
+ | |||
+ | === Неделя 3. Неиндексируемые структуры данных: множества и словари. === | ||
+ | |||
+ | * Видеозаписи занятий и сырой ipynb-файл с занятия ([https://disk.yandex.ru/d/3rJ2vHZuVKIbjw ссылка]). | ||
+ | * Продолжение работы с циклами: списковые включения и функция map() ([https://github.com/allatambov/PyAll24/blob/main/06-alt-for-arrays.ipynb ipynb]). | ||
+ | * Множества: обзор возможностей. | ||
+ | * Функция zip() и словари ([https://github.com/allatambov/PyAll24/blob/main/08-tuples-zip-dicts.ipynb ipynb]). | ||
+ | * Практикум 3. Функция zip() и словари ([https://github.com/allatambov/PyAll24/blob/main/pyall-practice03.ipynb ipynb]), решения ([https://github.com/allatambov/PyAll24/blob/main/pyall-practice03-solutions.ipynb ipynb]). | ||
+ | |||
+ | === Лабораторная работа №3. Функции и lambda-функции === | ||
+ | |||
+ | Для выполнения лабораторной работы необходимо уметь писать пользовательские функции,<br> | ||
+ | уметь писать lambda-функции и сочетать их с другими функциями Python. | ||
+ | |||
+ | Для этого можно (первые два пункта – любой вариант на выбор): | ||
+ | |||
+ | * Прослушать материал [https://edu.hse.ru/course/view.php?id=133389§ion=8 темы 8] ''Функции'' (достаточно первого раздела) онлайн-курса «Python как иностранный». | ||
+ | * Прочитать [https://github.com/allatambov/PyAll24/blob/main/09-functions-short.ipynb конспект] лекции ''Функции'' (для желающих – более подробная [https://nbviewer.org/github/ischurov/pythonhse/blob/master/Lecture%204.ipynb лекция] И.В.Щурова). | ||
+ | * Прочитать [https://github.com/allatambov/PyAll24/blob/main/10-lambda-functions.ipynb конспект] по lambda-функциям. | ||
+ | |||
+ | При необходимости можно посмотреть на [https://github.com/allatambov/PyAll24/blob/main/examples-functions.ipynb примеры] решений задач на функции. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Лабораторная работа !! Дедлайн !! Куда сдавать* | ||
+ | |- | ||
+ | | [https://github.com/allatambov/PyAll24/blob/main/lab03.ipynb Лабораторная работа 3] || 03.10 18:00 || [https://www.dropbox.com/request/SFNMMypoFcWGY84puDv3 ссылка] на Dropbox | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | В случае проблем с загрузкой решений на Dropbox, можно отправить работу на '''matstat.polit@gmail.com'''. | ||
+ | |||
+ | === Неделя 4. Словари и формат JSON. Массивы NumPy и датафреймы Pandas. === | ||
+ | |||
+ | * Видеозаписи занятий и сырой ipynb-файл с занятия ([https://disk.yandex.ru/d/mmhCVUA_TZc-JA ссылка]). | ||
+ | * Разнообразие словарей и формат JSON: практикум 4 ([https://github.com/allatambov/PyAll24/blob/main/pyall-practice04.ipynb ipynb]), решения ([https://github.com/allatambov/PyAll24/blob/main/pyall-practice04-solutions.ipynb ipynb]). | ||
+ | * Массивы NumPy и датафреймы Pandas ([https://github.com/allatambov/PyAll24/blob/main/11-arrays-pandas.ipynb ipynb]). | ||
+ | * Работа с датафреймами pandas: часть 1 ([https://github.com/allatambov/PyAll24/blob/main/12-pandas-part01.ipynb ipynb], [https://github.com/allatambov/PyAll24/blob/main/Salaries.csv Salaries.csv]). | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * Названия готовых цветов, поддерживаемые в Python: [https://matplotlib.org/stable/gallery/color/named_colors.html документация]. | ||
+ | * Названия цветов от colorscheme.ru с кодами HTML: [https://colorscheme.ru/color-names.html каталог]. | ||
+ | * Источники готовых палитр сочетаемых цветов: [https://colorhunt.co/ Color Hunt], [https://coolors.co/palettes/trending Coolors]. | ||
+ | * Библиотека для визуализации данных seaborn, официальная [https://seaborn.pydata.org/ документация]. | ||
+ | |||
+ | === Неделя 5. Датафреймы Pandas. Работа с API. === | ||
+ | |||
+ | * Видеозаписи и сырой файл с занятия ([https://disk.yandex.ru/d/QxSIintErW3YJg ссылка]). | ||
+ | * Работа с датафреймами pandas: часть 2 ([https://github.com/allatambov/PyAll24/blob/main/13-pandas-part02.ipynb ipynb], [https://github.com/allatambov/PyAll24/blob/main/Salaries.csv Salaries.csv]). | ||
+ | * Практикум 5. Работа с API ВКонтакте: собираем и обрабатываем посты ([https://github.com/allatambov/PyAll24/blob/main/pyall-practice05.ipynb ipynb], [https://github.com/allatambov/PyAll24/blob/main/hseteachers.xlsx hseteachers.xlsx]). | ||
+ | |||
+ | === Лабораторная работа №4. Введение в парсинг HTML === | ||
+ | |||
+ | Для выполнения лабораторной работы необходимо познакомиться с устройством HTML-файлов<br> | ||
+ | (если не знакомы) и уметь выполнять базовый поиск по тэгам с помощью BeautifulSoup. | ||
+ | |||
+ | Для этого нужно: | ||
+ | |||
+ | * Посмотреть материалы с кратким введением в HTML ([https://disk.yandex.ru/d/EaFQaIHxc2DKSA слайды], [https://disk.yandex.ru/i/7IO7zrJNOeC3Dg видео] по ним). | ||
+ | * Посмотреть материалы с введением в библиотеку BeautifulSoup ([https://github.com/allatambov/PyAll24/blob/main/14-bs-intro.ipynb конспект], [https://disk.yandex.ru/i/t4Jzbmvr1CVJvA видео] по нему). | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Лабораторная работа !! Дедлайн !! Куда сдавать | ||
+ | |- | ||
+ | | [https://github.com/allatambov/PyAll24/blob/main/lab04.ipynb Лабораторная работа 4] || 17.10 18:00 || [https://www.dropbox.com/request/Q6IYN22XEpmdv3ElS4tP ссылка] на Dropbox | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | === Неделя 6. Парсинг HTML с BeautifulSoup === | ||
+ | |||
+ | * Видеозаписи занятий ([https://disk.yandex.ru/d/0cMh8s6qz5ooFg ссылка]). | ||
+ | * Практикум 6. Парсинг HTML с BeautifulSoup: поиск по тэгам и атрибутам ([https://github.com/allatambov/PyAll24/blob/main/pyall-practice06.ipynb ipynb]), решения ([https://github.com/allatambov/PyAll24/blob/main/pyall-practice06-solutions.ipynb ipynb]). | ||
+ | * Управление браузером с Selenium: обзор возможностей ([https://github.com/allatambov/PyAll24/blob/main/pyall-practice06-add.ipynb ipynb]). | ||
+ | |||
+ | == Домашние задания == | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Задание !! Дедлайн !! Куда сдавать | ||
+ | |- | ||
+ | | [https://github.com/allatambov/PyAll24/blob/main/hw01.ipynb Домашнее задание 1] || 14.10 23:59 || [https://www.dropbox.com/request/6HXmZwyk8sYiwOp0EkCt ссылка] на Dropbox | ||
+ | |- | ||
+ | | [https://github.com/allatambov/PyAll24/blob/main/hw02.ipynb Домашнее задание 2] || 23.10 23:59 || [https://www.dropbox.com/request/T4aQ1NpkTVEFf3KNeTW3 ссылка] на Dropbox | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | == Экзамен == | ||
+ | |||
+ | Варианты: [https://disk.yandex.ru/d/O_0KEs7rYJVkXg ссылка], данные: [https://github.com/allatambov/PyAll24/blob/main/hp_upd.csv csv]. |
Текущая версия на 19:02, 24 октября 2024
Дорогие студенты!
Это страница курса «Программирование для всех (основы Python)», читаемого в 1 модуле 2024-2025 учебного года. Курс является обязательным для студентов магистерской программы «Прикладная политология» и курсом по выбору в рамках МагоЛего для студентов других образовательных программ.
Преподаватель: Тамбовцева Алла Андреевна.
Содержание
- 1 Правила игры и план курса
- 2 Программное обеспечение
- 3 Материалы и лабораторные работы
- 3.1 Неделя 0. Подготовка к работе. Настройка рабочего места.
- 3.2 Неделя 1. Введение в Python. Переменные и типы данных. Ввод и вывод.
- 3.3 Лабораторная работа 1. Логические выражения и условные конструкции.
- 3.4 Неделя 2. Индексируемые структуры данных: строки, кортежи, списки.
- 3.5 Лабораторная работа №2. Методы на списках и строках
- 3.6 Неделя 3. Неиндексируемые структуры данных: множества и словари.
- 3.7 Лабораторная работа №3. Функции и lambda-функции
- 3.8 Неделя 4. Словари и формат JSON. Массивы NumPy и датафреймы Pandas.
- 3.9 Неделя 5. Датафреймы Pandas. Работа с API.
- 3.10 Лабораторная работа №4. Введение в парсинг HTML
- 3.11 Неделя 6. Парсинг HTML с BeautifulSoup
- 4 Домашние задания
- 5 Экзамен
Правила игры и план курса
- Программа курса, организационная презентация.
- Сопровождающий онлайн-курс «Python как иностранный».
- Формула оценки: 0.28 * Лабораторные работы + 0.15 * ДЗ1 + 0.25 * ДЗ2 + 0.32 * Экзамен.
- Дедлайны у лабораторных работ жёсткие. Допустимо опоздание в пределах 15 минут, поздние работы не проверяются.
- Домашние задания, сданные позже дедлайна, оцениваются со штрафом: в пределах часа – 10% от оценки, суток – 30%, недели – 60%.
Программное обеспечение
Перед занятиями необходимо установить дистрибутив Anaconda (скачать можно здесь, регистрацию можно пропустить), который включает в себя интерпретатор языка Python, библиотеки для обработки, анализа и визуализации данных, а также среду для работы Jupyter Notebook. Также есть возможность работать в аналоге Jupyter Notebook онлайн, используя ресурс Google Colab (для создания и редактирования файлов нужен аккаунт Gmail).
Подробности по установке и работе – см. ниже в неделе 0.
Материалы и лабораторные работы
Неделя 0. Подготовка к работе. Настройка рабочего места.
Для подготовки к работе на курсе необходимо ознакомиться с материалами онлайн-курса:
- Видео. Подготовка рабочего места, инструкция по открытию файлов в Jupyter Notebook.
- Видео. Первая программа, задачи для тренировки.
А также с материалами по работе в Jupyter Notebook и Google Colab:
- Запуск Jupyter без Anaconda Navigator (инструкция).
- Работа в Jupyter Notebook (видео), отличия Google Colab от Jupyter (видео).
Дополнительно для желающих:
- Набор текста в Jupyter Notebook (видео, ipynb), больше о Markdown.
- LaTeX: Overleaf, документация, материалы по LaTeX.
Неделя 1. Введение в Python. Переменные и типы данных. Ввод и вывод.
- Видеозаписи занятий и сырой ipynb-файл с занятия (ссылка).
- Вычисления в Python, переменные и типы данных (ipynb).
- Ввод и вывод, форматирование строк (ipynb).
- Практикум 1: типы данных, ввод и вывод, форматирование строк (ipynb), решения (ipynb).
Дополнительно для желающих:
- Стандарты оформления кода PEP8.
- Документация модулей decimal и fractions для работы с десятичными и обычными дробями соответственно.
- Документация библиотеки sympy для символьных вычислений (уравнения, производные, интегралы и проч).
- Тьюториал по f-строкам, особенности новых версий f-строк.
- Интерактивные виджеты в Jupyter (альтернатива стандартному вводу и не только).
Лабораторная работа 1. Логические выражения и условные конструкции.
Для выполнения лабораторной работы необходимо изучить формулировку логических выражений
и конструкцию if-elif-else. Для этого (один из вариантов на выбор) можно:
- Прослушать материал темы 2 Условия и логические выражения онлайн-курса «Python как иностранный».
- Прочитать конспект лекции Логические выражения и условные конструкции.
- Изучить материалы онлайн-учебника Pythontutor.
Лабораторная работа | Дедлайн | Куда сдавать* |
---|---|---|
Лабораторная работа 1 | 19.09 18:00 | ссылка на Dropbox |
В случае проблем с загрузкой решений на Dropbox, можно отправить работу на matstat.polit@gmail.com.
Неделя 2. Индексируемые структуры данных: строки, кортежи, списки.
- Видеозаписи занятий (ссылка).
- Продолжение работы с условиями: конструкция try-except и ловля исключений.
- Индексируемые структуры данных: строки, кортежи, списки (ipynb).
- Цикл for и функция range(), цикл while (ipynb).
- Практикум 2. Списки и цикл for, методы .split() и .join() (ipynb), решения (ipynb).
Дополнительно:
- Визуализатор кода от Pythontutor.
Лабораторная работа №2. Методы на списках и строках
Для выполнения этой работы необходимо уметь применять методы на списках и строках.
Для этого (один из вариантов на выбор) можно:
- Прослушать материал темы 5 Методы онлайн-курса «Python как иностранный».
- Прочитать конспект лекции Методы на строках, конспект лекции Методы на списках.
Лабораторная работа | Дедлайн | Куда сдавать* |
---|---|---|
Лабораторная работа 2 | 26.09 18:00 | ссылка на Dropbox |
В случае проблем с загрузкой решений на Dropbox, можно отправить работу на matstat.polit@gmail.com.
Неделя 3. Неиндексируемые структуры данных: множества и словари.
- Видеозаписи занятий и сырой ipynb-файл с занятия (ссылка).
- Продолжение работы с циклами: списковые включения и функция map() (ipynb).
- Множества: обзор возможностей.
- Функция zip() и словари (ipynb).
- Практикум 3. Функция zip() и словари (ipynb), решения (ipynb).
Лабораторная работа №3. Функции и lambda-функции
Для выполнения лабораторной работы необходимо уметь писать пользовательские функции,
уметь писать lambda-функции и сочетать их с другими функциями Python.
Для этого можно (первые два пункта – любой вариант на выбор):
- Прослушать материал темы 8 Функции (достаточно первого раздела) онлайн-курса «Python как иностранный».
- Прочитать конспект лекции Функции (для желающих – более подробная лекция И.В.Щурова).
- Прочитать конспект по lambda-функциям.
При необходимости можно посмотреть на примеры решений задач на функции.
Лабораторная работа | Дедлайн | Куда сдавать* |
---|---|---|
Лабораторная работа 3 | 03.10 18:00 | ссылка на Dropbox |
В случае проблем с загрузкой решений на Dropbox, можно отправить работу на matstat.polit@gmail.com.
Неделя 4. Словари и формат JSON. Массивы NumPy и датафреймы Pandas.
- Видеозаписи занятий и сырой ipynb-файл с занятия (ссылка).
- Разнообразие словарей и формат JSON: практикум 4 (ipynb), решения (ipynb).
- Массивы NumPy и датафреймы Pandas (ipynb).
- Работа с датафреймами pandas: часть 1 (ipynb, Salaries.csv).
Дополнительно:
- Названия готовых цветов, поддерживаемые в Python: документация.
- Названия цветов от colorscheme.ru с кодами HTML: каталог.
- Источники готовых палитр сочетаемых цветов: Color Hunt, Coolors.
- Библиотека для визуализации данных seaborn, официальная документация.
Неделя 5. Датафреймы Pandas. Работа с API.
- Видеозаписи и сырой файл с занятия (ссылка).
- Работа с датафреймами pandas: часть 2 (ipynb, Salaries.csv).
- Практикум 5. Работа с API ВКонтакте: собираем и обрабатываем посты (ipynb, hseteachers.xlsx).
Лабораторная работа №4. Введение в парсинг HTML
Для выполнения лабораторной работы необходимо познакомиться с устройством HTML-файлов
(если не знакомы) и уметь выполнять базовый поиск по тэгам с помощью BeautifulSoup.
Для этого нужно:
- Посмотреть материалы с кратким введением в HTML (слайды, видео по ним).
- Посмотреть материалы с введением в библиотеку BeautifulSoup (конспект, видео по нему).
Лабораторная работа | Дедлайн | Куда сдавать |
---|---|---|
Лабораторная работа 4 | 17.10 18:00 | ссылка на Dropbox |
Неделя 6. Парсинг HTML с BeautifulSoup
- Видеозаписи занятий (ссылка).
- Практикум 6. Парсинг HTML с BeautifulSoup: поиск по тэгам и атрибутам (ipynb), решения (ipynb).
- Управление браузером с Selenium: обзор возможностей (ipynb).
Домашние задания
Задание | Дедлайн | Куда сдавать |
---|---|---|
Домашнее задание 1 | 14.10 23:59 | ссылка на Dropbox |
Домашнее задание 2 | 23.10 23:59 | ссылка на Dropbox |