• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2019/2020

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

Лучший по критерию «Новизна полученных знаний»
Статус: Курс обязательный (Политология)
Направление: 41.03.04. Политология
Когда читается: 3-й курс, 1, 2 модуль
Формат изучения: с онлайн-курсом
Язык: русский
Кредиты: 4

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

Аннотация

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

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

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

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

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

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

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

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

  • неблокирующий Контрольная работа
  • неблокирующий Домашнее задание
    Домашние задания предполагают решение задач по программированию по пройденным темам. С учетом разного уровня подготовки студентов домашние задания представляют собой набор задач разной сложности, которые весят разное количество баллов. В начале каждого домашнего задания указано общее число баллов, которое нужно набрать, чтобы получить оценку 10. Таким образом, студент может выбирать, какие задачи ему решать. Например, если за все домашнее задание нужно набрать 8 баллов, чтобы получить оценку 10, студент может решить 8 задач по одному баллу или 4 задачи по одному баллу и одну задачу на 4 балла. Кроме того, студент может решить больше задач, чтобы потренироваться. Все задачи будут проверены и оценены, но получить оценку выше 10 за домашнее задание невозможно.
  • неблокирующий Тесты
  • неблокирующий Онлайн-курс
  • неблокирующий Проект
    Проект 7 Проект представляет собой написание корректно работающей программы прикладного назначения с последующей устной защитой в виде презентации. Проект включает в себя следующие части: программа Python (файл с расширением .py или файл Jupyter Notebook с расширением .ipynb), pdf-файл с описанием назначения и принципов работы программы (документация) и презентация, включающая публичную демонстрацию работы программы. Проект обязательно должен включать использование навыков, полученных в результате прохождения тем второго модуля, то есть выгрузку данных с веб-страницы или с помощью API, сохранение данных в датафрейм pandas с последующей их обработкой, визуализация данных средствами matplotlib или других библиотек. Проект выполняется индивидуально или в группе не более 3 человек. При коллективной защите проекта все члены группы должны быть подготовлены и готовы ответить на вопросы по проекту. Оценка за проект определяется по следующей формуле (способ округления – стандартный арифметический): Проект = Округление(0.15 * План + 0.4 * Программа + 0.15 * Документация + + 0.3 * Презентация).
Промежуточная аттестация

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

  • Промежуточная аттестация (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