Программирование на Python
Дорогие студенты!
Это страница обязательного курса «Программирование на 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 мая)
Парсинг HTML с BeautifulSoup: часть 1 (26 и 28 мая)
Дополнительно:
Парсинг HTML с BeautifulSoup: часть 2 (30 мая и 2 июня)
- Практикум 6: продолжение парсинга новостей (читать, ipynb).
- Исключения: конструкция try-except (конспект).
Дополнительно:
- Документация BeautifulSoup.
- Управление браузером с Selenium: пример с поиском по сайту, пример с поиском ВКонтакте.
Введение в API. Работа с API ВКонтакте. (6 июня и 9 июня)
- Получение доступа к API ВКонтакте: инструкция.
- Документация API ВКонтакте.
- Работа с API ВКонтакте: собираем посты со стены: решения практикума.
- Видеозаписи занятий.
Дополнительно:
- Работа с API ВКонтакте: собираем информацию о друзьях: конспект.
Датафреймы pandas. (16 июня и 18 июня)
- Данные для работы: firtree.csv, polit.csv.
- Массивы NumPy, последовательности и датафреймы Pandas (читать, скачать).
- Работа с датафреймами pandas: часть 1 (читать, скачать), часть 2 (читать, скачать), часть 3 (читать, скачать).
- Практикум 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 |