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

Язык программирования Python

ID 1181980

Статус: Курс по выбору (Экономика и анализ данных)
Когда читается: 1-й курс, 3, 4 модуль
Охват аудитории: для всех кампусов НИУ ВШЭ
Язык: русский
Кредиты: 4
Контактные часы: 80

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

Аннотация

Дисциплина предназначена для студентов, владеющих языком C++ и параллельно изучающих курс «Алгоритмы и структуры данных». Программа курса охватывает синтаксис и семантику Python, работу с коллекциями, функциями и классами, обработку файлов, а также использование сторонних библиотек для разработки прикладного ПО. В 3-м модуле изучаются базовые конструкции языка, функции, классы, обработка JSON и работа с SQLite посредством решения задач с использованием автоматизированной системы проверки решений «Яндекс.Контест». В 4-м модуле выполняется индивидуальный мини-проект — настольное приложение для обработки и хранения данных с использованием Git, библиотек Python и автоматизированного тестирования. Разработка включает создание прототипа, его доработку, верификацию и подготовку к передаче пользователю. Использование ИИ-ассистентов регламентировано как вспомогательный инструмент для уточнения требований, генерации кода, анализа ошибок и проверки тестов. Ответственность за проверку и обоснование всех решений полностью лежит на обучающемся. Курс опирается на алгоритмическую подготовку студентов, синхронизирован с параллельным курсом «Алгоритмы и структуры данных» и не предполагает повторного изучения его теоретических основ.
Цель освоения дисциплины

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

  • Целью освоения дисциплины является формирование у обучающихся устойчивых навыков самостоятельного решения прикладных задач на языке Python, а также разработки небольших программных продуктов с использованием стандартной библиотеки, внешних модулей, систем контроля версий и автоматизированного тестирования. Отдельное внимание уделяется освоению методологии ответственного и проверяемого применения ИИ-ассистентов в качестве вспомогательного инструмента на различных этапах разработки.
  • Знать: принципы объектно-ориентированного программирования в Python, возможности стандартной библиотеки, методы промпт-инжиниринга (составления запросов) для работы с ИИ-ассистентами, а также принципы работы с API сторонних ИИ-сервисов.
  • Уметь: проектировать архитектуру приложения, формулировать точные технические задания для ИИ-ассистентов, интегрировать внешние нейросетевые модели в свой код, проводить рефакторинг и отладку с помощью ИИ.
  • Владеть: современными ИИ-инструментами для разработки (копайлоты, нейросетевые IDE), практиками написания чистого кода и навыками создания полноценных приложений с встроенными функциями искусственного интеллекта.
Планируемые результаты обучения

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

  • Знать: встроенные типы данных Python и их изменяемость; принципы работы включений и генераторов; правила разрешения имён (LEGB) и области видимости; синтаксис аннотаций типов.
  • Уметь: выбирать подходящий тип данных под задачу; заменять циклы включениями там, где это повышает читаемость; писать функции с позиционными, именованными и произвольными параметрами; применять map(), filter(), zip() и лямбда-выражения; использовать генераторы для обработки больших последовательностей без загрузки их в память.
  • Владеть: приёмами обработки коллекций средствами стандартной библиотеки (в т.ч. collections.Counter); навыком аннотирования сигнатур функций; практикой формулирования запроса к ИИ-ассистенту на генерацию вспомогательной функции и последующей проверки полученного кода.
  • Знать: модель объектов Python, различие переменных класса и экземпляра, назначение __slots__; состав и семантику магических методов; правила наследования и порядок разрешения методов (MRO); механику дескрипторов и декораторов.
  • Уметь: проектировать иерархию классов под предметную область; перегружать операторы и корректно реализовывать __eq__ вместе с __hash__; применять абстрактные базовые классы для фиксации контракта; писать собственные декораторы, в том числе с аргументами; использовать замыкания.
  • Владеть: навыками объектно-ориентированного проектирования приложения; практиками написания чистого кода (осмысленные имена, единственная ответственность класса); умением поручить ИИ-ассистенту черновую реализацию класса по описанному контракту и провести ревью результата.
  • Знать: структуру стандартной библиотеки и способы подключения сторонних пакетов; событийную модель GUI-приложения; форматы CSV и JSON и их ограничения; основы реляционной модели и синтаксиса SQL.
  • Уметь: строить оконный интерфейс на Tkinter с обработкой событий; визуализировать данные средствами Matplotlib; выполнять векторные вычисления на массивах NumPy; читать и записывать CSV/JSON; выполнять запросы к базе SQLite из Python и безопасно передавать параметры запроса.
  • Владеть: навыком разработки настольного приложения с графическим интерфейсом и сохранением данных; приёмами разделения слоя интерфейса и слоя логики; практикой генерации типового кода интерфейса и парсинга данных с помощью ИИ-ассистента с последующей отладкой.
  • Знать: назначение виртуальных окружений и способы фиксации зависимостей; модель ветвления и слияния в Git; уровни тестирования и назначение фикстур; принципы статического анализа и типизации; различие образа и контейнера, устройство слоёв образа; идею непрерывной интеграции; сильные и слабые стороны ИИ-ассистентов в разработке.
  • Уметь: организовывать проект в виде пакетов с зафиксированными зависимостями; вести разработку в Git с ветками и pull request; писать юнит-тесты на pytest с фикстурами и параметризацией, оценивать покрытие; настраивать ruff/black/mypy; собирать образ по Dockerfile и поднимать связку «веб-приложение + база данных» через docker compose; настраивать простой пайплайн GitHub Actions; применять копайлот для генерации тестов, объяснения и рефакторинга кода.
  • Владеть: навыком развёртывания приложения в контейнере; практиками верификации сгенерированного ИИ кода (тесты, ревью, проверка зависимостей); пониманием рисков безопасности и лицензионных ограничений при использовании ИИ-ассистентов; умением оценить, где применение ассистента даёт выигрыш, а где ведёт к скрытым дефектам.
Содержание учебной дисциплины

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

  • Работа со встроенными типами. Функции.
  • Проектирование и разработка типов на языке Python
  • Использование библиотек. Стандартные библиотека и сторонние модули.
  • Современный стек разработки. Контейнеризация и ИИ-ассистенты.
Элементы контроля

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

  • неблокирующий Контрольная работа
  • неблокирующий Проект
  • неблокирующий Домашние задание
  • неблокирующий Семинарская активность
  • неблокирующий Экзамен
Промежуточная аттестация

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

  • 2026/2027 4th module
    0.25 * Проект + 0.05 * Семинарская активность + 0.15 * Домашние задание + 0.2 * Контрольная работа + 0.2 * Экзамен + 0.1 * Домашние задание
Список литературы

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

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

  • Git для профессионального программиста, Чакон, С., 2016
  • Python - к вершинам мастерства : лаконичное и эффективное программирование, Рамальо, Л., 2022
  • Python : исчерпывающее руководство, Бизли, Д. М., 2023
  • Python и анализ данных : первичная обработка данных с применением pandas, NumPy и Jupiter, Маккинни, У., 2023

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

  • Изучаем Python. Т.1: ., Лутц, М., 2020
  • Изучаем Python. Т.2: ., Лутц, М., 2020

Авторы

  • Куренков Владимир Вячеславович
  • Волкова Вера Константиновна