Skip to content

ivafanas/cpp_shad_students

Repository files navigation

Sources from C++ CS/SHAD lessons.

Feel free to use it as you wish.

Документация

Книги

Основы

  • Scott Meyers: "Effective C++: 55 Specific Ways to Improve Your Programs and Designs"
  • Scott Meyers: "More Effective C++: 35 New Ways to Improve Your Programs and Designs"
  • Scott Meyers: "Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library"

Продолжение

  • Scott Meyers: "Effective Modern C++. 42 Specific Ways to Improve Your Use of C++11 and C++14"
  • Herb Sutter: "Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions"
  • Herb Sutter: "Решение сложных задач на С++"
  • Herb Sutter: "Новые сложные задачи на C++"
  • Optimized C++. Про техники оптимизаций на уровне асимтотик и абстракций языка.

Продвинутые

  • Cpp Core guidelines. Набор правил от комитета по написанию кода на С++. Попытка в большом С++ выделить подмножество - простой и понятный язык.
  • "C++ concurrency in action". На понимание деталей многопоточности в С++.
  • Andrei Alexandrescu. "Modern C++ Design: Generic Programming and Design Patterns Applied". Трюки с шаблонами С++.
  • Optimizing software in C++. An optimization guide for Windows, Linux, and Mac platforms. Про оптимизации от языка до инструкций.
  • Антон Полухин. "Разработка приложений на С++ с использованием Boost". Обзор boost - объёмного набора С++ библиотек хорошего качества для самых разных нужд.

Блоги/подкасты/новости

Полезные ссылки

Конференции

  • CppCon. Топовая конференция по С++. Можно (нужно) смотреть записи докладов на ютуб.
  • Cpp Russia. Топовая российская конференция по С++ с неплохим уровнем докладов.
  • Cpp Siberia 2020, 2021 - локальный филиал Cpp Russia в Новосибирске.
  • C++ now / boostcon

Видеозаписи лекций

2019 осень (сем. 1)

  • Лекция 1. Знакомство. Ввод-вывод. Командная строка. Компиляция. 1, 2
  • Лекция 2. Функции. Чтение из файла, cmake, unit-тесты. 1, 2
  • Лекция 3. Классы. Начало. 1, 2
  • Лекция 4. Классы. Продолжение. 1, 2
  • Лекция 5. Шаблоны. 1, 2
  • Лекция 6. Контейнеры и итераторы. 1, 2
  • Лекция 7. Исключения. 1, 2
  • Лекция 8. Умные указатели. Передача аргументов в функцию. RVO / NRVO / copy elision. 1, 2
  • Лекция 9. Техники оптимизации. 1, 2
  • Лекция 10. Техники оптимизации. 1, 2
  • Лекция 11. Алгоритмы и лямбды. 1, 2
  • Лекция 12. Компиляция и линковка. Undefined behavior. 1, 2

2020 весна (сем. 2)

  • Лекция 1. Многопоточность. Введение. 1, 2
  • Лекция 2. Многопоточность. Продолжение. 1, 2
  • Лекция 3. Многопоточность. Продвинутый материал 1. 1, 2
  • Лекция 4. Многопоточность. Продвинутый материал 2. 1, 2
  • Лекция 5. Move-семантика. 1, 2
  • Лекция 6. Advanced templates. 1, 2
  • Лекция 7. Compile-time. 1, 2
  • Лекция 8. Ranges. 1, 2
  • Лекция 9. Мелкие нововведения стандарта. 1, 2

2020 осень (сем. 1)

  • Лекция 1. Знакомство. Ввод-вывод. Командная строка. Компиляция. 1, 2
  • Лекция 2. Функции. Заголовочные файлы. Чтение из файла. CMake. Юнит-тесты. 1, 2
  • Лекция 3. Классы. Начало. 1, 2
  • Лекция 4. Классы. Продолжение. 1, 2
  • Лекция 5. Шаблоны. 1, 2
  • Лекция 6. Контейнеры и итераторы. 1, 2.
  • Лекция 7. Исключения. 1, 2
  • Лекция 8. Умные указатели. 1, 2
  • Лекция 9. Агрументы. RVO / NRVO / copy elision. 1, 2
  • Лекция 10. Алгоритмы и лямбды. 1, 2
  • Лекция 11. Техники оптимизации. 1, 2
  • Лекция 12. Профилировка. Модель физической памяти. 1, 2
  • Лекция 13. Компиляция и линковка. 1, 2
  • Лекция 14. Практикум. Ray tracing. 1, 2

2021 весна (сем. 2)

  • Лекция 1. Разминка. 1, 2
  • Лекция 2. Многопоточность. Введение 1, 2
  • Лекция 3. Многопоточность. Продолжение. 1, 2
  • Лекция -. Домашнее задание: коммивояжёр. 1, 2
  • Лекция 4. Многопоточность. Продвинутый материал. 1, 2
  • Лекция 5. Многопоточность. Основы lock free 1, 2
  • Лекция 6. Move-семантика 1, 2
  • Лекция 7. Продвинутое использоване шаблонов 1, 2
  • Лекция 8. Мелкие нововведения стандарта 1, 2
  • Лекция 9. Undefined behavior 1
  • Лекция 10. Compile-time вычисления 1

2021 осень (сем. 1) https://rutube.ru/plst/153595

  • Лекция 1. Введение. Первая программа. Ввод-вывод. Командная строка. 1, 2; 1, 2
  • Лекция 2. Функции. Чтение файла. CMake. Unit-тесты. 1, 2; 1, 2
  • Лекция 3. Классы. Определение. Поля и методы. Конструктор, присваивание и деструктор. 1, 2; 1, 2
  • Лекция 4. Классы. Наследование. Виртуальные функции. Layout. Дизайн классов. 1, 2; 1, 2
  • Лекция 5. Шаблоны. 1, 2; 1, 2
  • Лекция 6. Контейнеры и итераторы. 1, 2; 1, 2
  • Лекция 7. Исключения. 1, 2; 1, 2
  • Лекция 8. Умные указатели y; r
  • Лекция 9. Аргументы. RVO / NRVO / Copy elision. 1, 2; 1, 2
  • Лекция 10. Алгоритмы и лямбды. 1, 2; 1, 2
  • Лекция 11. Техники оптимизации. 1, 2; 1, 2
  • Лекция 12. Профилировка. Модель физической памяти. r

2022 весна (сем. 2) https://rutube.ru/plst/172513

  • Лекция 1. Знакомство. Организационная лекция. Компиляция и линковка. 1, 2; 1, 2
  • Лекция 2. Многопоточность. std::thread. promise-future. Эффективность распараллеливания и закон Амдала. 1, 2; 1, 2
  • Лекция 3. Многопоточность. Race condition. Mutex. Thread-safe объекты 1, 2; 1, 2
  • Лекция 4. Многопоточность. Recursive mutex. Shared mutex. Condition variable. Thread local. 1, 2; 1, 2
  • Лекция 5. Многопоточность. Atomics. Основы. 1, 2; 1, 2
  • Лекция 6. Многопоточность. Spin lock. Hybrid mutex. Lock free 1, 2; 1, 2
  • Лекция 7. Move-семантика. 1, 2; 1, 2
  • Лекция 8. Продвинутое использование шаблонов. 1, 2; 1, 2
  • Лекция 9. Мелкие нововведения стандарта. y; r
  • Лекция 10. Compile-time выичсления. y; r
  • Лекция 11. Undefined behavior. y; r
  • Лекция 12. Форматирование. Ranges. y; r

2022 осень (сем. 1) (запись не ведётся)

-

2023 весна (сем. 2) (запись не ведётся)

-

About

C++ course materials for CS Center students

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published