Программирование на Python: различия между версиями
(не показано 20 промежуточных версий этого же участника) | |||
Строка 107: | Строка 107: | ||
=== Парсинг HTML с BeautifulSoup: часть 1 (26 и 28 мая) === | === Парсинг HTML с BeautifulSoup: часть 1 (26 и 28 мая) === | ||
− | * Практикум 5: парсинг новостей ([https://allatambov.github.io/PyProgPerm/practice/parse-01.ipynb ipynb]) | + | * [https://www.dropbox.com/sh/bqgfwn3pdd1fgh9/AADEsJ4F44zTjMMWMujOfCoba?dl=0 Видеозаписи] занятий. |
+ | * Введение в HTML: знакомство с тэгами ([https://www.dropbox.com/s/igzv6fb0l5fd5dz/Intro_HTML.pdf?dl=0 слайды]). | ||
+ | * Практикум 5: парсинг новостей ([https://allatambov.github.io/PyProgPerm/practice/parse-01.ipynb ipynb], [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/parse-01-solutions.ipynb решения]). | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * [https://www.w3schools.com/html/ Тьюториал] w3schools. | ||
+ | * [https://html5book.ru/html-tags/ Учебник] от html5book.ru. | ||
+ | |||
+ | === Парсинг HTML с BeautifulSoup: часть 2 (30 мая и 2 июня) === | ||
+ | |||
+ | * [https://www.dropbox.com/sh/svbfgkg3gh8a9gh/AAD6OVUeVtLBboZTpVt4OJXCa?dl=0 Видеозаписи] занятий. | ||
+ | * Практикум 6: продолжение парсинга новостей ([https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/parse-02.ipynb читать], [https://allatambov.github.io/PyProgPerm/practice/parse-02.ipynb ipynb]). | ||
+ | * Исключения: конструкция try-except ([https://nbviewer.org/github/allatambov/allatambov.github.io/blob/master/web-scrape/try-except.ipynb конспект]). | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * [https://www.crummy.com/software/BeautifulSoup/bs4/doc/ Документация] BeautifulSoup. | ||
+ | * Управление браузером с Selenium: [https://nbviewer.org/github/allatambov/allatambov.github.io/blob/master/web-scrape/selenium-bg.ipynb пример] с поиском по сайту, [https://nbviewer.org/github/allatambov/allatambov.github.io/blob/master/web-scrape/selenium-vk.ipynb пример] с поиском ВКонтакте. | ||
+ | |||
+ | === Введение в API. Работа с API ВКонтакте. (6 июня и 9 июня) === | ||
+ | |||
+ | * Видеолекции: получение доступа к API ([https://www.dropbox.com/s/ckesmd4vinw81bo/video01.mp4?dl=0 видео 1]), введение в API ВКонтакте ([https://www.dropbox.com/s/241uip1ep0ojrds/video02.mp4?dl=0 видео 2]). | ||
+ | * Получение доступа к API ВКонтакте: [https://allatambov.github.io/pypolit/vk-auth.pdf инструкция]. | ||
+ | * [https://dev.vk.com/reference Документация] API ВКонтакте. | ||
+ | * Работа с API ВКонтакте: собираем посты со стены: [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/practice-vk.ipynb решения] практикума. | ||
+ | * [https://www.dropbox.com/sh/9wghpd707hyl8jw/AACNesCmh1FvfK0Vkb4bneJ6a?dl=0 Видеозаписи] занятий. | ||
+ | |||
+ | Дополнительно: | ||
+ | |||
+ | * Работа с API ВКонтакте: собираем информацию о друзьях: [https://nbviewer.org/github/allatambov/allatambov.github.io/blob/master/web-scrape/vk-api-friends-upd.ipynb конспект]. | ||
+ | |||
+ | === Датафреймы pandas. (16 июня и 18 июня) === | ||
+ | |||
+ | * [https://www.dropbox.com/sh/k4n1gumu9gxm14z/AAA0w173rD9IsGV2zPSiVqJ4a?dl=0 Видеозаписи] занятий. | ||
+ | * Данные для работы: [https://allatambov.github.io/pydj/seminars/firtree.csv firtree.csv], [https://allatambov.github.io/PyProgPerm/practice/polit.csv polit.csv]. | ||
+ | * Массивы NumPy, последовательности и датафреймы Pandas ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/arrays-pandas.ipynb читать], [https://allatambov.github.io/icef/seminars/arrays-pandas.ipynb скачать]). | ||
+ | * Работа с датафреймами pandas: часть 1 ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/pandas-01.ipynb читать], [https://allatambov.github.io/icef/seminars/pandas-01.ipynb скачать]), часть 2 ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/pandas-02.ipynb читать], [https://allatambov.github.io/icef/seminars/pandas-02.ipynb скачать]), часть 3 ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/pandas-03.ipynb читать], [https://allatambov.github.io/icef/seminars/pandas-03.ipynb скачать]). | ||
+ | * Видеолекции: [https://www.dropbox.com/s/9mwyk6z1aa6hejj/pandas-01.mp4?dl=0 pandas 01], [https://www.dropbox.com/s/zy4fj5ajpvnunfw/pandas-02.mov?dl=0 pandas 02], [https://www.dropbox.com/s/s0cx5cwiblz962d/pandas-03.mp4?dl=0 pandas 03]. | ||
+ | * [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/practice-pandas.ipynb Практикум 8] с решениями. | ||
== Домашние задания == | == Домашние задания == | ||
Строка 126: | Строка 165: | ||
|- | |- | ||
| Домашнее задание 5 || Глава [https://campus.datacamp.com/courses/data-types-for-data-science-in-python/dictionaries-the-root-of-python?ex=1 Dictionaries – the root of Python] || 19.05 23:59 || 19.05 23:59 | | Домашнее задание 5 || Глава [https://campus.datacamp.com/courses/data-types-for-data-science-in-python/dictionaries-the-root-of-python?ex=1 Dictionaries – the root of Python] || 19.05 23:59 || 19.05 23:59 | ||
+ | |- | ||
+ | | Домашнее задание 6 || [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/Homework02.ipynb задачи] сдавать на [https://www.dropbox.com/request/ini9FcfBF5Crwa5T5Nze Dropbox] || 11.06 23:59 || 11.06 23:59 | ||
+ | |- | ||
+ | | Домашнее задание 7 || Глава [https://campus.datacamp.com/courses/data-manipulation-with-pandas/transforming-dataframes?ex=1 Transforming DataFrames] || 12.06 23:59 || 12.06 23:59 | ||
+ | |- | ||
+ | | Домашнее задание 8 || Глава [https://campus.datacamp.com/courses/data-manipulation-with-pandas/aggregating-dataframes?ex=1 Aggregating DataFrames] || 12.06 23:59 || 12.06 23:59 | ||
+ | |- | ||
+ | | Домашнее задание 9 || [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/Homework03.ipynb задачи] сдавать на [https://www.dropbox.com/request/rCIb2VVPakaZuPQGw0kQ Dropbox] || 18.06 23:59 || 18.06 23:59 | ||
|} | |} | ||
== Контрольная работа == | == Контрольная работа == | ||
− | * Практическая часть (подгруппа 3): [https://www.dropbox.com/sh/ | + | * Практическая часть (подгруппа 3): [https://www.dropbox.com/sh/13828p96c92rfu8/AAB_MpOIUjCm_FJ-aY05RVzma?dl=0 вариант], [https://www.dropbox.com/request/RirgJNbjBwFjrijnrq9O ссылка] для сдачи. |
− | * Практическая часть (подгруппа 4): [вариант], [https://www.dropbox.com/request/r39L5xZm1hJZxDGKMBiT ссылка] для сдачи. | + | * Практическая часть (подгруппа 4): [https://www.dropbox.com/sh/dpztmkqkxi85fev/AAC5ofMPAbO37qnsSseSIa8Ja?dl=0 вариант], [https://www.dropbox.com/request/r39L5xZm1hJZxDGKMBiT ссылка] для сдачи. |
+ | * Практическая часть (подгруппа 1): [https://www.dropbox.com/sh/9whwdaqe8wdm36r/AACZ020vyU1-iHxtGeFr4dTra?dl=0 вариант], [https://www.dropbox.com/request/idyaWZx0tDFAP7lIGeID ссылка] для сдачи. | ||
+ | * Практическая часть (подгруппа 2): [https://www.dropbox.com/sh/osnor2conow9sbt/AAASVYAHKVDoQL3jABZixEfba?dl=0 вариант], [https://www.dropbox.com/request/rSt7nPejPGZ7Z9OwSrzl ссылка] для сдачи. |
Версия 04:40, 19 июня 2022
Дорогие студенты!
Это страница обязательного курса «Программирование на Python», читаемого на программе «Бизнес-информатика» 2 курса бакалавриата в 4 модуле
2021-2022 учебного года. Курс реализуется в смешанном формате, онлайн часть обеспечивается главами курсов на платформе DataCamp.
Практические занятия ведёт: Тамбовцева Алла Андреевна.
Содержание
- 1 Правила игры
- 2 Программное обеспечение
- 3 Материалы
- 3.1 Введение в Python. Переменные и типы данных. Ввод и вывод. (4 и 7 апреля)
- 3.2 Списки и цикл for. Методы на строках. Работа с файлами. (11 и 14 апреля)
- 3.3 Списки vs массивы. Условные конструкции. (18 и 21 апреля)
- 3.4 Цикл while. Функции в Python. (25 и 28 апреля)
- 3.5 Кортежи и словари. Формат JSON. (12 и 14 мая)
- 3.6 Объектно-ориентированное и функциональное программирование в Python. (16 и 19 мая)
- 3.7 Парсинг HTML с BeautifulSoup: часть 1 (26 и 28 мая)
- 3.8 Парсинг HTML с BeautifulSoup: часть 2 (30 мая и 2 июня)
- 3.9 Введение в API. Работа с API ВКонтакте. (6 июня и 9 июня)
- 3.10 Датафреймы pandas. (16 июня и 18 июня)
- 4 Домашние задания
- 5 Контрольная работа
Правила игры
Формула оценки: Итог = 0.3 * Контрольная работа + 0.2 * Домашние задания + 0.1 * Онлайн-курс + 0.4 * Экзамен.
- Контрольная работа состоит из двух частей: теоретической и практической. Теоретическая часть содержит тестовые и открытые вопросы по синтаксису, типам и структурам данных в Python, во время её выполнения нельзя запускать код на компьютере и пользоваться материалами. Практическая часть состоит из задач по программированию, во время её выполнения можно пользоваться любыми открытыми источниками, но нельзя создавать новые вопросы на форумах и подобных ресурсах. Оценка за КР – целое число в 10-балльной шкале.
- Экзамен проходит в том же формате, что и контрольная работа. Оценка за экзамен – целое число в 10-балльной шкале.
- Домашние задания представляют собой набор задач по программированию по пройденным темам. Оценка за домашние задания – неокруглённое среднее арифметическое за все домашние задания по курсу.
- Оценка за Онлайн-курс формируется как доля прослушанных студентом глав на DataCamp от общего количества назначенных для прослушивания глав, домноженная на 10, без округления.
При сдаче домашнего задания позже указанного срока предусмотрены штрафы. Опоздание в пределах часа ведёт к штрафу 10% от полученной оценки,
в пределах суток – к штрафу 30%, в пределах недели – к штрафу 70%. Дедлайны для прослушивания глав онлайн-курса жёсткие, главу по предложенной теме необходимо пройти до практического занятия по этой теме.
Программное обеспечение
На курсе мы будем работать в двух средах: PyCharm и Jupyter Notebook.
- PyCharm – профессиональная среда для разработки, работает преимущественно с исполняемыми файлами, содержащими программы на Python (файлы с расширением .py).
- Jupyter Notebook – продукт проекта Jupyter, более простая среда для знакомства с языком, часто используется в дата-аналитике и машинном обучении, позволяет создавать красиво оформленные файлы с кодом, текстом и графиками (файлы с расширением .ipynb).
Скачать PyCharm можно здесь, достаточно версии Community.
Jupyter Notebook можно скачать как отдельно, так и внутри дистрибутива Anaconda, который включает в себя интерпретатор языка Python, библиотеки для обработки, анализа и визуализации данных:
- Если у вас установлен интерпретатор Python и вы знакомы с командой pip install, можно поставить Jupyter Notebook отдельно по этой инструкции.
- Если вы не знакомы с Python, рекомендуется поставить дистрибутив Anaconda, скачать можно здесь.
Также есть возможность работать в Jupyter Notebook онлайн, используя ресурс Google Colab (для создания и редактирования файлов нужен аккаунт Gmail). PyCharm в бесплатной версии Community умеет открывать ipynb-файлы, созданные в Jupyter Notebook, но только режиме чтения, редактировать их нельзя.
Материалы
Введение в Python. Переменные и типы данных. Ввод и вывод. (4 и 7 апреля)
- Видеозаписи занятий по подгруппам.
- Знакомство со средой Jupyter Notebook. Инструкция по работе с Jupyter Notebook. Знакомство с Jupyter Notebook и Markdown (читать, ipynb).
- Вычисления и переменные в Python (читать, ipynb). Типы данных, ввод и вывод, форматирование строк (читать, ipynb).
- Стандарты оформления кода Python: PEP8.
Дополнительно:
- Pythontutor: визуализатор кода, вычисления, ввод и вывод.
- Markdown и Jupyter: больше про Markdown, интерактивные виджеты в Jupyter.
- LaTeX: ShareLaTeX для желающих, документация на английском, материалы других курсов по LaTeX.
Списки и цикл for. Методы на строках. Работа с файлами. (11 и 14 апреля)
- Видеозаписи занятий по подгруппам.
- Практикум 1. Списки, цикл for, методы на строках (задания, решения, py-файлы).
- Методы на списках (обзор). Функция range() и цикл for (конспект, ipynb). Методы на строках (конспект, ipynb).
- Чтение и запись текстовых файлов (конспект, ipynb).
Дополнительно:
- Конспект по спискам и циклу for.
- Конспект по методам на списках.
- Pythontutor: цикл for, списки, строки.
Списки vs массивы. Условные конструкции. (18 и 21 апреля)
- Видеозаписи занятий по подгруппам.
- Проверка условий: конспект. Условные конструкции в Python: конспект.
- Практикум 2: списки vs массивы, условия и циклы (задания, решения, py-файлы).
Дополнительно:
Цикл while. Функции в Python. (25 и 28 апреля)
- Видеозаписи занятий по подгруппам.
- Цикл while: конспект.
- Полная лекция по функциям (И.В.Щуров).
- Практикум 3: функция в Python (задания, решения, py-файлы).
Дополнительно:
- Pythontutor: цикл while.
- Pythontutor: функции и рекурсия.
Кортежи и словари. Формат JSON. (12 и 14 мая)
- Видеозаписи занятий по подгруппам.
- Кортежи (конспект). Словари (конспект). Работа с файлами JSON (конспект).
- Практикум 4: кортежи и словари в Python (задания, решения, py-файлы).
Дополнительно:
Объектно-ориентированное и функциональное программирование в Python. (16 и 19 мая)
- Видеозаписи занятий по подгруппам.
- Классы в Python (конспект).
- Lambda-функции, filter() и map() (конспект).
Парсинг HTML с BeautifulSoup: часть 1 (26 и 28 мая)
- Видеозаписи занятий.
- Введение в HTML: знакомство с тэгами (слайды).
- Практикум 5: парсинг новостей (ipynb, решения).
Дополнительно:
Парсинг HTML с BeautifulSoup: часть 2 (30 мая и 2 июня)
- Видеозаписи занятий.
- Практикум 6: продолжение парсинга новостей (читать, ipynb).
- Исключения: конструкция try-except (конспект).
Дополнительно:
- Документация BeautifulSoup.
- Управление браузером с Selenium: пример с поиском по сайту, пример с поиском ВКонтакте.
Введение в API. Работа с API ВКонтакте. (6 июня и 9 июня)
- Видеолекции: получение доступа к API (видео 1), введение в API ВКонтакте (видео 2).
- Получение доступа к API ВКонтакте: инструкция.
- Документация API ВКонтакте.
- Работа с API ВКонтакте: собираем посты со стены: решения практикума.
- Видеозаписи занятий.
Дополнительно:
- Работа с API ВКонтакте: собираем информацию о друзьях: конспект.
Датафреймы pandas. (16 июня и 18 июня)
- Видеозаписи занятий.
- Данные для работы: firtree.csv, polit.csv.
- Массивы NumPy, последовательности и датафреймы Pandas (читать, скачать).
- Работа с датафреймами pandas: часть 1 (читать, скачать), часть 2 (читать, скачать), часть 3 (читать, скачать).
- Видеолекции: pandas 01, pandas 02, pandas 03.
- Практикум 8 с решениями.
Домашние задания
Из заданий на DataCamp формируется оценка за онлайн-курс, из обычных домашних заданий – оценка за домашние задания.
Домашнее задание | Задание | Дедлайн (группы 1-2) | Дедлайн (группы 3-4) |
---|---|---|---|
Домашнее задание 1 | Глава Python Lists | 11.04 11:00 | 14.04 11:00 |
Домашнее задание 2 | Глава NumPy | 18.04 11:00 | 21.04 11:00 |
Домашнее задание 3 | Глава Fundamental data types | 29.04 11:00 | 29.04 11:00 |
Домашнее задание 4 | задачи сдавать на Dropbox | 05.05 23:59 | 05.05 23:59 |
Домашнее задание 5 | Глава Dictionaries – the root of Python | 19.05 23:59 | 19.05 23:59 |
Домашнее задание 6 | задачи сдавать на Dropbox | 11.06 23:59 | 11.06 23:59 |
Домашнее задание 7 | Глава Transforming DataFrames | 12.06 23:59 | 12.06 23:59 |
Домашнее задание 8 | Глава Aggregating DataFrames | 12.06 23:59 | 12.06 23:59 |
Домашнее задание 9 | задачи сдавать на Dropbox | 18.06 23:59 | 18.06 23:59 |