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

- Начало курса
-
05.02.2021
- Продолжительность
- 1,5 месяца (48 ак. часов)
- Расписание
-
Вт 19:00 - 22:00Пт 19:00 - 22:00
Онлайн (12 мест) |
17500 | записаться |
свернуть
Описание курса
Курс Основы программирование на языке C++. Уровень 2 является продолжением курса Основы программирование на языке C++. Уровень 1 и охватывает большую часть практических аспектов языка C++, необходимых начинающему разработчику.
Данный курс С++ рассчитан на тех, кто уже знаком с основами программирования на языке C++, стремится развиваться дальше и в настоящий момент нуждается в наставнике при освоении языка C++ на практике.
В данный курс входит полностью весь язык С++:
- Общие понятия
- Наследование
- Инкапсуляция
- Полиморфизм
- Классы
- Спецификаторы доступа
- Конструкторы, деструткоры.
- Методы
- Операторы
- Наследование
Одновременно c ООП настоящий курс c++ охватывает такие необходимые для разработчика темы, как:
-
Интерфейсы
-
STL
-
умные указатели
- алгоритмы
- контейнеры
- потоки, примитивы синхронизации
- файловая система
- Шаблоны проектирования
Данный курс не затрагивает мета программирование и функциональное программирование на языке С++.
По завершению курса у участников будут знания и умения для того, что бы разработать программу практически любой сложности на языке С++ начиная от идеи и заканчивая реализацией.
Курсовой проект:
Начиная примерно с середины курса участники будут работать над курсовыми проектами, сдача которых является обязательным условием для получения сертификата.
Все курсовые проекты основаны на том, что участнику курса придется самостоятельно познакомиться с одной из множества существующих библиотек.
Примерные темы проектов:
- Мини игра в стиле «Pacman» — графическая библиотека (OpenGl, WinAPI, Borland...).
- Детектор движения в видео потоке — библиотека работы с видео потоком (Gstreamer…)
- Плеер — библиотека работы со звуком (vlc, alsa…)
- База данных — библиотека работы с базами данных (sqlite…)
- Шифрователь — библитеки шифрования (openssh…)
- Умный дом — библиотеки работы с контроллерами (stm…)
- Бот для игры
Требования к участникам:
- Опыт программирования на языке C (Си)
- Знание основ написания тестов
- Понимание процесса review кода
- Опыт работы с системами контроля версий
свернуть
Программа
Занятие 1
- Понятие ООП
- Понятие класса
- Спецификаторы доступа
- Конструкторы, деструкторы
- Move семантика
- Ссылки
- Практика:
- Написание программы выводящей информацию о том, какие конструкторы когда вызываются
- Разбор всех видом конструирования объектов на примерах
Занятие 2
- Методы класса
- Операторы класса
- Друзья
- Псевдонимы
- Шаблоны
- Практика:
- Реализация вектора
Занятие 3
- Универсальные ссылки
- Наследование
- Виртуальные функции
- Интерфейсы
- Наследование конструкторов
- Практика:
- Уход от зависимостей от реализации, на зависимости от интерфейсов
Занятие 4
- Динамическое выделение памяти
- Умные указатели
- Методы работы с умными указателями
- Практика:
- Реализация фабрики
Занятие 5
- constexpt
- Функциональные объекты
- Лямбда выражения
- Стандартные алгоритмы
- 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
- Сдача курсового проекта
- Подведение итогов
- Куда двигаться дальше?
свернуть
Преподаватель
Михаил
C++ Developer в компании Яндекс.
Закончил мех-мат ЮФУ по специальности "Прикладная математика и информатика".
Опыт разработки более 7-ми лет. За это время попробовал не мало различных технологий и языков программирования, но большую часть времени занимался разработкой на С++ и всем, что с ним связано.
В данный момент Михаил работает программистом в компании Яндекс. В решении задач использует как С++, так и Python.
"Начинающему разработчику на С++ обычно не хватает терпения, сталкиваясь с различными трудностями в понимании механизмов языка. В наши дни почти у всех есть возможность для поиска информации по любому вопросу, но не всегда эта информация может быть достоверной или простой для понимания. В изучении языков программирования важно уметь эту информацию "фильтровать" и правильно использовать. От себя могу посоветовать одно - пробуйте все то, что вам интересно и ничего не бойтесь, даже если в самом начале пути будет получаться не так много, как хотелось бы!" - говорит Михаил.
Евгений
Senior С++ Developer в компании Zodiac Interactive
Закончил БГТУ «Военмех» по специальности «Информатика и вычислительная техника».
«Опыт разработки на С++ более 7-ми лет. За это время усвоил одну простую истину - C++ это
универсальный язык. Хотите написать игру - берите С++. Хотите написать сервер -
берите С++. Хочется графический интерфейс - возьмите С++ и прилепите на него бантик. Хотите кошку, которая будет смотреть на мир через сложную систему зеркал? Ну Вы поняли...
На курсе будет сложно, мы по шагам будем идти к цели, и надеюсь, что в результате большинство участников курса устроятся на работу и будут развиваться, как разработчики.
Мы пройдем все от «А что такое программирование?» до «Что то мне лень писать программу, напишу программу, что бы она написала программу за меня» - говорит Евгений.
Курсы программирования, тестирования, мобильных и веб-технологий от Level UP!
Учитесь с профессионалами в сфере IT-образования!