Программирование на Python: различия между версиями

Материал из MathINFO
Перейти к навигации Перейти к поиску
 
(не показано 46 промежуточных версий этого же участника)
Строка 61: Строка 61:
 
Дополнительно:
 
Дополнительно:
  
 +
* [https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/lists-1.ipynb Конспект] по спискам и циклу for.  
 +
* [https://nbviewer.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/lists-2.ipynb Конспект] по методам на списках.
 
* Pythontutor: [https://pythontutor.ru/lessons/for_loop/ цикл for], [https://pythontutor.ru/lessons/lists/ списки], [https://pythontutor.ru/lessons/str/ строки].
 
* Pythontutor: [https://pythontutor.ru/lessons/for_loop/ цикл for], [https://pythontutor.ru/lessons/lists/ списки], [https://pythontutor.ru/lessons/str/ строки].
  
=== Списки vs массивы. Условные конструкции и цикл while. (11 и 14 апреля) ===
+
=== Списки vs массивы. Условные конструкции. (18 и 21 апреля) ===
  
* Видеозаписи занятий по подгруппам.
+
* [https://www.dropbox.com/sh/x89cjvvtjwxgyr8/AADkHMPu1R_cDgLNuwI9qv96a?dl=0 Видеозаписи] занятий по подгруппам.
* Практикум 2: списки vs массивы, условия и циклы ([https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/practice02.ipynb задания]).
+
* Проверка условий: [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/lectures/conditions.ipynb конспект]. Условные конструкции в Python: [https://github.com/allatambov/allatambov.github.io/blob/master/icef/seminars/if-else.ipynb конспект].
 +
* Практикум 2: списки vs массивы, условия и циклы ([https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/practice02.ipynb задания], [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/practice02-solutions.ipynb решения], [https://github.com/allatambov/allatambov.github.io/tree/master/PyProgPerm/practice/practice02 py-файлы]).
 +
 
 +
Дополнительно:
 +
 
 +
* Pythontutor: [https://pythontutor.ru/lessons/ifelse/ условия].
 +
* Сравнение continue и pass ([https://www.geeksforgeeks.org/difference-between-continue-and-pass-statements-in-python/ статья]).
 +
 
 +
=== Цикл while. Функции в Python. (25 и 28 апреля) ===
 +
 
 +
* [https://www.dropbox.com/scl/fo/oidz0kza9tfp7u2g934wg/h?dl=0&rlkey=8pn5ingst9pz9imj93izmpvph Видеозаписи] занятий по подгруппам.
 +
* Цикл while: [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/lectures/while.ipynb конспект].
 +
* Полная [https://nbviewer.jupyter.org/github/ischurov/pythonhse/blob/master/Lecture%204.ipynb лекция] по функциям (И.В.Щуров).
 +
* Практикум 3: функция в Python ([https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/practice03.ipynb задания], [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/practice03-solutions.ipynb решения], [https://github.com/allatambov/allatambov.github.io/tree/master/PyProgPerm/practice/practice03 py-файлы]).
 +
 
 +
Дополнительно:
 +
 
 +
* Pythontutor: [https://pythontutor.ru/lessons/while/ цикл while].
 +
* Pythontutor: [https://pythontutor.ru/lessons/functions/ функции и рекурсия].
 +
 
 +
=== Кортежи и словари. Формат JSON. (12 и 14 мая) ===
 +
 
 +
* [https://www.dropbox.com/sh/777ibogohqiq19y/AABNSsU-63TuqohiqLH-JOvda?dl=0 Видеозаписи] занятий по подгруппам.
 +
* Кортежи ([https://github.com/allatambov/allatambov.github.io/blob/master/icef/seminars/tuples.ipynb конспект]). Словари ([https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/lectures/dicts.ipynb конспект]). Работа с файлами JSON ([https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/lectures/files-json.ipynb конспект]).
 +
* Практикум 4: кортежи и словари в Python ([https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/practice04.ipynb задания], [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/practice/practice04-solutions.ipynb решения], py-файлы).
 +
 
 +
Дополнительно:
 +
 
 +
* Pythontutor: [https://pythontutor.ru/lessons/dicts/ словари], [https://pythontutor.ru/lessons/sets/ множества].
 +
* [https://nbviewer.org/github/PyBasics-19/py-basics-19/blob/master/lectures/sets.ipynb Конспект] по основным методам на множествах.
 +
 
 +
=== Объектно-ориентированное и функциональное программирование в Python. (16 и 19 мая) ===
 +
 
 +
* [https://www.dropbox.com/sh/797qva9eo1lbxl2/AACG2eXvm-Q2acLCNEFNSxJwa?dl=0 Видеозаписи] занятий по подгруппам.
 +
* Классы в Python ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/pydj/seminars/classes.ipynb конспект]).
 +
* Lambda-функции, filter() и map() ([https://nbviewer.jupyter.org/github/allatambov/PyDat-0919/blob/master/lectures-seminars/5-files/lambda-functions.ipynb конспект]).
 +
 
 +
=== Парсинг HTML с BeautifulSoup: часть 1 (26 и 28 мая) ===
 +
 
 +
* [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] с решениями.
  
 
== Домашние задания ==
 
== Домашние задания ==
Строка 80: Строка 160:
 
| Домашнее задание 2 || Глава [https://campus.datacamp.com/courses/intro-to-python-for-data-science/chapter-4-numpy?ex=1 NumPy] || 18.04 11:00 || 21.04 11:00
 
| Домашнее задание 2 || Глава [https://campus.datacamp.com/courses/intro-to-python-for-data-science/chapter-4-numpy?ex=1 NumPy] || 18.04 11:00 || 21.04 11:00
 
|-
 
|-
 +
| Домашнее задание 3 || Глава [https://campus.datacamp.com/courses/data-types-for-data-science-in-python/fundamental-data-types?ex=1 Fundamental data types] || 29.04 11:00 || 29.04 11:00
 +
|-
 +
| Домашнее задание 4 || [https://github.com/allatambov/allatambov.github.io/blob/master/PyProgPerm/Homework01.ipynb задачи] сдавать на [https://www.dropbox.com/request/32HYWX4GKMOst2zWjuik Dropbox] || 05.05 23:59 || 05.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/13828p96c92rfu8/AAB_MpOIUjCm_FJ-aY05RVzma?dl=0 вариант], [https://www.dropbox.com/request/RirgJNbjBwFjrijnrq9O ссылка] для сдачи.
 +
* Практическая часть (подгруппа 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.

Практические занятия ведёт: Тамбовцева Алла Андреевна.

Правила игры

Формула оценки: Итог = 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.

Дополнительно:

Списки и цикл for. Методы на строках. Работа с файлами. (11 и 14 апреля)

Дополнительно:

Списки vs массивы. Условные конструкции. (18 и 21 апреля)

Дополнительно:

Цикл while. Функции в Python. (25 и 28 апреля)

Дополнительно:

Кортежи и словари. Формат JSON. (12 и 14 мая)

Дополнительно:

Объектно-ориентированное и функциональное программирование в Python. (16 и 19 мая)

Парсинг HTML с BeautifulSoup: часть 1 (26 и 28 мая)

Дополнительно:

Парсинг HTML с BeautifulSoup: часть 2 (30 мая и 2 июня)

Дополнительно:

Введение в API. Работа с API ВКонтакте. (6 июня и 9 июня)

Дополнительно:

  • Работа с API ВКонтакте: собираем информацию о друзьях: конспект.

Датафреймы pandas. (16 июня и 18 июня)

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

Из заданий на 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

Контрольная работа