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

Python Programming

2025/2026
Academic Year
RUS
Instruction in Russian
6
ECTS credits
Course type:
Compulsory course
When:
1 year, 1, 2 module

Instructor

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

Аннотация

Дисциплина предназначена для освоения студентами основ программирования на языке Python. В ходе обучения студенты изучат основные концепции языка программирования Python, включая работу с переменными, условиями, циклами и функциями. Особое внимание будет уделено изучению библиотек для анализа данных, визуализации и обработки файлов. Для обеспечения практического опыта и эффективного освоения учебного материала предусмотрено выполнение заданий на удаленном сервере. Это обеспечит студентам возможность применять полученные знания на практике и приобрести опыт работы в реальных условиях.
Цель освоения дисциплины

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

  • Сформировать у студентов базовые и продвинутые навыки работы с данными на Python, включая использование библиотек Pandas, NumPy и инструментов для их эффективной обработки.
  • Научить применять методы агрегации, группировки, фильтрации, объединения данных и расчёта метрик для решения аналитических и продуктовых задач.
  • Развить умение визуализировать данные с помощью matplotlib, seaborn и plotly, создавать понятные графики и диаграммы для анализа и презентации результатов.
  • Ознакомить с принципами работы с «грязными» данными, временными рядами, оконными функциями и подходами к оптимизации обработки больших массивов информации.
  • Дать навыки автоматизации аналитических задач с использованием API и интеграций с внешними сервисами, а также опыта в построении аналитических пайплайнов.
  • Подготовить студентов к выполнению сквозного проекта по анализу данных, обеспечив комплексное понимание всех этапов работы — от загрузки и очистки данных до визуализации и интерпретации результатов.
Планируемые результаты обучения

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

  • – Понимает, что такое переменная в Python
  • – Знаком с базовыми типами данных: int, float, str, bool
  • – Умеет создавать переменные и проводить с ними операции
  • – Знает, что такое списки и кортежи и чем они отличаются.
  • – Умеет применять методы списков и кортежей
  • – Знаком с индексами, умеет обращаться к элементам списка и кортежа
  • – Умеет создавать списки и множества и проводить над ними операции: сортировать, добавлять элементы, объединять
  • – Умеет работать со строками и знает основные методы строк.
  • – Понимает, что строка — это последовательность символов, которую можно конвертировать в массив
  • – Знает, что такое множества и словари, понимает, для каких задач они подходят
  • – Может выполнять простые операции с множествами
  • – Умеет обращаться к ключам и значениям по ключам в словаре
  • – Умеет создавать последовательности чисел с помощью range и преобразовывать их в списки
  • – Знает, что существует тип данных None
  • – Знает, что такое условная конструкция и понимает связь между условными конструкциями и логическими выражениями
  • – Знает структуру условных конструкций, правила отступов и оформления блоков кода в Python
  • – Знаком с операторами if, elif, else, pass
  • – Знает как работать с тернарным оператором (if else в одну строку)
  • – Понимает, что такое циклы в Python и для каких задач они применяются
  • – Знает структуру циклов, знаком с понятиями итерации и переменной в цикле
  • – Знает два типа циклов (через for и while)
  • – Умеет управлять циклами с помощью операторов break и continue
  • – Знаком с функциями enumerate и zip, умеет итерироваться сразу по нескольким структурам
  • – Умеет создавать списки на основе других списков с помощью краткой записи list comprehensions
  • – Знает, что аналогичным образом можно создавать множества и словари
  • – Владеет конструкцией with open() as file
  • – Умеет считывать файлы из директории в Jupyter ноутбуке и записывать данные в файл
  • – Понимает, зачем нужны функции и как выглядит их структура: ключевое слово def, название функции, аргументы функции, тело функции, оператор return
  • – Знает, что аргументы бывают именованные и неименованные (порядковые), понимает, что сначала идут неименованные, потом именованные
  • – Понимает, как работает ключевое слово return и умеет присваивать переменной значение, которое возвращает функция
  • – Имеет представление о пространстве имен и области видимости функции
  • – Умеет упаковывать возвращаемые значения в tuple и распаковывать результат функции в несколько переменных
  • – Умеет применять конструкции *args и **kwargs для передачи аргументов в функцию
  • – Знает, зачем нужны генераторы и чем они отличаются от функций
  • – Умеет писать простые генераторы, использовать ключевое слово yield и функцию next()
  • – Понимает, зачем нужны lambda функции и знает их синтаксис
  • – Умеет применять функции map и filter
  • – Знает, как загрузить файл в память машины, на которой работает код Python
  • – Знает про формат csv и функции из библиотеки pandas для чтения файлов с разными расширениями
  • – Понимает, что такое метод и атрибут в Python
  • – Умеет использовать методы и атрибуты датафреймов
  • – Может с их помощью описать свойства таблицы
  • – Знает, как работают методы group и agg
  • – Умеет агрегировать данные в таблице для подсчета метрик
  • – Способен предоставлять достоверные результаты расчетов заказчику
  • – Умеет задавать правильные вопросы к качеству расчетов и получать результат несколькими способами, разница между которыми может быть сравнима
  • – Может комбинировать все полученные знания, чтобы автоматизировать повторяющиеся задачи
  • Поймёт принципы импорта библиотек и модулей в Python, включая работу с алиасами, импорт отдельных функций и правила оформления импортов по PEP8.
  • Освоит установку и обновление библиотек с помощью pip, а также базовые возможности NumPy и Pandas для анализа данных.
  • Научится загружать, просматривать, фильтровать, сортировать и модифицировать табличные данные в Pandas, включая работу с пропущенными значениями и присвоением новых значений.
  • Сможет выполнять агрегацию и группировку данных, вычислять статистические показатели и применять методы для анализа временных и строковых данных.
  • Освоит базовые приёмы подготовки данных для аналитических задач, в том числе расчёт пользовательских метрик (например, Churn Rate) и объединение переменных.
  • Получит опыт анализа реального датасета (бронирования отелей) для выявления ключевых закономерностей и ответов на бизнес-вопросы.
  • – Понимает связь навыков работы в Python и роль аналитика в команде
  • – Может брать инициативу на себя для решения задач, которые требуют знаний языка программирования
  • – Понимает, что для максимально эффективной работы сырые данные необходимо структурировать
  • – Умеет преобразовывать данные для расчета метрик и построения графиков
  • – Знает кейсы, в которых можно применять метод apply
  • – Умеет применять метод apply в различных сценариях обработки данных
  • – Знает, как работать с массивами внутри датафреймов
  • – Понимает разницу между обычными функциями и lambda функциями
  • – Умеет писать кастомные lambda функции и применять их к данным в каждой ячейке
  • – Понимает, какие задачи аналитик может решить с помощью Python
  • – Умеет представлять в голове алгоритм решения задачи и реализовывать его в коде
  • – Понимает, что получается при объединении таблиц
  • – Понимает разницу между разными видами merge (join)
  • – Понимает логику пересечения двух таблиц при объединении по ключу
  • – Понимает, как через данные и расчеты выразить ту ли иную сущность, чтобы ответить на вопросы бизнеса
  • – Умеет создавать метрики, позволяющие измерять и оценивать необходимые бизнесу сущности
  • – Понимает, зачем нужна визуализация и как она упрощает анализ данных
  • – Умеет использовать различные инструменты визуализации в Python для анализа данных
  • – Знает, как импортировать нужные библиотеки и быстро построить нужный график
  • – Понимает принцип работы со сводными таблицами
  • – Умеет использовать методы pivot, pivot_table
  • – Умеет объединять данные из нескольких датафреймов
  • – Знает, что данные можно объединять по вертикали и горизонтали
  • – Владеет методом pd.merge, понимает, что такое ключ объединения и за что отвечают аргументы how, on, left_on, right_on (горизонтальное объединение)
  • – Владеет методом pd.concat (вертикальное объединение)
  • – Знает, как импортируется библиотека
  • – Знает примерную структуру графика и базовые параметры для настройки
  • – Знает, как использовать метод plot и подавать в него данные для отрисовки графиков
  • – Может построить простой график и настроить базовые параметры (подписи осей, заголовок, размер графика)
  • – Знает основные типы графиков (лайнплот, барплот, гистограмма, точечная диаграмма и т.д.)
  • – Имеет на руках готовые примеры построения графиков и код, который можно переиспользовать в своих задачах
  • – Знает основные объекты библиотеки (Figure, Axes)
  • – Может построить несколько графиков на одной сетке
  • – Имеет готовые примеры построения продвинутых графиков на одной сетке
  • – Понимает, чем seaborn отличается от matplotlib и как с ней связана
  • – Умеет строить простые графики в seaborn с помощью displot, scatterplot и т.д.
  • – Знает, какие задачи решают аналитики и какими способами достигается результат
  • – Имеет опыт применения всех ранее полученных знаний для решения задачи по анализу данных рекламной сети
  • – Ищет баги в аналитических логах
  • – Понимает, что данные не всегда бывают точными и правильными
  • – Умеет обнаружить проблемы в данных и знает, как с ними справляться
  • – Знает статистические метрики центральной тенденции (медиана, процентиль), умеет их рассчитывать
  • – Может визуализировать распределение изучаемой метрики с помощью Python
  • – Умеет делать продвинутую фильтрацию данных и применять сразу несколько фильтров к таблице
  • – Понимает, как визуализация помогает анализировать данные
  • – Знает основные библиотеки для визуализации в Python (seaborn,matplotlib, plotly) Скользящее среднее и оконные функции
  • – Понимает логику работы оконных функций в Python
  • – Умеет эффективно фильтровать и агрегировать данные внутри групп
  • – Знаком с базовыми возможностями по улучшению отображения и читаемости графиков в Jupyter Notebook
  • – Умеет масштабировать оси, изменять цвета и заголовки графиков
  • – Понимает синтаксис Plotly для отображения интерактивных графиков
  • – Ориентируется в документации библиотеки
  • – Может самостоятельно пройти путь от неструктурированных данных до понятной визуализации рассчитанной статистики при помощи гистограммы и Bar Chart
  • – Знает о модуле os
  • – Умеет применять конструкцию list comprehension для быстрого формирования списков
  • – Умеет работать с файловыми системами внутри Jupyter Notebook с помощью модуля os
  • – Умеет читать разные форматы и расширения данных из локальной директории
  • – Умеет применять построчное чтение файлов при помощи методов open().readlines()
  • – Ориентируется в в файловой системе
  • – Умеет навигироваться по файлам и папкам в рабочей директории
  • – Знает, как учитывать тип разделителя при чтении файлов формата csv и txt.
  • – Понимает, как отображается табуляция в текстовых файлах
  • – Понимает, как считать только часть файла при помощи цикла, переменных True/False и построчного чтения файлов
  • – Знает, как прочитать только часть колонок в файле
  • – Знает о типе данных DateTime
  • – Умеет конвертировать String и Int типы данных в DateTime
  • – Умеет выполнять арифметические операции с датами (поиск временного интервала между двумя датами)
  • Освоит сбор и объединение данных из разрозненной файловой структуры — научится считывать данные из нескольких CSV-файлов, расположенных в папках по датам, категориям и менеджерам, объединять их в единые датафреймы и добавлять вычисляемые колонки.
  • Научится анализировать временные ряды и выявлять аномалии — сможет рассчитывать динамику заказов по дням, находить выбросы, определять сезонность и аномальные дни, интерпретировать причины их появления.
  • Освоит интеграцию данных из разных источников — будет объединять заказы, статусы, продукты и курс валюты в единый датафрейм, проводить агрегацию и фильтрацию по условиям задачи.
  • Научится рассчитывать ключевые бизнес-метрики — общую выручку, средний чек, долю отменённых заказов, динамику метрик по дням и в разрезе брендов, товаров и менеджеров.
  • Освоит приёмы бренд-анализа и товарного ассортимента — определит, какие бренды приносят наибольшую выручку, какие товары востребованы, а какие не заказываются, и сможет сделать выводы для оптимизации «виртуальной полки».
  • Разовьёт навык построения наглядных визуализаций для управленческих решений — подготовит графики и сводные таблицы, отражающие результаты анализа по статусам заказов, брендам и менеджерам, и оформит их в отчёт.
  • – Понимает смысл API, разбирается в понятиях POST и GET в контексте работы интернет-сервисов
  • – Умеет авторизироваться в API сервисах и понимает, что означает наличие аккаунта для подключения к API
  • – Знает, как создавать ботов ВКонтакте, от имени которых можно автоматически отправлять сообщения
  • – Умеет пользоваться python библиотекой vk_api
  • – Имеет опыт работы с библиотеками requests, json и random
  • – Может создать бота, подключиться к нему и отправить результаты расчетов текстовым сообщением ВКонтакте
  • – Понимает, как и зачем применяется Google API
  • – Умеет проходить авторизацию в Google API
  • – Умеет подключаться к таблицам и скачивать их через библиотеку к себе Jupyter Notebook
  • – Умеет выгружать данные о действиях на сайте в Яндекс.Метрике с помощью библиотеки requests
  • Освоит разные способы итерации по DataFrame (iterrows, itertuples, apply) и сравнит их эффективность с помощью замеров времени выполнения.
  • Научится применять векторизацию и работу с NumPy массивами для ускорения обработки больших объёмов данных.
  • Получит опыт написания пользовательских функций (на примере haversine) и их интеграции в Pandas-процессы для вычисления новых признаков.
  • Научится выявлять и обрабатывать аномалии в данных с помощью фильтрации, условий и визуализации (boxplot).
  • Освоит методы работы с мультииндексами (stack, unstack, xs) и преобразования форматов данных (melt, wide_to_long) для подготовки датасетов к анализу.
  • Сможет объединять приёмы оптимизации и преобразования данных для подготовки «чистого» набора с минимальными затратами по времени.
  • Освоит продвинутые приёмы работы с Pandas для группировки, агрегации, расчёта скользящих показателей и подготовки данных к анализу.
  • Научится строить и кастомизировать графики в Seaborn (catplot, FacetGrid, pairplot) для выявления закономерностей и сравнений по категориям и регионам.
  • Получит навыки применения техник векторизации и пайплайнов в Pandas для повышения эффективности кода.
  • Сможет визуализировать тренды, распределения и взаимосвязи показателей, а также оформлять графики с нужным порядком категорий, палитрами и аннотациями.
  • Научится связывать выводы из визуализации с бизнес-задачами и формулировать инсайты для принятия решений.
  • Познакомимся с интерфейсом Google Colab и узнаем, как устроена эта среда.
  • Научимся создавать и запускать ячейки с кодом и текстом.
  • Разберёмся, в чём плюсы и минусы работы в Google Colab.
  • Освоим работу с панелью инструментов и другими элементами интерфейса.
  • Попробуем подключать библиотеки и использовать встроенные ИИ-инструменты.
  • Научимся загружать файлы в Colab и работать с данными из Google Диска.
  • Поймем, в чем отличие БД и СУБД и какие возможности предоставляют базы данных
  • Узнаем, как устроены базы данных, что такое сущности и отношения между ними
  • Научимся писать основные SQL-запросы и объединять таблицы через JOIN
  • Научимся подключаться к PostgreSQL через python и оперировать данными из базы данных
  • Познакомимся с понятием «класс» и философией ООП.
  • Рассмотрим основные принципы построения классов
  • Научимся создавать классы и объекты, добавлять методы
  • Научимся реализовывать наследование
  • Научимся использовать магические методы
  • Научимся импортировать встроенные и ставить сторонние библиотеки
  • Научимся устанавливать конкретные версии сторонних пакетов с помощью pip и разберем ситуации, когда необходимо фиксировать версии
  • Научимся изолировать друг от друга проекты, которые имеют разные и противоречащие зависимости
  • Познакомимся с теорией клиент-серверного взаимодействия и узнаем, какая информация передается в http-протоколе
  • Научимся отправлять запрос серверу и возвращать ответ от сервера
  • Разберемся что такое api, что такое фреймворк, REST api и fastapi
  • Научимся писать endpoint-ы с и принимать параметры для веб-сервиса на fastapi
  • Научимся разрабатывать веб-сервис на базе FAST API, который будет обрабатывать HTTP-запросы к базе данных и возвращать посты с наибольшим числом лайков.
  • Узнаем, какие существуют best practices для разработки веб-приложений
  • Получить опыт установки Python локально на свой компьютер
  • Познакомимся с концепцией ORM
  • Научимся работать с базой данных через SQLAlchemy
  • Поймёт, как работает веб-сервер на низком уровне: от открытия сокета до отправки ответа клиенту.
  • Сможет вручную реализовать простой REST API без фреймворка, а затем переписать его с использованием FastAPI, сравнив подходы.
  • Разберётся в процессе обработки HTTP-запроса: разбор заголовков, парсинг тела, валидация данных и формирование ответа.
  • Освоит базовые конструкции FastAPI: создание объектов приложения, объявление маршрутов с декораторами, валидация и сериализация данных через Pydantic.
  • Поймёт преимущества и ограничения ручного подхода и фреймворка, сможет обосновать выбор подхода для разных задач.
  • Сможет запускать и тестировать веб-приложения на FastAPI, понимать, как работает автодокументация и встроенная валидация.
Содержание учебной дисциплины

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

  • Начало работы в Python
  • Условия и циклы
  • Функции
  • Первые аналитические задачи
  • Еще больше о Pandas
  • Исследование данных и создание метрик
  • Продвинутые расчёты и визуализация
  • Решение продуктовых задач
  • Оконные функции и интерактивные графики
  • Работа с грязными данными
  • Проект по Python №1
  • API (Google Spreadsheets, Яндекс.Метрика)
  • Дополнительные возможности Pandas
  • Практикум по Python: работа с данными в pandas и построение визуализаций
  • Google Colab, обзор инструмента
  • Базы данных в Python: основы
  • Классы и ООП
  • Библиотеки и виртуальное окружение
  • Backend-разработка: что это такое. Фреймворк FastAPI для прототипирования backend-сервера
  • Проект по Python №2
  • Полезные вещи в разработке
  • Установка Анаконды: необязательный урок
  • Бонусный урок. Базы данных в Python: ORM
  • Вебинар "Написание веб-сервер с нуля, сравнение с FastAPI”
Элементы контроля

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

  • блокирующий Домашнее задание к разделам (урокам) 1-19. Квиз на закрепление основных понятий урока.
    44 тестовых задания: 1 урок - 11 заданий, 2 урок - 10 заданий, 3 урок - 10 заданий, 7 урок - 3 задания, 13 урок - 1 задание, 15 урок - 6 заданий, 16 урок - 1 задание, 19 урок - 2 задания.
  • блокирующий Домашнее задание к разделам (урокам) 1-23. Практические задания по Python.
    211 практических задач: 1 урок - 22 задания, 2 урок - 29 заданий, 3 урок - 9 заданий, 4 урок - 11 заданий, 5 урок - 12 заданий, 6 урок - 18 заданий, 7 урок - 6 заданий, 8 урок - 12 заданий, 9 урок - 7 заданий, 10 урок - 8 заданий, 12 урок - 11 заданий, 13 урок - 21 задание, 15 урок - 5 заданий, 16 урок - 14 заданий, 17 урок - 5 заданий, 18 урок - 9 заданий, 19 урок - 9 заданий, 23 урок - 3 задания.
  • блокирующий Финальный проект по Python (урок 11 и урок 20).
    Студентам предоставляется 3 варианта финального проекта на выбор, каждая из которых подразумевает выполнение практического задания.
Промежуточная аттестация

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

  • 2025/2026 2nd module
    Итоговая оценка соответствует сумме баллов за выполненные задания на LMS karpov.courses, приведенные к 10-балльной шкале (см. таблицу). Для каждого задания на LMS-платформе karpov.courses определён дедлайн в 14 календарных дней, после наступления которого студенту начисляется 70% от итогового балла за задание.
Список литературы

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

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

  • Изучаем программирование на Python, Бэрри, П., 2017

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

  • Программируем на Python, Доусон, М., 2015

Авторы

  • Ахмедова Гюнай Интигам кызы