About this Course
20,762 recent views

100% online

Start instantly and learn at your own schedule.

Flexible deadlines

Reset deadlines in accordance to your schedule.

Intermediate Level

Approx. 15 hours to complete

Suggested: 10 hours/week...

Russian

Subtitles: Russian

100% online

Start instantly and learn at your own schedule.

Flexible deadlines

Reset deadlines in accordance to your schedule.

Intermediate Level

Approx. 15 hours to complete

Suggested: 10 hours/week...

Russian

Subtitles: Russian

Syllabus - What you will learn from this course

Week
1
34 hours to complete

Неделя 1. Неопределённое поведение и инструменты поиска проблем

...
17 videos (Total 151 min), 15 readings, 10 quizzes
17 videos
Отладочные макроопределения12m
Санитайзеры12m
Введение в неопределённое поведение2m
Онлайн сервисы11m
Избавление от накладных расходов14m
Выполнение оптимизаций11m
Неожиданные последствия неопределённого поведения8m
Идиоматический С++ и неопределённое поведение8m
Идиоматический С++ и неопределённое поведение (продолжение)11m
Инструменты для обнаружения неопределённого поведения11m
Решение части E9m
Решение части F14m
Транспортный справочник, части G–I2m
Решение части G8m
Решение части H1m
Решение части I7m
15 readings
Где задать вопрос: telegram, forum10m
Подробнее про дебажные дефайны15m
Вердикты санитайзера30m
Использование санитайзеров в других окружениях10m
Решение задачи «Запрещённые домены» под санитайзером10m
Решение задачи «Личный бюджет» под санитайзером10m
Решение задачи «Транспортный справочник» под санитайзером15m
Онлайн сервисы - ссылки1m
Сложение без переполнения5m
Символайзер к санитайзеру на Wandbox10m
Решение части E1h
Решение части F20m
Решение части G30m
Решение части H30m
Решение части I30m
1 practice exercise
Неопределённое поведение20m
Week
2
16 hours to complete

Неделя 2. Сериализация и protobuf

...
9 videos (Total 85 min), 5 readings, 6 quizzes
9 videos
Бинарная сериализация11m
Бинарный и текстовый режим потоков ввода/вывода11m
Введение в protobuf4m
Установка protobuf9m
Синтаксис proto-файлов12m
Сборка проектов, использующих protobuf13m
C++ Protobuf API 111m
C++ Protobuf API 29m
5 readings
Решение задачи «JSON Printer»10m
Решение задачи «Save & Load»10m
Пример CMakeLists.txt для сборки проекта с protobuf10m
Решение задачи «Телефонная книга»10m
Решение задачи «Справочник организаций»10m
2 practice exercises
Бинарная сериализация20m
Синтаксис proto320m
Week
3
31 hours to complete

Неделя 3. Хранение объектов в памяти и таблица виртуальных методов

...
17 videos (Total 86 min), 8 readings, 9 quizzes
17 videos
Выравнивание сложных объектов6m
Выравнивание при наследовании4m
Little Endian, Big Endian7m
Плотная упаковка14m
Виртуальные методы3m
Указатель vpointer3m
Таблица виртуальных методов3m
Конструкторы и деструкторы5m
Pure virtual3m
Введение в разработку трансляторов4m
Транспортный справочник, части J–M1m
Транспортный справочник, часть J1m
Транспортный справочник, часть K3m
Транспортный справочник, часть L1m
Транспортный справочник, часть M3m
Решения частей J–M12m
8 readings
Решение задачи «Нуклеотид: сжатие структуры данных»10m
Интерпретатор языка Mython25m
Решение задачи «Лексический анализатор языка Mython»10m
Решение задачи «Интерпретатор языка Mython»10m
Решение части J30m
Решение части K30m
Решение части L30m
Решение части M30m
2 practice exercises
Тесты на выравнивание памяти
Тесты на виртуальные функции
Week
4
17 hours to complete

Неделя 4. Вектор своими руками

...
14 videos (Total 114 min), 7 readings, 9 quizzes
14 videos
Placement new7m
Наивная реализация конструкторов и функции Reserve9m
Обработка исключений6m
Уносим сырую память в класс-обёртку8m
Функции std::uninitialized_*5m
Оператор присваивания и move-конструктор12m
Resize, PushBack и PopBack6m
Гарантии безопасности исключений9m
Variadic templates8m
Наивная реализация EmplaceBack5m
Forwarding references11m
Транспортный справочник, часть N2m
Решение части N13m
7 readings
Решение задачи SimpleVector из «Красного пояса»10m
Решение задачи «Optional»10m
Решение задачи «EqualsToOneOf»10m
Решение задачи «Применить функтор к списку аргументов»10m
Решение задачи «Вектор своими руками — 1»10m
Решение задачи «Вектор своими руками — 2»10m
Решение части N30m
3 practice exercises
Требования к стандартному вектору10m
Реализация конструкторов и функции Reserve20m
EmplaceBack20m

Instructors

Avatar

Шишков Илья Иванович

кандидат технических наук
Яндекс
Avatar

Alexey Zobnin

Accosiate professor
HSE Faculty of Computer Science

About Moscow Institute of Physics and Technology

Московский физико-технический институт (Физтех) является одним из ведущих вузов страны и входит в основные рейтинги лучших университетов мира. Институт обладает не только богатой историей – основателями и профессорами института были Нобелевские лауреаты Пётр Капица, Лев Ландау и Николай Семенов – но и большой научно-исследовательской базой. Основой образования в МФТИ является уникальная «система Физтеха», сформулированная Петром Капицей: кропотливый отбор одаренных и склонных к творческой работе абитуриентов; участие в обучении ведущих научных работников; индивидуальный подход к отдельным студентам с целью развития их творческих задатков; воспитание с первых шагов в атмосфере технических исследований и конструктивного творчества с использованием потенциала лучших лабораторий страны. Среди выпускников МФТИ — нобелевские лауреаты Андрей Гейм и Константин Новоселов, основатель компании ABBYY Давид Ян, один из авторов архитектурных принципов построения вычислительных комплексов Борис Бабаян и др....

About Yandex

Yandex is a technology company that builds intelligent products and services powered by machine learning. Our goal is to help consumers and businesses better navigate the online and offline world....

About the Искусство разработки на современном C++ Specialization

В специализации преподаватели делятся своим многолетним опытом создания больших проектов на языке C++. Они не пересказывают учебник, а учат решать задачи, с которыми на практике сталкиваются большинство разработчиков. Лекции, подаваемые в лёгкой и доступной форме, подкрепляются большим количество задач по программированию. Закончив эту специализацию, вы сможете не только рассуждать о C++, сравнивая его с другими языками, но и получите реальный навык программирования....
Искусство разработки на современном C++

Frequently Asked Questions

  • Once you enroll for a Certificate, you’ll have access to all videos, quizzes, and programming assignments (if applicable). Peer review assignments can only be submitted and reviewed once your session has begun. If you choose to explore the course without purchasing, you may not be able to access certain assignments.

  • When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.

More questions? Visit the Learner Help Center.