C++ (базовый курс)
Описание курса
Курс состоит из 11 занятий общей длительностью в 36 академических часов. В курсе предусмотрено 11 лабораторных работ для самостоятельного усвоения материала.
Основной задачей курса является обучение слушателей теоретическим основам объектно-ориентированного программирования, приемам разработки ПО, решения типичных задач программирования и разработки приложений на языке С++.
После окончания курса ты сможешь понимать основные принципы C++ и разрабатывать простое ПО на этом языке. Курс подготовит тебя к дальнейшему изучению продвинутых аспектов языка C++.
После курса вы сможете:
- Разрабатывать ПО на языке C++
- Выполнять математические расчеты, решать задачи и реализовывать типовые алгоритмы
Программа курса:
- 1. Введение. Немного истории
- Организация вычислительной системы
- Организация памяти
- Языки программирования
- Машинные языки
- Языки низкого уровня
- Языки высокого уровня
- Трансляторы – компиляторы и интерпретаторы
- Подходы к разработке ПО
- Процедурное, модульное, структурное программирование
- Объектно-ориентированный подход
- Обобщенное программирование
- Краткая история С/С++
- 2. Состав языка
- Алфавит
- Основные составляющие языка
- Идентификаторы
- Ключевые слова
- Комментарии
- Пример простейшей программы на С++
- 3. Переменные и базовые типы данных
- Переменные
- Целочисленные типы
- Типы с плавающей точкой
- Логический тип
- Символьный тип
- Пустой тип void
- Модификаторы типов «short», «long», «unsigned», «signed»
- Константы
- Объявление и инициализация переменных
- Глобальные и локальные переменные
- Приведение типов
- 4. Основные операции языка С++
- Операция присваивания
- Арифметические операции
- Арифметические операции с присваиванием
- Логические операции
- Поразрядные операции
- Операции проверки равенства/неравенства
- Инкремент, декремент
- Условная операция
- Возвращаемое значение
- Ассоциативность операций
- Приоритет операций
- 5. Операторы языка С++
- Условный оператор «if else»
- Оператор выбора «switch»
- Операторы циклов «for», «while», «do while»
- Операторы «goto», «break», «continue»
- Пустой оператор
- Оператор вызова функции
- Оператор «sizeof»
- 6. Функции
- Понятие функции в С++
- Оператор «return»
- Параметры функции
- Формальные и фактические параметры
- Передача параметров по ссылке и по значению
- Рекурсивные функции
- Шаблоны функций
- Перегрузка функций
- 7. Форматированный ввод/вывод
- Функции ввода/вывода
- Управляющие последовательности символов
- 8. Структура программы на языке С++
- Директивы препроцессора
- Подключение внешних модулей
- Порядок компиляции
- Область видимости определений
- Макроопределения
- Функции
- Функция «main»
- Тип функции «main»
- Аргументы командной строки
- 9. Массивы и указатели
- Понятие массива
- Работа с массивами
- Одномерные и многомерные массивы
- Указатели
- Работа с динамической памятью
- Операции с указателями
- Массивы указателей
- Адресная арифметика
- Операции с указателями
- 10. Пользовательские типы данных
- Структуры (struct)
- Перечисления (enum)
- Объединения (union)
- Работа со структурным типом
- Доступ к полям
- 11. Динамическая память
- Работа с динамической памятью
- Методы работы с динамической памятью
- Операции «new» и «delete»
- Динамические структуры данных
- Список
- Двусвязные и односвязные списки
- Очередь
- Стек
- 12. Введение в объектно-ориентированное программирование
- Объектно-ориентированный подход к разработке программного обеспечения
- Объектно-ориентированный анализ и проектирование
- Принципы ООП
- 13. Объектно-ориентированное программирование на языке С++
- Понятие класса и объекта
- Поля и методы класса
- Модификаторы прав доступа
- Конструкторы и деструкторы
- Создание экземпляра объекта
- Динамические и статические объекты
- Инициализация, присваивание и уничтожения объекта
- Копирующий конструктор и указатель «this»
- 14. Принципы ООП
- Инкапсуляция
- Наследование
- Полиморфизм
- Реализация принципов ООП на языке С++
- 15. Шаблоны (паттерны) проектирования
- Паттерн проектирования «Singleton»
- 16. Наследование
- Наследование классов
- Множественное наследование
- Защищенное наследование
- Закрытое наследование
- Открытие доступа к отдельным членам класса
- Композиция объектов
- Область видимости при наследовании
- 17. Полиморфизм
- Реализация полиморфизма
- Виртуальные функции
- 18. Абстрактные классы и интерфейсы
- Понятие интерфейса
- Наследование интерфейсов
- Понятие пространства имен
- 19. Перегрузка методов и операторов
- Переопределение и перегрузка методов класса
- Перегрузка операторов
- Дружественные методы
- Паттерн проектирования «Прототип»
- 20. Шаблоны типов
- Шаблонные функции
- Шаблонные классы
- Работа с шаблонами
- Параметрические типы
- 21. Обработка исключений
- Исключительные ситуации и работа с ними
- Блоки «try catch»
- Генерация исключения «throw»
- Отладочный макрос «_ASSERT»
- 22. Потоковый ввод/вывод
- Классы ввода/вывода данных
- Потоки данных
- Ввод/вывод
- Бинарные и текстовые файлы
- Создание, чтение, запись файлов
- 23. Сетевое взаимодействие
- Основы Socket API
- Установка соединения
- Передача данных
- 24. Основы работы с графикой OpenGL
- 25. Проектирование программного обеспечения
- Проектирование классов
- Проектирование библиотек
- Шаблоны (паттерны) проектирования
- 26. Отношения между классами
- Ассоциация
- Агрегация
- Композиция
- Наследование
- Формы наследования
Минимальные требования:
- Наличие собственного ноутбука для занятий в аудиториях
- Знание основ теории программирования
* Указанные скидки не суммируются с другими действующими акциями и специальными предложениями. Если у Вас возникли вопросы, обращайтесь за консультацией к нашим менеджерам!