Узнать подробности и записаться на сайте школы на пробный бесплатный урок Сайт школы

Курс "Основы программирования на C++. Уровень 2"

Школа LevelUp

Программа интенсивного курса разработана для тех, кто уже имеет опыт с основами программирования на языке С++

  • Срок обучения
    1,5 месяца

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

  1. Сборка проекта                                                           
  2. Разработка через тестирование (TDD)
  3. Контроль версий на Github
  4. Указатели в C++
  5. ООП в C++
  6. Работа с сетью C++
  7. Многопоточность в C++
  8. Исключения в С++
  9. STL
  10. Шаблоны проектирования
  11. Метапрограммирование

Программа обучения

Занятие 1. Механизмы сборки проектов. Системы контроля версий. Основы тестирования. 

  • Сборка проекта в среде VS
  • Различные плагины VS. Настройка среды под себя
  • Методика отладки приложения
  • Виды тестирования
  • Подключение gTest
  • Создание простейших тестов
  • Разработка через тестирование (TDD)
  • Контроль версий на Github. Работа с ветками
  • Домашнее задание

Занятие 2. Указатели в C++

  • Указатели
  • Константные указатели и указатели на константу
  • Указатели на указатели
  • Указатели на функции
  • Смысл сравнения указателей
  • Умные указатели
  • Указатель auto_ptr – штука странная
  • Практика
  • Домашнее задание

Занятие 3. ООП. Классы

  • Еще раз про классы
  • Смысл константной функции-члена
  • Компилятор дополняет классы
  • Присваивание и инициализация – это не одно и то же
  • Конструктор копирования. Предотвращение копирования
  • Перегрузка операторов
  • Дружественные методы и классы
  • Новые операторы приведения
  • Практика
  • Домашнее задание

Занятие 4. ООП. Множественное наследование.

  • Таблица виртуальных методов
  • Наследование интерфейса
  • Наследование реализации
  • Дублирование подобъектов
  • Виртуальное наследование
  • Абстрактные базовые классы
  • Проблемы разрешения имен
  • Отказ от множественного наследования
  • Практика
  • Домашнее задание

Занятие 5. ООП. Оттачиваем мастерство в использовании классов и объектов

  • Диаграмма классов
  • Отношения между классами
  • Практика
  • Домашнее задание

Занятие 6. Шаблоны и метапрограммирование

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

Занятие 7. Исключения в C++

  • Что такое исключения?
  • Перехват исключений
  • Поиск подходящего обработчика
  • Стандартные исключения
  • Безопасность исключений
  • Программирование с учетом исключений
  • Практика
  • Домашнее задание

Занятие 8. STL

  • Основные контейнеры 
  • Когда надо использовать определенный тип контейнера и почему?
  • Анализ сложности операций при работе с контейнерами
  • Каталог алгоритмов STL
  • Практика
  • Домашнее задание

Занятие 9. Многопоточность в C++

  • Параллелизм в C++
  • Программные потоки
  • Совместное использование ограниченных ресурсов
  • Кооперация между программными потоками
  • Взаимная блокировка
  • Практика
  • Домашнее задание

Занятие 10. Практика

  • Тест на проверку освоенного материала
  • По желанию разбор дополнительных интересующих тем
  • Доработка приложения