Основы программирования на языке C++

Курс ориентирован на начинающих IT специалистов в области программирования, которые ставят перед собой цель обучиться основам использования языков разработки программного обеспечения С++. Курс является базовым и не требует предварительного опыта в программировании. Владение аппаратом программирования в рамках школьной/институтской программы приветствуется.


Курс длится 4 месяца (64 часа)
Занятия 2 раза в неделю (по 2 часа)
Занятия в вечернее время и/или по выходным
Взнос 1800 грн. в месяц
По окончанию курса международный сертификат *
В группе 8-12 человек
Следующий старт 29 сентября 2019
Место проведения: КДЦ "Менора", ул. Шолом-Алейхема, 4/26, ауд. 1105

Отзывы о курсе

Программа курса **

  • Модуль 1: Введение в C++
    • Что такое программирование?
    • Обзор языка C++;
    • Исходный код, компилятор и компоновщик. Как получить рабочее приложение из текста?
    • Интегрированная среда разработки (IDE). Установка Visual Studio 2017 Community;
    • Первая программа на C++.
  • Модуль 2: Данные и операторы
    • Литералы и переменные;
    • Константы. Различие #define и const;
    • Введение в rvalue и lvalue (C++11);
    • Типы данных. Числа, символы и строки;
    • Специальный тип auto (C++11);
    • Операторы и операнды. Построение выражений;
    • Виды операторов: унарные, бинарные и тернарные;
    • Оператор присваивания;
    • Арифметические операторы;
    • Операторы составного присваивания;
    • Операторы сравнения;
    • Логические операторы. Отрицание, дизъюнкция, конъюнкция;
    • Область видимости переменных: локальные и “глобальные” переменные;
    • Ввод и вывод данных в консоли.
  • Модуль 3: Управляющие конструкции
    • Построение неполных ветвлений. Условный оператор if;
    • Построение полных ветвлений. Условный оператор if..else;
    • Каскадирование условніх операторов if..else if;
    • Вложенные условия;
    • Тернарный оператор;
    • Оператор множественного выбора switch;
    • Построение циклических алгоритмов;
    • Цикл с предусловием while;
    • Цикл с постусловием do..while;
    • Цикл со счетчиком for.
  • Модуль 4: Структуры и перечисления
    • Создание пользовательских сложных типов данных;
    • Отличие встроенных типов от пользовательских, простых от сложных;
    • Создание структур, ключевое слово struct;
    • Работа со структурами: поля структур, значения по-умолчанию (C++11) и вложенные структуры;
    • Перечисления и перечисляемые классы (C++11).
  • Модуль 5: Функции
    • Функции — объявление, определение и вызов;
    • Область видимости переменных;
    • Аргументы функции и передача значений;
    • Передача констант и структур в аргументы функции;
    • Возвращение значения из функции с помощью return;
    • Структурные переменные в качестве возвращаемого значения;
    • Передача аргументов по ссылкам; преимущество и недостатки использования передачи по ссылкам;
    • Почему следует предпочитать передачу константой ссылки вместо обычной ссылки?
    • Перегрузка функций; полиморфизм времени компиляции;
    • Аргументы по умолчанию;
    • Рекурсия;
    • Встраиваемые функции;
    • Возвращение значения по ссылке.
  • Модуль 6: Массивы и строки
    • Что такое массивы и зачем они нужны?
    • Определение и доступ к элементам массива;
    • Алгоритмы для обработки значений массивов;
    • Многомерные массивы;
    • Передача массивов в аргументы функции;
    • Массивы структур;
    • Предпочитайте класс std::array встроенным массивам в стиле языка C;
    • Строки в стиле С — строка как массив символов char;
    • Класс std::string для работы со строками.
  • Модуль 7: Основы ООП
    • Что такое объектно-ориентированное программирование?
    • Моделирование классов и создание объектов на основе построенных моделей;
    • Класс как сложный пользовательских тип данных;
    • Инкапсуляция: public, protected и private области видимости;
    • Конструкторы и деструкторы;
    • Геттеры и сеттеры;
    • Передача объектов в качестве аргументов функции (метода);
    • Статические поля и методы класса;
    • Константные методы и классы;
    • Какие функции класс генерирует по умолчанию и как это предотвратить?
    • Ключевые слова explicit и mutable;
  • Модуль 8: Перегрузка операций
    • Что такое перегрузка операций в структурах и классах?
    • Перегрузка унарных операций;
    • Перегрузка бинарных операций;
    • Преобразования типов;
  • Модуль 9: Наследование
    • Базовые и производные классы;
    • Наследование и конструкторы;
    • Виртуальные функции;
    • Абстрактные классы и чисто виртуальные функции;
    • Необходимость определения виртуальных деструкторов;
    • Public, protected и private наследование;
    • Почему следует всегда использовать область видимости private;
    • Множественное наследование: все за и против;
    • Композиция классов;
    • Паттерны проектирования;
  • Модуль 10: Указатели
    • Адресация переменных в памяти и понятие указателя;
    • Управление памятью: операции new и delete;
    • Указатель на переменные и на void;
    • Указатель на массивы;
    • Константные указатели; указатели на константу и константные указатели на константу;
    • Указатели и функции;
    • Указатели и объекты;
    • Массив указателей;
    • Указатели на указатели;
    • Реализация структуры данных stack с использованием указателей;
    • Реализация структуры данных связной список с использованием указателей;
    • Проблема утечки памяти; умные указатели.
  • Модуль 11: Полиморфизм, шаблоны и исключения
    • Полиморфизм времени выполнения с использованием указателей и виртуальных функций;
    • Дружественные функции;
    • Шаблоны функций и классов;
    • Выведение типов в шаблонах;
    • Зачем нужны исключения;
    • Генерация исключений (throw) и перехват в блоке try..catch;
    • Ключевое слово noexcept;
    • Пространства имен и многофайловые программы.
  • Модуль 12: STL
    • Что такое библиотека STL и зачем она нужна?
    • Алгоритмы;
    • Контейнеры — vector, list, deque, map;
    • Итераторы;
    • Функциональные объекты и предикаты;
  • Модуль 13: Потоки и файлы
    • Потоковые классы
    • Классы ios, istream и ostream;
    • Ошибки потоков;
    • Потоковый ввод и вывод файлов;
    • Указатели файлов;
    • Перегрузка операторов извлечения и вставки.
  • Модуль 14: Современный C++ (C++11, C++14, C++17)
    • Универсальная инициализация переменных;
    • using вместо typedef;
    • Ключевое слово override для методов;
    • Использование constexpr
    • Семантика перемещений и rvalue-ссылки;
    • Лямбда-выражения;
    • Изучайте современные возможности C++.
  • Модуль 15: Разработка ПО
    • Проектирование и структура программы;
    • Выбор технологии и библиотек;
    • Написание программы.

Наши студенты и выпускники

* Образовательный центр оставляет за собой право выдавать сертификат тем студентам, которые на протяжение курса выполняли обязательства по регулярному посещению занятий и выполнению контрольных работ.

** Образовательный центр оставляет за собой право вносить изменение в программу курса.