Уровень сложности:
Длительность курса: 96 ак.ч.
График обучения: 96 ак. часов, 24 занятия по 4 ак. часа
Программа состоит из 2 отдельных курсов-модулей.
Аннотация
Данный курс углубленно изучает объектно-ориентированное программирование и современные возможности C++. Программа детально разбирает четыре ключевые парадигмы ООП: инкапсуляцию, наследование, полиморфизм и делегирование. Слушатели освоят работу с конструкторами, деструкторами, семантикой перемещения, перегрузкой операторов, шаблонами функций и классов. Особое внимание уделяется сложным аспектам языка: множественное и виртуальное наследование, механизм RTTI, обработка исключений и обобщенное программирование. Практические занятия включают реализацию структур данных (стеки, очереди, списки), использование STL-контейнеров, алгоритмов и итераторов. Курс завершается изучением предикатов и порождающих функций для создания эффективных и надежных приложений.
Знания и умения, полученные в результате обучения
Знания:
-
Принципы объектно-ориентированного программирования (инкапсуляция, наследование, полиморфизм, делегирование).
-
Синтаксис и семантика C++: классы, конструкторы (копирования, перемещения), деструкторы, спецификаторы доступа, перегрузка операторов.
-
Механизмы C++: RTTI (dynamic_cast, typeid), обработка исключений (try/catch/throw), шаблоны функций и классов, семантика перемещения.
-
Архитектура стандартной библиотеки (STL): контейнеры, итераторы, алгоритмы, предикаты, функциональные объекты.
-
Правила построения иерархий классов: простое, множественное и виртуальное наследование, абстрактные классы.
Умения:
-
Проектировать и реализовывать классы, используя паттерны ООП.
-
Управлять памятью: применять семантику перемещения, реализовывать "правило пяти".
-
Использовать шаблоны для создания обобщенного кода.
-
Работать со стандартной библиотекой: выбирать и применять контейнеры, итераторы и алгоритмы.
-
Обрабатывать ошибки с помощью механизма исключений.
Навыки:
-
Создание и использование классов с динамической памятью, включая перегрузку операторов.
-
Реализация структур данных (списки, стеки, очереди) с использованием ООП и шаблонов.
-
Построение полиморфных иерархий классов с виртуальными функциями.
-
Применение STL для эффективной работы с данными (сортировка, поиск, модификация).
-
Отладка и оптимизация кода на C++ с использованием современных возможностей языка.
Курсы, в освоении которых помогут приобретенные знания
Курсы связанных направлений
Сегодня занятий по этому курсу нет.
-
Базовое понимание основ программирования: Знание фундаментальных концепций, таких как переменные, типы данных, условные операторы, циклы и функции. Опыт написания простых программ на любом языке программирования (например, C, Python, Java) является обязательным.
-
Базовое знакомство с языком C: Понимание структуры программы, работы с указателями, базовых типов данных и препроцессора. Это необходимо для плавного перехода к изучению синтаксиса C++ и его объектной модели.
-
Английский язык технического уровня: Умение читать и понимать техническую документацию, сообщения компилятора и ошибки, которые преимущественно формулируются на английском языке.
-
Готовность к сложному материалу: Понимание, что курс затрагивает сложные и абстрактные концепции (например, семантика перемещения, шаблоны, полиморфизм), которые требуют усидчивости и многочасовой практики для глубокого усвоения.
Курсы, обеспечивающие достаточный начальный уровень знаний