Курс Основы программирования на C++. Уровень 2 [2022] [level up] [Михаил, Евгений]

Bot

Администратор
Команда форума
23 Янв 2020
142,281
503
113
Курс Основы программирования на C++. Уровень 2 [2022]
level up
Михаил, Евгений
Курс Основы программирование на языке C++. Уровень 2 является продолжением курса Основы программирование на языке C++. Уровень 1 и охватывает большую часть практических аспектов языка C++, необходимых начинающему разработчику.

Данный курс С++ рассчитан на тех
, кто уже знаком с основами программирования на языке C++, стремится развиваться дальше и в настоящий момент нуждается в наставнике при освоении языка C++ на практике.

В данный курс входит полностью весь язык С++:

  • Наследование
  • Инкапсуляция
  • Полиморфизм
[*]Классы
  • Спецификаторы доступа
  • Конструкторы, деструткоры.
  • Методы
  • Операторы
[*]Наследование

Одновременно c ООП настоящий курс c++ охватывает такие необходимые для разработчика темы, как:
  • умные указатели
  • алгоритмы
  • контейнеры
  • потоки, примитивы синхронизации
  • файловая система

  • Шаблоны проектирования
Данный курс не затрагивает мета программирование и функциональное программирование на языке С++.
По завершению курса
у участников будут знания и умения для того, что бы разработать программу практически любой сложности на языке С++ начиная от идеи и заканчивая реализацией.

Спойлер: Содержание
Занятие 1
  • Понятие ООП
  • Понятие класса
  • Спецификаторы доступа
  • Конструкторы, деструкторы
  • Move семантика
  • Ссылки
  • Практика:
    • Написание программы выводящей информацию о том, какие конструкторы когда вызываются
    • Разбор всех видом конструирования объектов на примерах
Занятие 2
  • Методы класса
  • Операторы класса
  • Друзья
  • Псевдонимы
  • Шаблоны
  • Практика:
    • Реализация вектора
Занятие 3
  • Универсальные ссылки
  • Наследование
  • Виртуальные функции
  • Интерфейсы
  • Наследование конструкторов
  • Практика:
    • Уход от зависимостей от реализации, на зависимости от интерфейсов
Занятие 4
  • Динамическое выделение памяти
  • Умные указатели
  • Методы работы с умными указателями
  • Практика:
    • Реализация фабрики
Занятие 5
  • std::find…
  • std::copy…
  • std::sort
  • std::binary_search..
  • std::equal
[*]Практика:
  • Задачи на уменьшение асимптотической сложности при помощи сортировки и поиска

Занятие 6
  • 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
  • Контрольная работа
Занятие 8
  • Исключения
  • Безопасность исключений
  • Пространства имен
  • Практика:
    • Разбор примеров генерации исключений в самых неожиданных местах
    • Примеры реализации функций не генерирующих исключения
Занятие 9
  • Потоки
  • Примитивы синхронизации
  • Атомарные переменные
  • Future/promise
  • Практика:
    • Реализация задачи нахождения БПФ с использованием параллельного программирования
    • Реализация очереди сообщений
Занятие 10
  • Работа с файлами
  • Работа с файловой системой
  • Строки
  • Потоки строк
  • Практика:
    • Работа с файлами настроек
    • Реализация простейшей БД хранящей данные в текстовом формате
Занятие 11
  • Идиомы и паттерны проектирования
  • Распространенные идиомы
  • Практика:
    • Реализация COW строки
    • Реализация идиомы Pimpl
Занятие 12
  • Сдача курсового проекта
  • Подведение итогов
  • Куда двигаться дальше?

Продажник