Бакалавриат
2025/2026


Программирование на C++
Статус:
Курс обязательный (Прикладная математика и информатика)
Кто читает:
Базовая кафедра Яндекс
Где читается:
Факультет компьютерных наук
Когда читается:
1-й курс, 3 модуль
Охват аудитории:
для всех кампусов НИУ ВШЭ
Преподаватели:
Горбунова Ольга Константиновна,
Гревцев Александр Владимирович,
Ковешников Владимир Владимирович,
Колпаков Дмитрий Алексеевич,
Коробейников Николай Андреевич,
Крапивин Богдан Александрович,
Краснов Александр Анатольевич,
Куренков Владимир Вячеславович,
Лоскутников Станислав Артурович,
Мамаев Алексей Александрович,
Нестеренко Алиса Вадимовна,
Скворцов Сергей Михайлович,
Талменев Александр Александрович,
Федоров Михаил Антонович,
Чебряков Данила Сергеевич,
Шершаков Сергей Андреевич
Язык:
русский
Кредиты:
4
Контактные часы:
80
Программа дисциплины
Аннотация
Первая часть посвящена основам языка C++. Курс опирается на последний стандарт C++20. Помимо основ языка C++, курс направлен на освоение принципов написания качественного промышленного кода и знакомство с современными инструментами разработки. Большой акцент в курсе сделан на практическую работу. Обратная связь по выполнению заданий осуществляется в формате ревью кода.
Цель освоения дисциплины
- Знание и практическое применение конструкций языка С++ в объёме достаточном для реализации любого алгоритма из следующего за ним курса.
- Понимание и применение основных принципов написания качественного промышленного кода.
- Владение современными инструментами разработки.
Содержание учебной дисциплины
- Введение в курс, настройка окружения, история языка
- Разбор первых программ на C++
- Примитивные типы, переполнение, UB
- Функции. Ссылки, const&, перегрузка.
- Указатели. Массивы
- Структуры и классы: поля, методы, конструкторы.
- Std::vector и std::string.
- Итераторы, range-based for, алгоритмы STL.
- Ассоциативные контейнеры и адаптеры.
- Шаблоны функций и классов.
- Управление памятью: стек, куча, сырые указатели.
- RAII и умные указатели (unique_ptr, shared_ptr).
- Правило трёх: конструктор копирования, оператор присваивания, деструктор.
- Move-семантика, rvalue-ссылки, Правило пяти.
- Наследование и виртуальный полиморфизм.
- Обработка ошибок через исключения.
- Организация проекта: заголовочные файлы, раздельная компиляция, пространства имен.
Элементы контроля
- Проект
- Контрольная работа 1
- Контрольная работа 2
- Работа на семинаре
- Экзамен
- Домашние задания