Программирование для всех (основы работы с Python): различия между версиями

Материал из MathINFO
Перейти к навигации Перейти к поиску
 
(не показано 5 промежуточных версий этого же участника)
Строка 18: Строка 18:
 
== Материалы ==
 
== Материалы ==
  
=== 9 сентября [https://www.dropbox.com/sh/r5a9kurxb1yuwj6/AAAoO3FnNW8DbE0nDq5Q2bC1a?dl=0 Видеозапись] ===
+
=== 9 сентября ===
  
 
'''Тема 1. Введение в Python и Jupyter Notebook'''
 
'''Тема 1. Введение в Python и Jupyter Notebook'''
Строка 34: Строка 34:
 
* LaTeX: [https://ru.sharelatex.com/ ShareLaTeX] для желающих, [https://www.overleaf.com/learn документация] на английском, [https://github.com/allatambov/Latex материалы] других курсов по LaTeX.
 
* LaTeX: [https://ru.sharelatex.com/ ShareLaTeX] для желающих, [https://www.overleaf.com/learn документация] на английском, [https://github.com/allatambov/Latex материалы] других курсов по LaTeX.
  
=== 16 сентября [https://www.dropbox.com/sh/ythwvhwj93t6lkc/AABGLcvvwUxRlncjCu0j7dRqa?dl=0 Видеозапись] ===
+
=== 16 сентября ===
  
 
'''Тема 2. Типы данных в Python. Ввод и вывод.'''
 
'''Тема 2. Типы данных в Python. Ввод и вывод.'''
Строка 56: Строка 56:
 
* Генераторы списков и enumerate() ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/more-lists.ipynb конспект], [https://allatambov.github.io/icef/seminars/more-lists.ipynb more-lists.ipynb]).
 
* Генераторы списков и enumerate() ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/icef/seminars/more-lists.ipynb конспект], [https://allatambov.github.io/icef/seminars/more-lists.ipynb more-lists.ipynb]).
  
=== 23 сентября [https://www.dropbox.com/sh/f1mxu5yh796q2wm/AAB-ZwZsy1SUSSgmNmsUqB9Ha?dl=0 Видеозапись] ===
+
=== 23 сентября ===
  
 
'''Тема 4. Проверка условий и условные конструкции. Цикл while.'''
 
'''Тема 4. Проверка условий и условные конструкции. Цикл while.'''
Строка 76: Строка 76:
 
* Примеры задач на словари с решениями ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/pydj/seminars/seminar5-solutions.ipynb конспект], [https://allatambov.github.io/pydj/seminars/seminar5-solutions.ipynb файл]).
 
* Примеры задач на словари с решениями ([https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/pydj/seminars/seminar5-solutions.ipynb конспект], [https://allatambov.github.io/pydj/seminars/seminar5-solutions.ipynb файл]).
  
=== 30 сентября [https://www.dropbox.com/sh/drxyk8f27xy2h8r/AAD3USABXA3W2OnDuIrTYZD6a?dl=0 Видеозапись] ===
+
=== 30 сентября ===
  
 
'''Тема 6. Функции в Python.'''
 
'''Тема 6. Функции в Python.'''
Строка 84: Строка 84:
 
* Тема изучается на DataCamp (глава Writing your own functions, глава Default arguments, variable-length arguments and scope).
 
* Тема изучается на DataCamp (глава Writing your own functions, глава Default arguments, variable-length arguments and scope).
 
* Вспомогательная лекция: [https://nbviewer.jupyter.org/github/ischurov/pythonhse/blob/master/Lecture%204.ipynb functions]. Pythontutor: [https://pythontutor.ru/lessons/functions/ функции].
 
* Вспомогательная лекция: [https://nbviewer.jupyter.org/github/ischurov/pythonhse/blob/master/Lecture%204.ipynb functions]. Pythontutor: [https://pythontutor.ru/lessons/functions/ функции].
* Практические задания: [https://nbviewer.jupyter.org/github/allatambov/PyAll2021/blob/main/problems05.ipynb задания], [https://www.dropbox.com/s/yhbgbb17q3n1mg0/problems05.ipynb?dl=0 problems05.ipynb], [решения], [problems05-solutions.ipynb]
+
* Практические задания: [https://nbviewer.jupyter.org/github/allatambov/PyAll2021/blob/main/problems05.ipynb задания], [https://www.dropbox.com/s/yhbgbb17q3n1mg0/problems05.ipynb?dl=0 problems05.ipynb], [https://github.com/allatambov/PyAll2021/blob/main/problems05-solutions.ipynb решения], [https://www.dropbox.com/s/cl4iz1yd9aqfn6u/problems05-solutions.ipynb?dl=0 problems05-solutions.ipynb]
  
 
Дополнительное:
 
Дополнительное:
Строка 95: Строка 95:
 
* Файл [https://allatambov.github.io/pydj/seminars/firtree.csv firtree.csv], [https://raw.githubusercontent.com/allatambov/PyDat-0919/master/lectures-seminars/7-pandas/elect.csv elect.csv].
 
* Файл [https://allatambov.github.io/pydj/seminars/firtree.csv firtree.csv], [https://raw.githubusercontent.com/allatambov/PyDat-0919/master/lectures-seminars/7-pandas/elect.csv elect.csv].
  
=== 7 октября [https://www.dropbox.com/sh/9w2hbnt5rzn5xup/AABfiuRNHSQbIo5PEK9uOHUka?dl=0 Видеозапись] ===
+
=== 7 октября ===
 +
 
 +
'''Тема 8. Датафреймы Pandas.'''
  
 
Основное:
 
Основное:
Строка 107: Строка 109:
 
* [https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html Тьюториалы] по pandas.
 
* [https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html Тьюториалы] по pandas.
 
* [https://matplotlib.org/stable/ Галерея] matplotlib.
 
* [https://matplotlib.org/stable/ Галерея] matplotlib.
 +
 +
=== 14 октября ===
 +
 +
'''Тема 9. Парсинг HTML файлов с BeautifulSoup.'''
 +
 +
Основное:
 +
 +
* Парсинг HTML файлов с BeautifulSoup: [https://github.com/allatambov/PyAll20/blob/master/web-scrape.ipynb конспект], [https://www.dropbox.com/s/102bcq6c2w3a3nl/web-scrape.ipynb?dl=0 web-scrape.ipynb].
 +
* Тьюториалы по HTML: [https://www.w3schools.com/ w3schools.com]
 +
 +
Дополнительное:
 +
 +
* [https://www.crummy.com/software/BeautifulSoup/bs4/doc/ Документация] BeautifulSoup.
 +
* Базовые примеры [https://python-scripts.com/beautifulsoup-html-parsing парсинга] с BeautifulSoup.
  
 
== Домашние задания ==
 
== Домашние задания ==
Строка 130: Строка 146:
 
| [https://nbviewer.jupyter.org/github/allatambov/PyAll2021/blob/main/homework08.ipynb Домашнее задание 8] || 14.10 23:59 || [https://www.dropbox.com/s/f4sey304p7keu2t/homework08.ipynb?dl=0 ipynb] || [https://www.dropbox.com/request/cIRNUbrhMB3RfsLEbZCl Dropbox] || обычное
 
| [https://nbviewer.jupyter.org/github/allatambov/PyAll2021/blob/main/homework08.ipynb Домашнее задание 8] || 14.10 23:59 || [https://www.dropbox.com/s/f4sey304p7keu2t/homework08.ipynb?dl=0 ipynb] || [https://www.dropbox.com/request/cIRNUbrhMB3RfsLEbZCl Dropbox] || обычное
 
|-
 
|-
| Домашнее задание 9: глава Aggregating DataFrames || 17.10 23:59 || – || [https://learn.datacamp.com/courses/data-manipulation-with-pandas DataCamp] || DataCamp
+
| Домашнее задание 9: глава Aggregating DataFrames || 20.10 23:59 || – || [https://learn.datacamp.com/courses/data-manipulation-with-pandas DataCamp] || DataCamp
 
|-
 
|-
| Домашнее задание 10: глава Slicing and Indexing DataFrames || 17.10 23:59|| – || [https://learn.datacamp.com/courses/data-manipulation-with-pandas DataCamp] || DataCamp
+
| Домашнее задание 10: глава Slicing and Indexing DataFrames || 20.10 23:59|| – || [https://learn.datacamp.com/courses/data-manipulation-with-pandas DataCamp] || DataCamp
 
|}
 
|}
  
Строка 159: Строка 175:
 
* Работа с API ВКонтакте: [https://allatambov.github.io/pypolit/vk-auth.pdf инструкция] по получению доступа, [https://nbviewer.jupyter.org/github/PyBasics-19/py-basics-19/blob/master/lectures/lect-vk-api.ipynb vk-api], [https://nbviewer.jupyter.org/github/PyBasics-19/py-basics-19/blob/master/lectures/vk-add.ipynb vk-add]
 
* Работа с API ВКонтакте: [https://allatambov.github.io/pypolit/vk-auth.pdf инструкция] по получению доступа, [https://nbviewer.jupyter.org/github/PyBasics-19/py-basics-19/blob/master/lectures/lect-vk-api.ipynb vk-api], [https://nbviewer.jupyter.org/github/PyBasics-19/py-basics-19/blob/master/lectures/vk-add.ipynb vk-add]
 
* Работа с API mos.ru: [https://nbviewer.jupyter.org/github/allatambov/misc/blob/master/mos-API.ipynb конспект]
 
* Работа с API mos.ru: [https://nbviewer.jupyter.org/github/allatambov/misc/blob/master/mos-API.ipynb конспект]
 
'''Дизайн и интерактив'''
 
 
* Создание и запуск файла с расширением .py: [https://www.dropbox.com/s/f0aem22hz8k2f5n/py-files.mov?dl=0 видео]
 
* [https://ipywidgets.readthedocs.io/en/latest/examples/Widget%20Styling.html Оформление] виджетов Jupyter Notebook
 
* [https://www.w3schools.com/ Тьюториалы] по веб-дизайну от w3schools
 
* [https://dash.plot.ly/ Документация] библиотеки dash для интерактивных дэшбордов
 
* Обзор работы с dash ([https://www.dropbox.com/s/afp0mgi0ipoluwl/dash-1.mov?dl=0 видео]), файл [https://gist.github.com/allatambov/9057d18b80c7f0698bd73d02d3e32d09 dash1.py]
 
* Редактирование шаблонного кода для виджета с графиками ([https://www.dropbox.com/s/a1sfz1hskvrvw3h/dash-2.mov?dl=0 видео]), обновленный файл [https://gist.github.com/allatambov/b566977abfe3c20d227e6e531b04ca6d dash1.py]
 
* Dashboard со своими данными ([https://www.dropbox.com/s/hvvchvfuyx86w8y/dash-3.mov?dl=0 видео]), файл [https://gist.github.com/allatambov/043ddefcc76566f4c739fa5c7b2502fc dash2.py]
 
* Dashboard со своими данными и меню для пользователя ([https://www.dropbox.com/s/1141kkumncugj3y/dash-4.mov?dl=0 видео]), файл [https://gist.github.com/allatambov/cdecca50d511024ae10e685081303cea dash3.py]
 
  
 
'''Классы'''
 
'''Классы'''
  
 
Объекты и классы в Python: [https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/pydj/seminars/classes.ipynb конспект]
 
Объекты и классы в Python: [https://nbviewer.jupyter.org/github/allatambov/allatambov.github.io/blob/master/pydj/seminars/classes.ipynb конспект]

Текущая версия на 03:22, 4 мая 2024

Дорогие студенты!

Это страница адаптационного курса «Программирование для всех (основы работы с Python)», читаемого на программе «Прикладная политология» 1 курса магистратуры в 1 модуле 2021-2022 учебного года.

Лекции и семинары ведёт: Тамбовцева Алла Андреевна

Правила игры

  • Курс реализуется в формате blended, онлайн часть обеспечивается главами курсов на платформе DataCamp.
  • Формула оценки: Итог = 0.3 * Домашние задания + 0.3 * Онлайн-курс + 0.4 * Экзамен.
  • При сдаче домашнего задания позже указанного срока предусмотрены штрафы: опоздание в пределах часа – штраф 10% от полученной оценки, в пределах суток – штраф 30%, в пределах недели – штраф 70%.
  • Ссылка на программу курса.

Программное обеспечение

Перед занятиями необходимо установить дистрибутив Anaconda (скачать можно здесь), который включает в себя интерпретатор языка Python, библиотеки для обработки, анализа и визуализации данных, а также среду для работы Jupyter Notebook. Также есть возможность работать в Jupyter Notebook онлайн, используя ресурс Google Colab (для создания и редактирования файлов нужен аккаунт Gmail). Но в долгосрочной перспективе предпочтительнее установить Anaconda.

Материалы

9 сентября

Тема 1. Введение в Python и Jupyter Notebook

Основное:

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

16 сентября

Тема 2. Типы данных в Python. Ввод и вывод.

Тема 3. Списки и цикл for. Методы на строках.

Основное:

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

23 сентября

Тема 4. Проверка условий и условные конструкции. Цикл while.

Основное:

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

Сравнение continue и pass (статья).

Тема 5*. Структуры данных в Python: кортежи, множества, словари.

30 сентября

Тема 6. Функции в Python.

Основное:

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

Тема 7. Массивы NumPy.

7 октября

Тема 8. Датафреймы Pandas.

Основное:

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

14 октября

Тема 9. Парсинг HTML файлов с BeautifulSoup.

Основное:

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

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

Задание Дедлайн Файл Ссылка для сдачи Тип
Домашнее задание 1: глава Python Lists 16.09 14:40 DataCamp DataCamp
Домашнее задание 2 23.09 23:59 ipynb Dropbox обычное
Домашнее задание 3: глава Functions and Packages 23.09 14:40 DataCamp DataCamp
Домашнее задание 4: глава Writing your own functions 30.09 14:40 DataCamp DataCamp
Домашнее задание 5: глава Dictionaries – the root of Python 30.09 14:40 DataCamp DataCamp
Домашнее задание 6: глава Default arguments, variable-length arguments and scope 07.10 14:40 DataCamp DataCamp
Домашнее задание 7 07.10 23:59 ipynb Dropbox обычное
Домашнее задание 8 14.10 23:59 ipynb Dropbox обычное
Домашнее задание 9: глава Aggregating DataFrames 20.10 23:59 DataCamp DataCamp
Домашнее задание 10: глава Slicing and Indexing DataFrames 20.10 23:59 DataCamp DataCamp

Дополнительные материалы

Визуализация

Статистика

  • Проверка статистических гипотез: конспект
  • Доверительные интервалы: конспект
  • Генерация выборок и их правдоподобие: конспект
  • Визуализация и выявление связей в данных: конспект
  • Оценка связи между переменными, измеренными в разных шкалах: конспект
  • Парная регрессия и проверка гипотез о коэффициентах регрессии: конспект
  • Множественная регрессия и проверка качества модели: конспект
  • Линейная регрессия с качественными предикторами, дамми-переменные, эффекты взаимодействия: конспект

Веб-скрейпинг

Классы

Объекты и классы в Python: конспект