• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Fundamentals of Python Programming

2020/2021
Academic Year
RUS
Instruction in Russian
3
ECTS credits
Course type:
Compulsory course
When:
1 year, 3, 4 module

Instructor


Arzymatov, Kenenbek

Программа дисциплины

Аннотация

На сегодняшний день Python является стандартом индустрии для анализа данных. По окончании этого курса, студенты получат в свое распоряжение набор аналитических инструментов, которые им пригодятся как в академии, так и при работе в частном или государственном секторе. Целью этого курса является развитие навыков программирования и создание крепкой практической базы для поиска, анализа и презентации данных. Также мы познакомимся с задачами и алгоритмами машинного обучения, что задаст вектор развития для тех студентов, которые захотят углубиться в предмет. С использованием онлайн-курса, размещенного на online.hse.ru.
Цель освоения дисциплины

Цель освоения дисциплины

  • Развитие и закрепление навыков программирования на языке Python.
  • Формирование и развитие навыков работы со специализированными библиотеками для обработки, визуализации и анализа данных (pandas, plotly, matplotlib, twitter api).
  • Развитие навыков работы с данными: поиск, сбор, обработка, визуализация, разведывательный анализ.
  • Знакомство с клиент-серверной архитектурой приложений для самостоятельного поиска данных.
  • Освоение терминологии области машинного обучения и знакомство с базовыми алгоритмами.
  • Развитие навыков постановки исследовательской задачи и выполнение тестового проекта.
Планируемые результаты обучения

Планируемые результаты обучения

  • Уверенно пользуется языком Python для решения аналитических задач
  • Решает простые задачи классификации, регрессии
  • Загружает данные в pandas и работает с ними (фильтрация, агрегация, заполнение пропущенных значений)
  • Проводит разведывательный анализ данных
  • Умеет пользоваться программным интерфейсом приложений (API) для поиска необходимых данных
  • Использует API различных сайтов для скачивания данных
  • Выбирает правильный тип визуализации для решения конкретной задачи
  • Выбирает корректные графики для визуализации данных
  • Настраивает внешний вид графиков в библиотеках Python для визуализации
  • Проводит разведывательный анализ данных с помощью визуализаций
  • Определяет тип задачи машинного обучения, выбирает корректные модели для ее решения, осуществляет подбор параметров и выбирает лучшую модель
  • Реализовывает простые алгоритмы машинного обучения
  • Решает задачи машинного обучения от постановки исследовательского вопроса до интерпретации результатов
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Основы программирование в Python
    Начало работы в Python. Установка Python 3 (дистрибутив Anaconda). Знакомство с интерфейсом Jupyter Notebook. Элементы языка разметки Markdown. Установка и импортирование библиотек. Элементарные вычисления в Python. Переменные в Python. Типы данных в Python: числовой, целочисленный, логический, строковый. Преобразование типов.
  • Управляющие конструкции в Python.
    Управляющие конструкции в Python. Понятие управляющих конструкций. Построение блок-схемы для понимания структуры кода. Условные конструкции и операторы if-else. Особенности использования оператора elif
  • Циклы в Python
    Циклы for и while. Применение циклов к строкам, спискам, кортежам и словарям. Альтернатива коду с циклами: списковые включения.
  • Структуры данных в Python
    Списки, кортежи, множества, словари. Изменяемые и неизменяемые типы данных.
  • Функции в Python
    Устройство функций в Python. Написание простейших функций. Lambda-функции. Исключения. Поиск ошибок в коде и отладка.
  • Работа с файлами
    Работа с файлами в Python: открытие, изменение, сохранение. Разные форматы хранения данных: csv-файлы, json-файлы, txt-файлы.
  • Работа с API
    Знакомство с API. API как источник данных. Извлечение данных. Написание запросов к серверу. Парсинг результатов.
  • Визуализация данных
    Цели визуализации данных: разведывательный анализ, выбор алгоритмов, презентация данных и результатов. Виды графиков, их корректное использование и интерпретация. Принципы хорошей визуализации, основные ошибки при вузализации данных. Основы визуализации в matplotlib. Оформление и кастомизация графиков.
  • Введение в машинное обучение
    Парадигма и задачи машинного обучения. Разбор кейсов. Основная терминология машинного обучения. Задачи регрессии (линейная регрессия, методы решающих деревьев и случайного леса). Задачи классификации (логистическая регрессия, метод ближайших соседей, перцептрон). Основные метрики качества модели. Кросс-валидация и подбор параметров по сетке.
  • Массивы NumPy и работа с таблицами
    Массивы vs списки в Python. Работа с массивами NumPy. Применение массивов в анализе данных. Обзор возможностей библиотеки pandas. Преобразование датафреймов pandas: добавление строк и столбцов в таблицу, фильтрация строк по условиям. Группировка и агрегирование данных. Объединение таблиц.
Элементы контроля

Элементы контроля

  • неблокирующий Контрольная работа №2
  • неблокирующий Контрольная работа №1
  • неблокирующий Проект
    Проект представляет собой написание корректно работающей программы прикладного назначения с последующей устной защитой в виде презентации. Проект включает в себя следующие части: программа Python (файл с расширением .py или файл Jupyter Notebook с расширением .ipynb), pdf-файл с описанием назначения и принципов работы программы (документация) и презентация, включающая публичную демонстрацию работы программы. Проект обязательно должен включать использование навыков, полученных в результате прохождения тем курса, то есть выгрузку данных с веб-страницы или с помощью API, сохранение данных в датафрейм pandas с последующей их обработкой. Проект выполняется индивидуально. Оценка за проект определяется по следующей формуле (способ округления – стандартный арифметический): Проект = 0.15 * План + 0.4 * Программа + 0.15 * Документация + + 0.3 * Презентация).
  • неблокирующий Онлайн-курс
  • неблокирующий Экзамен
    Экзамен устный в Zoom. Без прокторинга. На экзамене можно пользоваться всеми своими материалами. Возможно выставление оценки автоматом. Технические требования: web-камера, микрофон, наушники / колонки, Zoom.
Промежуточная аттестация

Промежуточная аттестация

  • Промежуточная аттестация (4 модуль)
    0.15 * Контрольная работа №1 + 0.2 * Контрольная работа №2 + 0.25 * Онлайн-курс + 0.2 * Проект + 0.2 * Экзамен
Список литературы

Список литературы

Рекомендуемая основная литература

  • Muller, A. C., & Guido, S. (2017). Introduction to machine learning with Python: a guide for data scientists. O’Reilly Media. (HSE access: http://ebookcentral.proquest.com/lib/hselibrary-ebooks/detail.action?docID=4698164)

Рекомендуемая дополнительная литература

  • Mirkin, B. Core concepts in data analysis: summarization, correlation and visualization. – Springer Science & Business Media, 2011. – 388 pp.
  • Miroslav Kubat. An Introduction to Machine Learning. Springer, 2015 (296 pages) ISBN: 9783319200095: — Текст электронны // ЭБС books24x7 — https://library.books24x7.com/toc.aspx?bookid=117295
  • Witten, I. H. et al. Data Mining: Practical machine learning tools and techniques. – Morgan Kaufmann, 2017. – 654 pp.
  • Мастицкий С.Э. - Визуализация данных с помощью ggplot2 - Издательство "ДМК Пресс" - 2017 - 222с. - ISBN: 978-5-97060-470-0 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/107895
  • Основы алгоритмизации и программирования на Python : учеб. пособие / С.Р. Гуриков. — М. : ФОРУМ : ИНФРА-М, 2020. — 343 с. — (Среднее профессиональное образование). - Режим доступа: http://znanium.com/catalog/product/1042452