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

Технологии программирования

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

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

Аннотация

Курс знакомит студентов с современными технологиями программирования, инструментами и подходами, используемыми в индустрии. Основное внимание уделяется практическому освоению языка Python (включая сравнение с Java), объектно-ориентированному программированию, тестированию, работе в командной строке (bash), системам контроля версий (Git), основам DevOps, контейнеризации (Docker) и распределенной обработке данных (Apache Hadoop). Курс построен так, чтобы дать слушателям целостное представление о жизненном цикле разработки и современных инструментах, необходимых для создания качественного программного продукта.
Цель освоения дисциплины

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

  • Сформировать у студентов базовое понимание процесса промышленной разработки ПО, обучить основам языка Python, принципам ООП, тестированию, работе с bash, Git, Docker и распределенной обработке данных, а также познакомить с концепциями DevOps.
Планируемые результаты обучения

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

  • Знать синтаксис Python, уметь использовать базовые типы и коллекции, писать простые программы
  • Уметь создавать функции с различными типами аргументов, использовать lambda, работать с файлами и исключениями.
  • Понимать принципы создания классов, уметь определять атрибуты и методы, применять инкапсуляцию.
  • Знать виды тестирования, уметь писать модульные тесты с pytest.
  • Уметь выполнять базовые команды, перенаправлять ввод/вывод, писать простые bash-скрипты
  • Уметь создавать репозитории, делать коммиты, работать с ветками и удалёнными репозиториями.
  • Знать основные методологии, понимать их сильные и слабые стороны.
  • Понимать концепции CI/CD, уметь настраивать простой пайплайн.
  • Уметь создавать Dockerfile, собирать образы, запускать контейнеры, использовать Docker Compose.
  • Знать приёмы оптимизации образов, уметь работать с сетями и томами.
  • Понимать архитектуру Spark, уметь писать простые приложения на PySpark.
  • Владеть синтаксисом Python, его основными конструкциями;
  • Создавать функции с различными типами аргументов, использовать lambda, работать с файлами и исключениями
  • Владеть принципами объектно-ориентированного программирования (инкапсуляция, наследование, полиморфизм) и способами их реализации в Python
  • Применять виды тестирования и инструменты автоматизации (pytest) для проверки кода
  • Работать с основными командами Bash: использовать перенаправление потоков, строить конвейеры (пайплайны) и разрабатывать скрипты
  • Работать с системой контроля версий Git, используя основные команды и осуществляя взаимодействие с удалёнными репозиториями
  • Владеть основами Docker: управлять образами и контейнерами, строить Dockerfile
  • Владеть представлением об архитектуре основных компонентов Hadoop.
  • Владеть понятиями распределённого хранения (HDFS) и управления ресурсами (YARN).
  • Применять алгоритм MapReduce для решения задач обработки данных
  • Владеть представлением об интеграции Hadoop с S3-совместимыми хранилищами
  • Владеть принципами организации кода в модули и пакеты
  • Применять различные способы импорта и управления зависимостями (pip, venv)
  • Применять механизм обработки исключений в Python, иерархию встроенных исключений
Содержание учебной дисциплины

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

  • Введение в базовый Python. Синтаксис
  • Продвинутые возможности Python
  • Концепция ООП на Python
  • Основы и концепции тестирования
  • Bash и командная строка
  • Работа с Git
  • Модули, файловая система и исключения в Python
  • Работа с Docker
  • Docker: продвинутые темы и оркестрация
  • Введение в DevOps: культура и практики
  • Введение в Hadoop
  • Hadoop: компоненты и практика
Элементы контроля

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

  • неблокирующий Домашнее задание
    Одно комплексное задание, охватывающее темы Python, bash, Git, Docker, Spark.
  • блокирующий Экзамен
    Письменная работа (тесты + открытые вопросы).
  • неблокирующий Тесты на лекциях
    Короткие письменные или онлайн-тесты в начале/конце лекции (5–10 минут).
  • неблокирующий Активность на занятиях
  • неблокирующий Командный хакатон
    Работа в группах (не более 5 человек).
  • неблокирующий Посещаемость
Промежуточная аттестация

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

  • 2025/2026 4th module
    0.15 * Активность на занятиях + 0.2 * Командный хакатон + 0.05 * Тесты на лекциях + 0.4 * Экзамен + 0.1 * Домашнее задание + 0.1 * Посещаемость
Список литературы

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

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

  • Python. Исчерпывающее руководство. - 978-5-4461-1956-1 - Бизли Дэвид - 2023 - Санкт-Петербург: Питер - https://ibooks.ru/products/386795 - 386795 - iBOOKS
  • Большая книга проектов Python, Свейгарт, Э., 2022
  • Изучаем Python: программирование игр, визуализация данных, веб-приложения. 3-е изд. - 978-5-4461-1528-0 - Эрик Мэтиз - 2021 - Санкт-Петербург: Питер - https://ibooks.ru/products/371712 - 371712 - iBOOKS

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

  • Docker без секретов: Пер. с англ. - 978-5-9775-1196-4 - Гош С. - 2023 - Санкт-Петербург: БХВ-Петербург - https://ibooks.ru/products/389633 - 389633 - iBOOKS

Авторы

  • Короткин Борис Александрович
  • Эрденко Александр Сергеевич