Осень 2022

Углублённое программирование на языке С++ (ML)

Цель курса —
Формирование практических навыков и умений, необходимых специалистам по разработке программного обеспечения (ПО) UNIX-подобных операционных систем для участия в проектах промышленной разработки среднего уровня сложности на языках С++, в том числе для замещения стажерских должностей разработчиков серверной части высоконагруженных приложений.

Описание

Учебный курс «Углубленное программирование на C++» состоит из 10 лекций и 7 практических занятий. Общая аудиторная нагрузка составляет 68 а.ч., из которых 40 а.ч. приходится на лекционные, а 28 а.ч. — на практические занятия.
 
Внеаудиторная нагрузка на слушателей компенсирует незначительный дисбаланс в пользу теоретической направленности аудиторных занятий, обусловлена доступностью лабораторной инфраструктуры и определяющей ролью проектной работы в практической части курса, предполагает самостоятельное изучение рекомендуемой литературы по дисциплине и в представленном варианте учебно-методического плана не регламентирована.
 
Итоговая оценка знаний студентов по дисциплине формируется на протяжении учебного семестра в соответствии с правилами балльно-рейтинговой системы.
Подробнее
Чему научитесь
В процессе изучения курса у студентов формируются знания в области многопоточного программирования, шаблонов объектно-ориентированного программирования, стандартах кодирования и определения качества кода, а также формируются навыки и умения написания безопасного кода, использования элементов библиотек STL и BOOST и рефакторинга своего и чужого кода, работы в команде и настройки инфраструктуры непрерывной интеграции для командного проектного взаимодействия
Подробнее

Преподаватели

Алексей Халайджи Алексей Халайджи

Кандидат технических наук (научная специальность 05.13.17 «Теоретические основы информатики»). 09...


Подробнее

Александр Жиров Александр Жиров

С++ разработчик департамента умных продуктов отдела "Браузер" БЮ Технологий ИИ. Занимаю...


Подробнее

Иван Возвахов Иван Возвахов

Ведущий программист в VK

Программа

Занятие Часы в ауд. + сам. работа

Лекция №1: Вводная лекция. Введение в C++. Этапы выполнения программы на языке C++.  

4 ак. ч. + 4 ак. ч. СР

Семинар №1: Инструментарий C++-разработчика  
+ ДЗ №1

6 ак. ч. + 3 ак. ч. СР

Лекция №2: Основы ООП в C++. Объекты, их жизненный цикл и перегрузка операторов  
+ ДЗ №2

4 ак. ч. + 3 ак. ч. СР

Лекция №3: Взаимодействие объектов в C++. Наследование, виртуальные таблицы и динамическая идентификация типов  

4 ак. ч. + 3 ак. ч. СР

Семинар №2: Мастер-класс. Тестирование и объектно-ориентированное проектирование  
+ ДЗ №3

6 ак. ч. + 3 ак. ч. СР

Рубежный контроль №1: Рубежный контроль №1. Обсуждение идей командных проектов на C++  

6 ак. ч. + 4 ак. ч. СР

Лекция №4: Принципы и шаблоны объектно-ориентированного проектирования. Базовые шаблоны, шаблоны GoF.  
+ ДЗ №4

4 ак. ч.

Лекция №5: Обработка исключительных ситуаций. Шаблоны классов и методов. Обобщенное и безопасное программирование  
+ ДЗ №5

4 ак. ч. + 3 ак. ч. СР

Лекция №6: Практическое введение в STL  

4 ак. ч. + 3 ак. ч. СР

Лекция №7: Построение межпроцессного и многопоточного взаимодействия  
+ ДЗ №6

4 ак. ч.

Лекция №8: Проектирование сетевых приложений  

4 ак. ч. + 3 ак. ч. СР

Лекция №9: Взаимодействие с базами данных  

4 ак. ч. + 3 ак. ч. СР

Контрольное занятие №1: Рубежный контроль №2. Обсуждение результатов проектирования командных проектов  

6 ак. ч. + 2 ак. ч. СР

Лекция №10: Введение в коллекцию библиотек Boost и обзор возможностей новых стандартов языка C++  

4 ак. ч. + 3 ак. ч. СР

Лекция №11: Идиоматика C++. С++ как мультипарадигмальный язык. Нововведения C++20.  

3 ак. ч. + 3 ак. ч. СР

Контрольное занятие №2: Рубежный контроль №3. Контроль готовности основных функций MVP командных проектов  

6 ак. ч.

Семинар №3: Предзащита проектов  

6 ак. ч.

Контрольное занятие №3: Публичная защита семестровых проектов  

6 ак. ч.

Контрольное занятие №4: Пересдача  

4 ак. ч.