Array ( [0] => programming [1] => xxi [2] => kiev [3] => ua )

Курсы C++ профессионал

  • Длительность: 2 мес., 20 зан. х 2,5 часа
  • Стоимость: 1950/мес. (нал)
    2145/мес. (безнал)
  • Даты начала: 27.02.2012, 16.00-18.30
    12.03.2012, 18:30-21:00
- Как выбрать курсы программирования
- Как правильно изучать языки программирования

Язык программирования C++ – это один из самых мощных языков программирования, который позволяет разрабатывать программные продукты любого уровня и степени сложности. Достаточно сказать, что большинство компьютерных игр, инженерных графических программ, антивирусов, симуляторов пишется именно на С++, поскольку ни один из современных языков не может сравниться с ним в скорости. Существует огромное количество проектов, написанных на языке С++, для дальнейшего развития этих проектов вскоре могут понадобиться и Ваши знания.

В данном курсе глубоко рассматриваются все нюансы конструирования классов, ООП и современные технологии программирования - шаблоны, STL, паттерны проектирования. После изучения этого курса Вы сможете грамотно конструировать архитектуру программ, учитывая возможное дальнейшее расширение и улучшение их функциональности. Понимание ООП позволит Вам быстро писать программы практически любой степени сложности. Знание языка С++ на таком уровне дает возможность разрабатывать программное обеспечение не только под операционную систему Windows, но и под MacOS, Linux и т.д.

Поскольку целью наших курсов является подготовка студентов к работе, начиная с февраля 2012-го года,  в программу профессионального курса включено большинство тем курса Visual C++. Знание этого материала даст возможность студентам писать полноценные многопоточные оконные приложения с современным интерфейсом. К тому же для кандидата на вакансию junior developer эти знания обязательны.

При условии успешного прохождения курса (успешном выполнении контрольных заданий курса) Вы научитесь эффективно применять возможности языка С++ на практике и будете готовы к прохождению собеседования на вакантную позицию программиста С++ в любой солидной компании.

В программе курса:

  • Работа с памятью. Функции с неопределенным кол-вом параметров.
Формат файла. Интерпретация памяти.
  • Статические локальные переменные в функции
Функции, запоминающие свое состояние.
  • Шаблонные функции
  • Основные концепции Объектно-ориентированного программирования
Инкапсуляция. Полиморфизм. Наследование.
  • Классы
Конструкторы. Деструкторы. Правила инициализации. Перегруженные конструкторы. Конструктор копирования и перегрузка оператора присваивания. Указатель this. Указатели на члены класса и их применение.
  • Перегрузка операторов
Правила. Понимание ситуаций, когда необходима перегрузка. Диагностика операторов, выполняемых при перегрузке. Преобразования, определяемые классом. Перегрузка инкремента, декремента оператора индексирования. Перегрузка оператора вызова функции (круглых скобок). Перегрузка операторов new, deletе.
  • Дружественные функции
Дружественные классы, предварительное объявление класса. Перегрузка операторов "друзей"
  • Статические члены класса (статические переменные-члены, методы-члены)
  • Использование модификаторов const, mutable
Снятие константности (модификатор mutable и const_cast)
  • Динамические структуры данных
Односвязный список. Двусвязный список. Очередь. Кольцевая очередь. Очередь с приоритетами. Бинарное дерево.
  • Шаблоны
Шаблоны функций. Шаблоны классов (специализация шаблонов, шаблонные параметры, нетиповые параметры шаблонов).
  • Наследование. Правила инициализации при наследовании
Одиночное наследование. Множественное наследование. Виртуальный базовый класс.
  • Виртуальные функции
Раннее и позднее связывание. Замена vtbl. Необходимость виртуального деструктора
  • Абстрактные классы
Обработка исключительных ситуаций
try, catch, throw. Использование throw для упрощения логики и скорости
  • Работа с файлами в языке C++
  • Пространства имен
  • Преобразования типов в "C++"
  • Работа со стандартной библиотекой "C++"
Контейнеры. Итераторы (как взаимосвязаны свойства итераторов и контейнеров). Алгоритмы (правила использования, плюсы и минусы) big O notation. Модифицирующие алгоритмы. Создание своего контейнера.
  • Паттерны проектирования
Агрегирование и осведомленность. UML, диаграммы классов, взаимодействия объектов. Порождающие паттерны. Структурные паттерны. Паттерны поведения.
  • Написание проектов с применением паттернов

  • Взаимодействие между окнами, приложением и Windows (OS)
  • Понимание описателей, сообщений, параметров
  • Создание приложения и его  работа, вечный цикл
  • Прорисовка в окне, WM_PAINT,  CDC и прочие  GDI объекты
  • Рассмотрение всех стандартных элементов управления.
  • Замена оконной процедуры - subclassing, Get-SetWindowLong
  • Создание окон (элементов управления) произвольной формы - регионы, ownerdraw
  • MFC, классы SDI, MDI приложений
  • PreCreateWindow, PreTranslateMessage
  • Потоки, процессы, синхронизация
  • Мьютексы, семафоры, события, ожидаемые таймеры, потоки, процессы (как объекты ядра)
  • Wait - функции,  GetLastError().
  • Снимок процессов, виртуальная память
  • DLL - создание, экспорт, дебаг, понимание СОМ технологии
  • Обмен данными между процессами. Именованные каналы, проецируемые в память файлы и т.д.
  • Работа с реестром, хуки

Требования к слушателям для получения диплома!

  1. Понимать все инструменты языка, знать их сравнительные характеристики, применение. Знать и уметь применять паттерны при проектировании программ и работе в команде (+ UML).
  2. Грамотно написать все промежуточные задания и программы — это должен быть эффективный, без багов, самодокументируемый код с правильной, позволяющей расширять функциональность, модульной архитектурой.
  3. За месяц до окончания курсов выбрать для себя тему, не входящую в учебный материал, подготовить ее и объяснить на уроке другим студентам (умение учиться самостоятельно).
  4. Преподаватель дает тему в MSDN или книге на англ. языке — понять и объяснить.
  5. Активно отвечать на уроках, отрабатывать правильную терминологию.
Array ( [0] => programming [1] => xxi [2] => kiev [3] => ua ) progc

Фотоальбом

Array ( [0] => 121 [1] => 133 [2] => 134 [3] => 135 [4] => 136 [5] => 137 [6] => 138 [7] => 139 [8] => 140 [9] => 163 [10] => 160 )