Бакалавриат
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 module0.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