8 812 320 13 03
  • Новости
  • Расписание
  • Курсы
  • Организациям
  • Контакты
  • Перезвоните мне

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

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

    Курс Основы программирования на C++. Уровень 2
    Начало курса
    15.12.2020
    Продолжительность
    1,5 месяца (48 ак. часов)
    Расписание
    Вт 19:00 - 22:00
    Пт 19:00 - 22:00
    Онлайн
    (3 места)
    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-образования!