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




Язык программирования C++
Статус:
Курс по выбору (Прикладная математика и информатика)
Кто читает:
Базовая кафедра Яндекс
Где читается:
Факультет компьютерных наук
Когда читается:
1-й курс, 1 модуль
Охват аудитории:
для своего кампуса
Язык:
русский
Кредиты:
4
Контактные часы:
56
Программа дисциплины
Аннотация
Первая часть посвящена основам языка C++. Курс опирается на последний стандарт C++20. Помимо основ языка C++, курс направлен на освоение принципов написания качественного промышленного кода и знакомство с современными инструментами разработки. Большой акцент в курсе сделан на практическую работу. Обратная связь по выполнению заданий осуществляется в формате ревью кода.
Цель освоения дисциплины
- Знание и практическое применение конструкций языка С++ в объёме достаточном для реализации любого алгоритма из следующего за ним курса.
- Понимание и применение основных принципов написания качественного промышленного кода.
- Владение современными инструментами разработки.
Планируемые результаты обучения
- Знать модель работы с ресурсами в C++.
- Знать основные алгоритмы стандартной библиотеки C++.
- Знать основные контейнеры стандартной библиотеки C++.
- Уметь работать с классами и объектами в C++
- Уметь тестировать код, в том числе с помощью автоматизированных тестов.
- Понимать и применять основных принципов написания качественного промышленного кода.
- Владеть современными инструментами разработки: системой контроля версий, IDE, системой для ревью кода, командной строкой.
Содержание учебной дисциплины
- Язык программирования C++
- Введение в курс, настройка окружения, история языка
- Разбор первых программ на C++
- Примитивные типы, переполнение, UB
- Функции. Ссылки, const&, перегрузка.
- Указатели. Массивы
- Структуры и классы: поля, методы, конструкторы.
- Std::vector и std::string.
- Итераторы, range-based for, алгоритмы STL.
- Ассоциативные контейнеры и адаптеры.
- Шаблоны функций и классов.
- Управление памятью: стек, куча, сырые указатели.
- RAII и умные указатели (unique_ptr, shared_ptr).
- Правило трёх: конструктор копирования, оператор присваивания, деструктор.
- Move-семантика, rvalue-ссылки, Правило пяти.
- Наследование и виртуальный полиморфизм.
- Обработка ошибок через исключения.
- Организация проекта: заголовочные файлы, раздельная компиляция, пространства имен.
- 1. Введение в курс, настройка окружения
- 2. Синтаксис, операторы
- 3. Примитивные типы, переполнение, UB
- 4. Функции. Ссылки, const&, перегрузка
- 5. Указатели. Массивы. C-style строки
- 6. Структуры и классы: поля, методы, конструкторы
- 7. Контейнеры на примере std::vector и std::string. Итераторы, range-based for, алгоритмы STL
- 8. Ассоциативные контейнеры и адаптеры
- 9. Управление памятью: стек, куча, сырые указатели
- 10. RAII и умные указатели. Правило трёх: конструктор копирования, оператор присваивания, деструктор. На примере unique_ptr и shared_ptr
- 11. Наследование и виртуальный полиморфизм
- 12. Шаблоны функций и классов
- 13. Обработка ошибок через исключения
- 14. Move-семантика, rvalue-ссылки, Правило пяти
- 15. Организация проекта: заголовочные файлы, раздельная компиляция, пространства имён
Промежуточная аттестация
- 2026/2027 1st module0.1 * Работа на семинаре + 0.625 * Проект + 0.275 * Домашнее задание
Список литературы
Рекомендуемая основная литература
- Дейл, Н. Программирование на С++ : самоучитель / Н. Дейл, Ч. Уимз, М. Хедингтон. — Москва : ДМК Пресс, 2007. — 672 с. — ISBN 5-93700-008-0. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/1219 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
Рекомендуемая дополнительная литература
- Липпман, С. Язык программирования С++. Полное руководство : руководство / С. Липпман, Ж. Лажойе. — 3-е изд. — Москва : ДМК Пресс, 2006. — 1105 с. — ISBN 5-94074-040-5. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/1216 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.