• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Основы программирования в Python

2020/2021
Учебный год
RUS
Обучение ведется на русском языке
4
Кредиты
Статус:
Курс обязательный
Когда читается:
3-й курс, 1, 2 модуль

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

Аннотация

Курс «Основы программирования в Python» имеет целью обучить студентов не только работе в Python, но и основам программирования вообще, поскольку наиболее базовые принципы являются схожими почти во всех языках программирования. При решении ряда задач исследователи часто сталкиваются с необходимостью работать с большими массивами данных. Характер данных может быть очень разным: политологические индексы, посчитанные для разных стран, социально-экономические показатели по регионам России и муниципальным образованиям, тексты законопроектов и инициатив, тексты пользователей в социальных сетях и т.д. Для того чтобы эффективно работать с разными типами данных, необходимо знать основы программирования, так как именно навыки программирования позволяют автоматически собирать необходимую информацию за достаточно быстрое время. В качестве языка программирования в данном курсе используется Python. Язык Python на данный момент является очень популярным, в том числе в исследованиях в рамках социальных наук. Дисциплина подразделяется на два блока. Первый блок посвящен основам программирования и включает необходимые для дальнейшей работы в Python темы: переменные и типы данных, списки и кортежи, словари, условные конструкции, циклы и функции. Второй блок посвящен решению прикладных задач в Python и включает темы, связанные со сбором и анализом данных: выгрузка данных с сайтов, парсинг веб-страниц, работа с таблицами и разведывательный анализ данных.
Цель освоения дисциплины

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

  • Овладение навыками программирования на языке Python, овладение методами сбора и обработки данных для решения политологических и социально-экономических задач
Планируемые результаты обучения

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

  • Умеет работать в среде Jupyter Notebook, умеет создавать переменные разных типов, принимать информацию от пользователя и выводить информацию на экран
  • Умеет решать прикладные задачи с применением условных конструкций и циклов
  • Знает особенности изменяемых и неизменяемых типов данных; умеет создавать разные структуры данных
  • Умеет писать функции на Python, тестировать их, обрабатывать ошибки
  • Умеет загружать файлы с данными разных форматов и экспортировать их
  • Умеет выполнять базовые операции с табличными данными средствами Python
  • Умеет выгружать информацию со статических веб-страниц, используя средства обработки неструктурированного html-кода
  • Умеет выгружать информацию с динамических веб-страниц, используя средства для управления браузером (Selenium Webdriver)
  • Умеет выгружать информацию с помощью API
Содержание учебной дисциплины

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

  • Начало работы в Python
    Установка Python 3 (дистрибутив Anaconda). Знакомство с интерфейсом Jupyter Notebook. Элементы языка разметки Markdown. Установка и импортирование пакетов. Переменные в Python. Типы данных в Python: числовой (с плавающей точкой), целочисленный, логический, строковый. Преобразование типов. Ввод информации пользователем и вывод информации на экран. Элементарные вычисления в Python, арифметические операторы и операторы сравнения.
  • Управляющие конструкции в Python.
    Понятие управляющих конструкций. Построение блок-схемы для понимания структуры кода. Условные конструкции и операторы if-elif-else.
  • Структуры данных в Python
    Списки, кортежи, множества, словари: организация данных и методы работы с ними. Изменяемые и неизменяемые типы данных. Принципы индексирования различных структур данных и присвоения значений их элементам.
  • Циклы в Python
    Циклы for и while. Применение циклов к строкам, спискам, кортежам и словарям. Альтернатива коду с циклами: списковые включения (list comprehension).
  • Функции в Python
    Устройство функций в Python. Написание простейших функций. Lambda-функции. Исключения. Поиск ошибок в коде и обработка исключений.
  • Работа с файлами
    Работа с файлами в Python: открытие, изменение, сохранение. Разные форматы хранения данных: csv-файлы, json-файлы, txt-файлы.
  • Работа с таблицами
    Работа с файлами Excel: открытие и сохранение файлов. Обзор возможностей библиотеки pandas. Преобразование датафреймов pandas: добавление строк, столбцов и ячеек в таблицу, фильтрация строк по условиям, извлечение и присвоение значений строкам, столбцам и ячейкам, удаление строк и столбцов, поиск и удаление пропущенных данных. Базовые методы датафреймов: расчет описательных статистик для строк и столбцов (для категориальных и количественных данных), коэффициентов корреляции, выявление уникальных значений в столбце и подсчет их частот (для категориальных данных). Применение встроенных и пользовательских функций ко всем значениям в столбце датафрейма - метод apply.
  • Работа с html-файлами
    Введение в HTML и элементы веб-дизайна. Извлечение данных из веб-страниц. Парсинг html-файлов в Python с помощью пакетов requests и BeautifulSoup: обработка одной страницы и организация перехода по страницам. Различные способы обращения к данным из html-кода: с помощью тегов, css-селекторов, xpath.
  • Управление браузером из Python
    Понятие статичных и динамичных сайтов и различия в принципах извлечения данных в них. Установка Selenium и драйверов для браузера. Управление браузером с помощью Selenium Webdriver: поиск элементов, ввод текстовых данных, нажатие кнопок.
  • Работа с API
    Знакомство с API. API как источник данных, понятие токена доступа и методы API. API Wikipedia. Работа с API социальных сетей на примере ВКонтакте. Обработка данных в формате JSON.
Элементы контроля

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

  • неблокирующий Контрольная работа
    Контрольная проводится в письменной форме с использованием синхронного прокторинга. Контрольная проводится на платформе Онлайн-образование в НИУ ВШЭ (https://online.hse.ru/), прокторинг на платформе Экзамус (https://hse.student.examus.net). К контрольной необходимо подключиться за 15 минут до начала. На платформе Экзамус доступно тестирование системы (https://lms.demo.examus.net/syscheck_st). Компьютер студента должен удовлетворять требованиям: https://elearning.hse.ru/data/2020/05/07/1544135594/Технические%20требования%20к%20ПК%20студента.pdf.
  • неблокирующий Домашнее задание
  • неблокирующий Тесты
  • неблокирующий Онлайн-курс
  • неблокирующий Проект
Промежуточная аттестация

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

  • Промежуточная аттестация (2 модуль)
    0.15 * Домашнее задание + 0.2 * Контрольная работа + 0.1 * Онлайн-курс + 0.4 * Проект + 0.15 * Тесты
Список литературы

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

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

  • Nelli, F. (2018). Python Data Analytics : With Pandas, NumPy, and Matplotlib (Vol. Second edition). New York, NY: Apress. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1905344
  • Федоров Д. Ю. - ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ PYTHON 2-е изд. Учебное пособие для СПО - М.:Издательство Юрайт - 2019 - 161с. - ISBN: 978-5-534-11961-9 - Текст электронный // ЭБС ЮРАЙТ - URL: https://urait.ru/book/programmirovanie-na-yazyke-vysokogo-urovnya-python-446505

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

  • G. Nair, V. (2014). Getting Started with Beautiful Soup. Birmingham, UK: Packt Publishing. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=691839