Об этом курсе
Недавно просмотрено: 16,293

100% онлайн

Начните сейчас и учитесь по собственному графику.

Гибкие сроки

Назначьте сроки сдачи в соответствии со своим графиком.

Промежуточный уровень

Прибл. 42 часа на выполнение

Предполагаемая нагрузка: 9 hours/week...

Русский

Субтитры: Русский

Приобретаемые навыки

SanitizersC++17Protocol Buffers (PROTOBUF)C++ Standard LibraryUndefined Behavior

100% онлайн

Начните сейчас и учитесь по собственному графику.

Гибкие сроки

Назначьте сроки сдачи в соответствии со своим графиком.

Промежуточный уровень

Прибл. 42 часа на выполнение

Предполагаемая нагрузка: 9 hours/week...

Русский

Субтитры: Русский

Программа курса: что вы изучите

Неделя
1
34 ч. на завершение

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

17 видео ((всего 151 мин.)), 15 материалов для самостоятельного изучения, 10 тестов
17 видео
Отладочные макроопределения12мин
Санитайзеры12мин
Введение в неопределённое поведение2мин
Онлайн сервисы11мин
Избавление от накладных расходов14мин
Выполнение оптимизаций11мин
Неожиданные последствия неопределённого поведения8мин
Идиоматический С++ и неопределённое поведение8мин
Идиоматический С++ и неопределённое поведение (продолжение)11мин
Инструменты для обнаружения неопределённого поведения11мин
Решение части E9мин
Решение части F14мин
Транспортный справочник, части G–I2мин
Решение части G8мин
Решение части H1мин
Решение части I7мин
15 материала для самостоятельного изучения
Где задать вопрос: telegram, forum10мин
Подробнее про дебажные дефайны15мин
Вердикты санитайзера30мин
Использование санитайзеров в других окружениях10мин
Решение задачи «Запрещённые домены» под санитайзером10мин
Решение задачи «Личный бюджет» под санитайзером10мин
Решение задачи «Транспортный справочник» под санитайзером15мин
Онлайн сервисы - ссылки1мин
Сложение без переполнения5мин
Символайзер к санитайзеру на Wandbox10мин
Решение части E
Решение части F20мин
Решение части G30мин
Решение части H30мин
Решение части I30мин
1 практическое упражнение
Неопределённое поведение20мин
Неделя
2
16 ч. на завершение

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

9 видео ((всего 85 мин.)), 5 материалов для самостоятельного изучения, 6 тестов
9 видео
Бинарная сериализация11мин
Бинарный и текстовый режим потоков ввода/вывода11мин
Введение в protobuf4мин
Установка protobuf9мин
Синтаксис proto-файлов12мин
Сборка проектов, использующих protobuf13мин
C++ Protobuf API 111мин
C++ Protobuf API 29мин
5 материала для самостоятельного изучения
Решение задачи «JSON Printer»10мин
Решение задачи «Save & Load»10мин
Пример CMakeLists.txt для сборки проекта с protobuf10мин
Решение задачи «Телефонная книга»10мин
Решение задачи «Справочник организаций»10мин
2 практического упражнения
Бинарная сериализация20мин
Синтаксис proto320мин
Неделя
3
33 ч. на завершение

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

17 видео ((всего 86 мин.)), 8 материалов для самостоятельного изучения, 9 тестов
17 видео
Выравнивание сложных объектов6мин
Выравнивание при наследовании4мин
Little Endian, Big Endian7мин
Плотная упаковка14мин
Виртуальные методы3мин
Указатель vpointer3мин
Таблица виртуальных методов3мин
Конструкторы и деструкторы5мин
Pure virtual3мин
Введение в разработку трансляторов4мин
Транспортный справочник, части J–M1мин
Транспортный справочник, часть J1мин
Транспортный справочник, часть K3мин
Транспортный справочник, часть L1мин
Транспортный справочник, часть M3мин
Решения частей J–M12мин
8 материала для самостоятельного изучения
Решение задачи «Нуклеотид: сжатие структуры данных»10мин
Интерпретатор языка Mython25мин
Решение задачи «Лексический анализатор языка Mython»10мин
Решение задачи «Интерпретатор языка Mython»
Решение части J30мин
Решение части K30мин
Решение части L30мин
Решение части M30мин
2 практического упражнения
Тесты на выравнивание памяти
Тесты на виртуальные функции
Неделя
4
17 ч. на завершение

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

14 видео ((всего 114 мин.)), 8 материалов для самостоятельного изучения, 9 тестов
14 видео
Placement new7мин
Наивная реализация конструкторов и функции Reserve9мин
Обработка исключений6мин
Уносим сырую память в класс-обёртку8мин
Функции std::uninitialized_*5мин
Оператор присваивания и move-конструктор12мин
Resize, PushBack и PopBack6мин
Гарантии безопасности исключений9мин
Variadic templates8мин
Наивная реализация EmplaceBack5мин
Forwarding references11мин
Транспортный справочник, часть N2мин
Решение части N13мин
8 материала для самостоятельного изучения
Решение задачи SimpleVector из «Красного пояса»10мин
Решение задачи «Optional»10мин
Решение задачи «EqualsToOneOf»10мин
Решение задачи «Применить функтор к списку аргументов»10мин
Решение задачи «Вектор своими руками — 1»10мин
Решение задачи «Вектор своими руками — 2»10мин
Как работают std::move и std::forward10мин
Решение части N30мин
3 практического упражнения
Требования к стандартному вектору10мин
Реализация конструкторов и функции Reserve20мин
EmplaceBack20мин

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

Avatar

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

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

Alexey Zobnin

Accosiate professor
HSE Faculty of Computer Science

О Московский физико-технический институт

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

О Яндекс

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....

Специализация Искусство разработки на современном C++: общие сведения

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

Часто задаваемые вопросы

  • Зарегистрировавшись на сертификацию, вы получите доступ ко всем видео, тестам и заданиям по программированию (если они предусмотрены). Задания по взаимной оценке сокурсниками можно сдавать и проверять только после начала сессии. Если вы проходите курс без оплаты, некоторые задания могут быть недоступны.

  • Записавшись на курс, вы получите доступ ко всем курсам в специализации, а также возможность получить сертификат о его прохождении. После успешного прохождения курса на странице ваших достижений появится электронный сертификат. Оттуда его можно распечатать или прикрепить к профилю LinkedIn. Просто ознакомиться с содержанием курса можно бесплатно.

Остались вопросы? Посетите Центр поддержки учащихся.