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

Programming and Data Analysis

2021/2022
Academic Year
RUS
Instruction in Russian
3
ECTS credits
Delivered at:
Institute of Media
Course type:
Compulsory course
When:
2 year, 1 module

Instructor


Granovsky, Vladimir

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

Аннотация

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

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

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

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

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

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

  • Начало работы в Python
  • Управляющие конструкции в Python
  • Структуры данных в Python
  • Циклы в Python
  • Функции и классы в Python
  • Работа с файлами
  • Работа с текстами
  • Массивы NumPy
  • Работа с таблицами
  • Визуализация и разведывательный анализ данных
  • Высокопроизводительные дистрибутивы Python
  • Веб-программирование с помощью Python
  • Открытые данные
  • Современные СУБД
Элементы контроля

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

  • неблокирующий Домашние задания
    Домашние задания предполагают решение задач по программированию по пройденным темам. С учетом разного уровня подготовки студентов домашние задания представляют собой набор задач разной сложности, которые весят разное количество баллов. В начале каждого домашнего задания указано общее число баллов, которое нужно набрать, чтобы получить оценку 10. Таким образом, студент может выбирать, какие задачи ему решать. Например, если за все домашнее задание нужно набрать 8 баллов, чтобы получить оценку 10, студент может решить 8 задач по одному баллу или 4 задачи по одному баллу и одну задачу на 4 балла. Кроме того, студент может решить больше задач, чтобы потренироваться. Все задачи будут проверены и оценены, но получить оценку выше 10 за домашнее задание невозможно. Оценка за домашние задания, которая подставляется в формулу оценивания, определяется как округленное до целого среднее арифметическое оценок, полученных за домашние работы (способ округления – стандартный арифметический). Домашние задания, сданные после срока, оцениваются с использованием понижающих коэффициентов: опоздание в пределах часа – штраф 10% от полученной оценки, в пределах суток – штраф 20%, в пределах недели – штраф 50%. Домашние задания, сданные через неделю после указанного срока и позже, не принимаются и не оцениваются.
  • неблокирующий Тесты
    Тесты представляют собой набор открытых вопросов и вопросов с выбором ответа по пройденным темам (разобранным очно или онлайн на платформе DataCamp). Тесты направлены на проверку теоретических знаний студентов по программированию в Python: назначение и особенности работы операторов, устройство управляющих конструкций и циклов, особенности типов и структур данных, типы ошибок. Тесты проводятся в начале семинара и рассчитаны на 10-15 минут. Во время теста пользоваться какими-либо материалами нельзя. Оценка за тесты, которая подставляется в формулу оценивания, представляет собой округленное среднее арифметическое за все тесты (способ округления – стандартный арифметический).
  • неблокирующий Проект
    Проект представляет собой написание корректно работающей программы прикладного назначения с последующей устной защитой в виде презентации. Проект включает в себя следующие части: программа Python (файл с расширением .py или файл Jupyter Notebook с расширением .ipynb), самостоятельно созданная веб-страница и презентация, включающая публичную демонстрацию работы программы. Проект обязательно должен включать использование навыков, полученных в результате прохождения тем второго и третьего модулей, то есть работу с веб-страницами, сохранение данных в датафрейм pandas с последующей их обработкой или анализом, визуализацию данных. Проект выполняется индивидуально. Оценка за проект определяется по следующей формуле (способ округления – стандартный арифметический): Проект = Округление(0.4 * Программа + 0.3 * Веб-страница + 0.3 * Презентация). - Программа: сама программа (файл .py или .ipynb); оценивается по следующим критериям: работоспособность кода, соответствие используемых инструментов заявленной цели, применение при ее написании навыков, изученных в течение курса, корректное оформление кода. - Веб-страница: интерактивная страница с необходимым оформлением и функционалом для взаимодействия с пользователем. - Презентация: устная защита проекта в любом формате; обязательно включает демонстрацию работы программы; оценивается по следующим критериям: наличие объяснения цели программы, ее принципа работы и получаемых результатов, способность корректно ответить на вопросы по работе программы в рамках тем, изученных на курсе, объяснить ограничения работы программы и потенциальные проблемы.
  • неблокирующий Домашнее задание: Python программа для работы с БД
    Создание программы взаимодействия с БД на языке Python
  • неблокирующий Домашнее задание: Cоздание базы данных и таблиц в ней
    Cоздание базы данных и таблиц в ней
  • неблокирующий Домашнее задание: создание программы для сбора данных и сохранения данных в БД
    Домашнее задание: создание программы для сбора данных и сохранения данных в БД
  • неблокирующий Проект 4 модуль
    Цель Отработка навыков программирования, предобработки и первичного анализа данных   Описание проекта за 4 модуль Проект состоит из следующих частей: 1. Подпрограмма для загрузки данных из файла в Pandas Dataframe 2. Подпрограмма предобработки и очистки данных средствами Python 3. Подпрограмма визуализации данных 4. Отчет   Условия · В команде может быть от одного до 4 человек · Датасет может быть предложен студентами («инициативный датасет») или выбран стандартный датасет · Инициативный датасет требует согласования с преподавателем   Формат отчета · Подпрограммы и отчет должны быть в одном файле в формате .ipynb. Файл должен быть загружен в репозиторий на github. Cсылка на репозиторий на github должна быть указана на странице Elections. · Все подпрограммы должны быть оформлены в виде функций. · Отчет должен включать следующие части: 1. Цель проекта 2. Программа загрузки, предобработки и очистки данных 3. Корреляционный анализ 4. Кластерный анализ 5. Визуализация данных 6. Выводы 7. Информационные источники
  • неблокирующий Домашние задания
    Домашние задания предполагают решение задач по программированию по пройденным темам. С учетом разного уровня подготовки студентов домашние задания представляют собой набор задач разной сложности, которые весят разное количество баллов. В начале каждого домашнего задания указано общее число баллов, которое нужно набрать, чтобы получить оценку 10. Таким образом, студент может выбирать, какие задачи ему решать. Например, если за все домашнее задание нужно набрать 8 баллов, чтобы получить оценку 10, студент может решить 8 задач по одному баллу или 4 задачи по одному баллу и одну задачу на 4 балла. Кроме того, студент может решить больше задач, чтобы потренироваться. Все задачи будут проверены и оценены, но получить оценку выше 10 за домашнее задание невозможно. Оценка за домашние задания, которая подставляется в формулу оценивания, определяется как округленное до целого среднее арифметическое оценок, полученных за домашние работы (способ округления – стандартный арифметический). Домашние задания, сданные после срока, оцениваются с использованием понижающих коэффициентов: опоздание в пределах часа – штраф 10% от полученной оценки, в пределах суток – штраф 20%, в пределах недели – штраф 50%. Домашние задания, сданные через неделю после указанного срока и позже, не принимаются и не оцениваются.
  • неблокирующий Тесты
    Тесты представляют собой набор открытых вопросов и вопросов с выбором ответа по пройденным темам (разобранным очно или онлайн на платформе DataCamp). Тесты направлены на проверку теоретических знаний студентов по программированию в Python: назначение и особенности работы операторов, устройство управляющих конструкций и циклов, особенности типов и структур данных, типы ошибок. Тесты проводятся в начале семинара и рассчитаны на 10-15 минут. Во время теста пользоваться какими-либо материалами нельзя. Оценка за тесты, которая подставляется в формулу оценивания, представляет собой округленное среднее арифметическое за все тесты (способ округления – стандартный арифметический).
  • неблокирующий Проект
    Проект представляет собой написание корректно работающей программы прикладного назначения с последующей устной защитой в виде презентации. Проект включает в себя следующие части: программа Python (файл с расширением .py или файл Jupyter Notebook с расширением .ipynb), самостоятельно созданная веб-страница и презентация, включающая публичную демонстрацию работы программы. Проект обязательно должен включать использование навыков, полученных в результате прохождения тем второго и третьего модулей, то есть работу с веб-страницами, сохранение данных в датафрейм pandas с последующей их обработкой или анализом, визуализацию данных. Проект выполняется индивидуально. Оценка за проект определяется по следующей формуле (способ округления – стандартный арифметический): Проект = Округление(0.4 * Программа + 0.3 * Веб-страница + 0.3 * Презентация). - Программа: сама программа (файл .py или .ipynb); оценивается по следующим критериям: работоспособность кода, соответствие используемых инструментов заявленной цели, применение при ее написании навыков, изученных в течение курса, корректное оформление кода. - Веб-страница: интерактивная страница с необходимым оформлением и функционалом для взаимодействия с пользователем. - Презентация: устная защита проекта в любом формате; обязательно включает демонстрацию работы программы; оценивается по следующим критериям: наличие объяснения цели программы, ее принципа работы и получаемых результатов, способность корректно ответить на вопросы по работе программы в рамках тем, изученных на курсе, объяснить ограничения работы программы и потенциальные проблемы.
  • неблокирующий Домашнее задание: Python программа для работы с БД
    Создание программы взаимодействия с БД на языке Python
  • неблокирующий Домашнее задание: Cоздание базы данных и таблиц в ней
    Cоздание базы данных и таблиц в ней
  • неблокирующий Домашнее задание: создание программы для сбора данных и сохранения данных в БД
    Домашнее задание: создание программы для сбора данных и сохранения данных в БД
  • неблокирующий Проект 4 модуль
    Цель Отработка навыков программирования, предобработки и первичного анализа данных   Описание проекта за 4 модуль Проект состоит из следующих частей: 1. Подпрограмма для загрузки данных из файла в Pandas Dataframe 2. Подпрограмма предобработки и очистки данных средствами Python 3. Подпрограмма визуализации данных 4. Отчет   Условия · В команде может быть от одного до 4 человек · Датасет может быть предложен студентами («инициативный датасет») или выбран стандартный датасет · Инициативный датасет требует согласования с преподавателем   Формат отчета · Подпрограммы и отчет должны быть в одном файле в формате .ipynb. Файл должен быть загружен в репозиторий на github. Cсылка на репозиторий на github должна быть указана на странице Elections. · Все подпрограммы должны быть оформлены в виде функций. · Отчет должен включать следующие части: 1. Цель проекта 2. Программа загрузки, предобработки и очистки данных 3. Корреляционный анализ 4. Кластерный анализ 5. Визуализация данных 6. Выводы 7. Информационные источники
Промежуточная аттестация

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

  • 2020/2021 учебный год 3 модуль
    0.3 * Домашние задания + 0.25 * Тесты + 0.45 * Проект
  • 2020/2021 учебный год 4 модуль
    0.5 * Домашние задания + 0.5 * Тесты
  • 2021/2022 учебный год 1 модуль
    0.25 * Тесты + 0.3 * Домашние задания + 0.45 * Проект
Список литературы

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

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

  • 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

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

  • Perkins, J. (2014). Python 3 Text Processing with NLTK 3 Cookbook. Birmingham: Packt Publishing. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=836632
  • Python и анализ данных, Маккинли, У., 2015
  • Скрапинг веб - сайтов с помощью Python : сбор данных из современного интернета, Митчелл, Р., 2016