На этом курсе начинают с обзора основных стандартов языка - C++11, 14, 17, 20 и 23. Студенты осваивают автоматическое определение типов через оператор auto, научатся работать с циклами по диапазонам. Рассматривают работу с файловой системой с помощью std::filesystem, использование умных указателей для безопасного управления памятью и новейший подход к работе с диапазонами через std::ranges.
Далее курс углубляется в написание лямбда-функций. Студенты учат создавать лямбды, осваивают механизмы захвата объектов. Разбирают разницу между lvalue и rvalue, изучают std::move и move-конструкторы для эффективного перемещения данных без лишнего копирования.
Этот блок посвящен параллельным вычислениям. Студенты научатся создавать потоки, синхронизировать их работу. Практикуют создание мьютексов и семафоров для защиты общих данных. В конце модуля разрабатывают собственные потокобезопасные структуры данных.
Модуль охватывает создание статических и динамических библиотек. Студенты научатся работать с библиотеками на разных операционных системах. Параллельно изучают современные системы сборки - CMake и gn, а также осваивают инструменты контроля версий на примере git.
Здесь студенты знакомятся с профессиональными инструментами для отладки и анализа производительности. Курс охватывает работу с gdb и lldb для дебаггинга, valgrind для поиска утечек памяти, perf для профилирования кода и оптимизации быстродействия.
Заключительный учебный блок посвящен популярным фреймворкам. Сначала рассматривают Boost - ассамблер C++ библиотек, в частности asio для сетевого программирования, filesystem для работы с файлами и thread для потоков. Потом переходят к Qt - знакомятся с Qt Creator, создают интерфейсы с помощью Qt Widgets и Qt QML.
Завершается курс практической работой - созданием полноценного графического десктоп-приложения. Студенты применяют полученные знания для реализации реального проекта под руководством преподавателя.
Обучение происходит в малых группах, что обеспечивает индивидуальный подход. Каждый студент имеет личный кабинет для доступа к материалам. Все занятия записываются - можно просмотреть пропущенное или повторить тему. Преподаватели - практики с реальным опытом работы. Техническая поддержка оперативно помогает с любыми вопросами. Акцент на практике - большая часть времени посвящена написанию кода и решению конкретных задач.