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

Обучение языку C++ 1

ID 1231505

Статус: Маго-лего
Охват аудитории: для своего кампуса
Преподаватели: Петров Андрей Иванович
Язык: русский
Кредиты: 6
Контактные часы: 56

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

Аннотация

С++ - мощный язык с богатым наследием. Тем, кто только ступил на путь освоения этого языка, очень просто заблудиться в изобилии техник и приёмов, созданных за последние 30 лет. Курс учит "Modern C++" - современному подмножеству языка (стандарты 14, 17 и 20). Много внимания уделяется инструментам и библиотекам - вещам которые не являются частью языка, но без которых не получится построить большой и сложный проект.
Цель освоения дисциплины

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

  • сформировать у студентов знание основных конструкций и идиом современного языка C++ (стандарты 14, 17 и 20) и навыки написания, сборки и отладки работающих программ на C++ с использованием стандартной библиотеки и инструментов разработки для решения практических задач.
  • уметь писать работающие программы на языке С++
  • уметь отлаживать код программ на языке C++
  • уметь использовать язык С++ в качестве инструмента для решения практических задач
  • владеть основными средствами языка С++
Планируемые результаты обучения

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

  • в качестве инструмента для решения практических задач владеть основными средствами языка С++
  • владеть основными средствами языка С++
  • владеть основными средствами языка С++
  • знать основные конструкции и идиомы современного языка С++
  • уметь использовать язык С++
  • уметь использовать язык С++ в качестве инструмента для решения практических задач
  • уметь отлаживать код программ на языке C++
  • уметь писать работающие программы на языке С++
  • уметь писать работающие программы на языке С++
  • настраивает окружение разработки: компилятор, систему сборки CMake и отладчик, собирает и запускает программу на C++;
  • пишет программы с использованием базовых типов данных, ссылок, указателей, константности и структур;
  • проектирует классы с конструкторами, деструкторами, методами и модификаторами доступа;
  • управляет динамической памятью вручную и с помощью умных указателей unique_ptr, shared_ptr и weak_ptr, применяя идиому RAII;
  • использует контейнеры и алгоритмы стандартной библиотеки шаблонов и пишет собственные шаблоны функций и классов;
  • применяет идиому pimpl для сокрытия деталей реализации и сокращения зависимостей между единицами трансляции;
  • объясняет представление структур и классов в памяти, выравнивание данных и применяет указатели на методы и шаблоны с переменным числом параметров;
  • находит и исправляет ошибки в программах на C++ с помощью отладчика и санитайзеров.
Содержание учебной дисциплины

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

  • Введение в С++. Настройка окружения
  • Константы, ссылки и указатели. Структуры
  • Классы
  • Динамическое управление памятью.
  • Умные указатели.
  • Стандартная библиотека шаблонов. Шаблоны
  • Наследование и виртуальные функции
  • Обработка ошибок
  • Паттерны проектирования
  • Python C Api
  • Пространства имен, move-семантика, perfect forwarding. Регулярные выражения
  • Представление структур и классов в памяти. Выравнивание данных. Указатели на члены-методы класса. Variadic templates.
  • Кодировки
  • Идиома pimpl
Элементы контроля

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

  • неблокирующий Домашнее задание 1
  • неблокирующий Домашнее задание 2
  • неблокирующий Домашнее задание 3
  • неблокирующий Активность на семинарах
Промежуточная аттестация

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

  • 2026/2027 2nd module
    0.2 * Домашнее задание 1 + 0.2 * Активность на семинарах + 0.2 * Домашнее задание 3 + 0.2 * Домашнее задание 2
Список литературы

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

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

  • C/C++. Программирование на языке высокого уровня : учебник для вузов, Павловская, Т. А., 2004
  • C++ Coding Standards, 101 rules, guidelines, and best practices, 220 p., Sutter, H., Alexandrescu, A., 2005
  • Наиболее эффективное использование C++. 35 новых рекомендаций по улучшению ваших программ и проектов - Мейерс С. - Издательство "ДМК Пресс" - 5-94074-033-2 - 2007 - русский - https://e.lanbook.com/book/1224 - ЛАНЬ - 1224
  • Программирование на языке C++ - Павловская Т.А. - Национальный Открытый Университет "ИНТУИТ" - - - 2016 - русский - https://e.lanbook.com/book/100409 - ЛАНЬ - 100409
  • Эффективное использование C++. 55 верных способов улучшить структуру и код ваших прграмм - Мэйерс С. - Издательство "ДМК Пресс" - 5-94074-304-8 - 2008 - русский - https://e.lanbook.com/book/1245 - ЛАНЬ - 1245

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

  • Эффективный и современный С++ : 42 рекомендации по использованию С++11 и С++14, Мейерс, С., 2016

Авторы

  • Фисенко Анна Сергеевна
  • Яковлева Илона Александровна