We use cookies in order to improve the quality and usability of the HSE website. More information about the use of cookies is available here, and the regulations on processing personal data can be found here. By continuing to use the site, you hereby confirm that you have been informed of the use of cookies by the HSE website and agree with our rules for processing personal data. You may disable cookies in your browser settings.

  • A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Advanced Programming in C++

2024/2025
Academic Year
RUS
Instruction in Russian
3
ECTS credits
Delivered at:
Department of Information Systems and Technologies (Faculty of Informatics, Mathematics, and Computer Science (HSE Nizhny Novgorod))
Course type:
Elective course
When:
2 year, 1, 2 module

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

Аннотация

Курс посвящен современным механизмам языка С++ с точки зрения разработки эффективных (по памяти и быстродействию) модулей и программных библиотек. Основной упор делается на работу с оперативной памятью.
Цель освоения дисциплины

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

  • Уметь эффективно применять современные механизмы языка С++ для разработки модулей и программных библиотек
Планируемые результаты обучения

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

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

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

  • Препроцессор, компилятор, компоновщик
  • Память в С++
  • Функции
  • Классы и методы классов
  • Copy и move-семантика
  • Шаблоны
  • Исключения. Структурное связывание. Универсальная ссылка. Обработка ошибок. noexcept. Гарантии безопасности исключений (exception safety). Поиск подходящего обработчика. Исключения в конструкторе и деструкторе. Точки следования (sequence points).
  • Стандартная библиотека С++. Часть I. Библиотека шаблонов STL (Standard Template Library). Вспомогательные классы. Библиотека алгоритмов STL.
  • Продолжение работы с STL. Часть II
  • Расширения на C
Элементы контроля

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

  • неблокирующий Practice work
  • неблокирующий Defence
Промежуточная аттестация

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

  • 2024/2025 2nd module
    0.4 * Defence + 0.6 * Practice work
Список литературы

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

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

  • David Vandevoorde, Nicolai M. Josuttis, & Douglas Gregor. (2017). C++ Templates : The Complete Guide. Addison-Wesley Professional.
  • Scott Meyers. (2014). Effective Modern C++ : 42 Specific Ways to Improve Your Use of C++11 and C++14. O’Reilly Media.
  • О’Двайр, А. Осваиваем C++17 STL / А. О’Двайр. — Москва : ДМК Пресс, 2018. — 352 с. — ISBN 978-5-97060-663-6. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/116126 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

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

  • Мейерс, С. Наиболее эффективное использование C++. 35 новых рекомендаций по улучшению ваших программ и проектов : учебное пособие / С. Мейерс. — Москва : ДМК Пресс, 2007. — 294 с. — ISBN 5-94074-033-2. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/1224 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Мэйерс, С. Эффективное использование C++. 55 верных способов улучшить структуру и код ваших прграмм : руководство / С. Мэйерс. — 3-е изд. — Москва : ДМК Пресс, 2008. — 300 с. — ISBN 5-94074-304-8. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/1245 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

Авторы

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