Skip to content

Latest commit

 

History

History
67 lines (62 loc) · 6.41 KB

questions.md

File metadata and controls

67 lines (62 loc) · 6.41 KB

Курс лекций "Проектирование больших систем на языке программирования С++"

Вопросы для проведения промежуточной аттестации:

  1. Принципы и примеры использования lvalue, xvalue, prvalue выражений языка С++.
  2. Принципы и примеры использования rvalue-references и lvalue-references языка С++.
  3. Принципы и примеры использования семантики перемещения языка С++.
  4. Принципы и примеры использования исключения языка С++.
  5. Принципы и примеры использования шаблонов языка С++.
  6. Принципы и примеры использования свёртка и вывод шаблонных параметров.
  7. Принципы и примеры использования variadic templates.
  8. Принципы и примеры использования tuple.
  9. Принципы и примеры использования functional.
  10. Принципы и примеры использования lambda-функции.
  11. Принципы и примеры использования инкапсуляции классов.
  12. Принципы и примеры использования наследования классов.
  13. Принципы и примеры использования полиморфизма типов.
  14. Принципы и примеры использования компонентов и модулей.
  15. Принципы и примеры использования интерфейсов языка С++.
  16. Принципы и примеры использования абстрактных классов языка С++.
  17. Принципы и примеры использования управления потоками на языке С++.
  18. Принципы и примеры использования атрибуты и директивы языка С++.
  19. Принципы и примеры использования статических и динамических библиотек языка С++.
  20. Принципы и примеры использования RAII.
  21. Принципы и примеры использования SNIFAE.
  22. Принципы и примеры использования variant, optional и any.
  23. Принципы и примеры использования type erasure, PImpl и CRTP.
  24. Принципы и примеры использования аллокаторов и memory management.
  25. Принципы и примеры использования lazy & unified initialization, copy elision.
  26. Принципы и примеры использования сетевого взаимодействия, сокетов.
  27. Принципы и примеры использования boost.geometry.
  28. Принципы и примеры использования boost.log, boost.signals, boost.strings, boost.tokenizer.
  29. Принципы и примеры использования boost memory management и boost.serialization.
  30. Принципы и примеры использования boost.numeric и BGL.
  31. Принципы и примеры использования boost.typetraits и boost.filesystem и boost.propertytree.
  32. Принципы и примеры использования boost.test, boost.regex и boost.metastatemachine.
  33. Нововведения стандарта языка программирования С++11.
  34. Нововведения стандарта языка программирования С++14.
  35. Нововведения стандарта языка программирования С++17.
  36. Нововведения стандарта языка программирования С++20.
  37. Принципы и примеры использования шаблонов проектирования.
  38. Жизненный цикл приложения.
  39. Архитектура приложения.
  40. Тестирование и документация.

Перечень литературы для подготовки:

  1. А. Александреску Современное проектирование на C++
  2. Б. Страуструп Язык программирования С++ — 4 изд.
  3. Б. Страуструп Программирование. Принципы и практика использования C++
  4. Б. Страуструп Дизайн и эволюция языка С++
  5. Г. Саттер, А. Александреску Стандарты программирования на С++. 101 правило и рекомендация
  6. Д. Вандевурд, Н. Джосаттис Шаблоны C++. Справочник разработчика
  7. Дж. Мак-Колм Смит Элементарные шаблоны проектирования (Elemental Design Patterns)
  8. Д.Э. Кнут Искусство программирования для ЭВМ. Т.7. Компиляторы
  9. К. Гантерот Оптимизация программ на C++. Проверенные методы повышения производительности
  10. С. Макконнелл Совершенный код (Code complete)
  11. С. Мейерс Эффективный и современный С++ (42 рекомендации по использованию C++11 и C++14)
  12. Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес Приемы объектно-ориентированного проектирования. Паттерны проектирования
  13. Э.Э. Гасанов, В.Б. Кудрявцев Теория хранения и поиска информации
  14. A. Mukherjee Learning Boost C++ Libraries
  15. A. Polukhin Boost C++ Application Development Cookbook
  16. B. Karlsson Beyond the C++ Standard Library: An Introduction to Boost
  17. D. Abrahams, A. Gurtovoy C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond
  18. D. Radchuk Boost.Asio C++ Network Programming Cookbook