Курс Основы программирования на C++. Уровень 2 [2022]
level up
Михаил, Евгений
Курс Основы программирование на языке C++. Уровень 2 является продолжением курса Основы программирование на языке C++. Уровень 1и охватывает большую часть практических аспектов языка C++, необходимых начинающему разработчику.
Данный курс С++ рассчитан на тех, кто уже знаком с основами программирования на языке C++, стремится развиваться дальше и в настоящий момент нуждается в наставнике при освоении языка C++ на практике.
В данный курс входит полностью весь язык С++:
- Общие понятия
- Наследование
- Инкапсуляция
- Полиморфизм
- Классы
- Спецификаторы доступа
- Конструкторы, деструткоры.
- Методы
- Операторы
- Наследование
- Интерфейсы
- STL
- умные указатели
- алгоритмы
- контейнеры
- потоки, примитивы синхронизации
- файловая система
- Шаблоны проектирования
По завершению курса у участников будут знания и умения для того, что бы разработать программу практически любой сложности на языке С++ начиная от идеи и заканчивая реализацией.
Занятие 1
- Понятие ООП
- Понятие класса
- Спецификаторы доступа
- Конструкторы, деструкторы
- Move семантика
- Ссылки
- Практика:
- Написание программы выводящей информацию о том, какие конструкторы когда вызываются
- Разбор всех видом конструирования объектов на примерах
- Методы класса
- Операторы класса
- Друзья
- Псевдонимы
- Шаблоны
- Практика:
- Реализация вектора
- Универсальные ссылки
- Наследование
- Виртуальные функции
- Интерфейсы
- Наследование конструкторов
- Практика:
- Уход от зависимостей от реализации, на зависимости от интерфейсов
- Динамическое выделение памяти
- Умные указатели
- Методы работы с умными указателями
- Практика:
- Реализация фабрики
- constexpt
- Функциональные объекты
- Лямбда выражения
- Стандартные алгоритмы
- std::find…
- std::copy…
- std::sort
- std::binary_search..
- std::equal
- Практика:
- Задачи на уменьшение асимптотической сложности при помощи сортировки и поиска
- Стандартные контейнеры
- std::vector
- std::list
- std::forward_list
- std::array
- std::deque
- std::set
- std::map
- std::multiset
- std::multimap
- std::unordered_set
- std::unordered_map
- std::unordered_multiset
- std::unordered_multimap
- std::stack
- std::queue
- std priority_queue
- Стандартные итераторы
- Практика:
- Задачи на уменьшение асимптотической сложности при помощи стандаартных контейнеров
Занятие 7
- Контрольная работа
- Исключения
- Безопасность исключений
- Пространства имен
- Практика:
- Разбор примеров генерации исключений в самых неожиданных местах
- Примеры реализации функций не генерирующих исключения
- Потоки
- Примитивы синхронизации
- Атомарные переменные
- Future/promise
- Практика:
- Реализация задачи нахождения БПФ с использованием параллельного программирования
- Реализация очереди сообщений
- Работа с файлами
- Работа с файловой системой
- Строки
- Потоки строк
- Практика:
- Работа с файлами настроек
- Реализация простейшей БД хранящей данные в текстовом формате
- Идиомы и паттерны проектирования
- Распространенные идиомы
- Практика:
- Реализация COW строки
- Реализация идиомы Pimpl
- Сдача курсового проекта
- Подведение итогов
- Куда двигаться дальше?
https://levelp.ru/courses/programmirovanie/the-basics-of-programming-in-c-level-2/