Весна 2023

Программирование на современном C++ (ML-23)

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

Описание
Учебный курс «Программирование на современном C++» нацелен на подготовку обучающегося к проектированию и разработке программных систем на языке C++ с использованием наиболее востребованного на данный момент стандарта C++17. На курсе разбирается не только синтаксис, но и зарекомендовавшие себя практики, популярные ошибки и варианты их решения.  В качестве домашних заданий предполагаются как задачи для самостоятельного решения так и командые проекты, защищаемые в конце курса. Помимо самого языка C++ курс охватывает базовое знакомство с объектно-ориентированым проектированием, компьютерными сетями, многопоточным и обобщенным программированием.
Подробнее
Чему научитесь
  • Объектно-ориентированное программирование
  • Написание тестов кода с использованием сторонних библиотек
  • Объектно-ориентированное проектирование
  • Разработка сетевых приложений
  • Разработка многопоточных приложений
  • Обобщенное программирование
Подробнее

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

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

Руководитель команды разработки в VK Devices
Аспирант МФТИ
Выступал на ESREL2022, RAMS2...


Подробнее

Александр Бадьин Александр Бадьин

Руководитель команды бэкенд-разработки поисковых технологий VK

Илья Крамичев Илья Крамичев

Старший программист команды предобработки запросов департамента технологий ИИ и прикладных исслед...


Подробнее

Роман Коровин Роман Коровин

None

Программа

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

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

4 ак. ч.

Смешанное занятие №1: Память в С++. Работа с файлами и строками.  
+ ДЗ №1

4 ак. ч.

Смешанное занятие №2: Объектно-ориентированное программирование.  

4 ак. ч.

Смешанное занятие №3: Семантика перемещения. Умные указатели.  
+ ДЗ №2

4 ак. ч.

Смешанное занятие №4: Обработка ошибок. Безопасность исключений.  

4 ак. ч.

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

4 ак. ч.

Смешанное занятие №5: Тестирование программного обеспечения.  
+ ДЗ №3

4 ак. ч.

Смешанное занятие №6: Сторонние библиотеки C++.  
+ ДЗ №4

4 ак. ч.

Смешанное занятие №7: Объектно-ориентированное проектирование. SOLID.  
+ ДЗ №5

4 ак. ч.

Смешанное занятие №8: Введение в разработку сетевых приложений  

4 ак. ч.

Смешанное занятие №9: STL и лямбда-выражения.  

4 ак. ч.

Смешанное занятие №10: Основы обобщенного программирования.  

4 ак. ч.

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

4 ак. ч.

Смешанное занятие №11: Обзор многопоточного программирования.  

4 ак. ч.

Смешанное занятие №12: Portable Operating System Interface.  

4 ак. ч.

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

4 ак. ч.

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

4 ак. ч.

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

4 ак. ч.

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

4 ак. ч.