Бакалавриат
2019/2020
Основы программирования в Python
Лучший по критерию «Новизна полученных знаний»
Статус:
Курс обязательный (Политология)
Направление:
41.03.04. Политология
Кто читает:
Кафедра высшей математики
Где читается:
Факультет социальных наук
Когда читается:
3-й курс, 1, 2 модуль
Формат изучения:
с онлайн-курсом
Язык:
русский
Кредиты:
4
Контактные часы:
40
Программа дисциплины
Аннотация
Курс «Основы программирования в 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