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

100% онлайн

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

Гибкие сроки

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

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

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

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

Русский

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

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

Software TestingUnit TestingAlgorithmsC++

100% онлайн

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

Гибкие сроки

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

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

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

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

Русский

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

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

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

Целочисленные типы, кортежи, шаблонные функции

Материалы этой недели знакомят вас с возможностями языка C++, не рассмотренными в курсе «Белый пояс по C++». Сначала рассмотрены различные целочисленные типы языка C++, рассказано, чем они отличаются, а также даны практические рекомендации по их применению. Затем рассматриваются пары и кортежи как способ упростить возврат нескольких значений из функций и создание операторов сравнения для своих классов. Наконец, мы расскажем о шаблонах функций. «Когда будут шаблоны?» был одним из самых частых вопросов, которые нам задавали слушатели «Белого пояса». Тема эта обширная и сложная, поэтому мы начинаем с малого — рассказываем о шаблонах функций: что это такое, для чего они нужны и как их создавать....
11 видео ((всего 101 мин.)), 13 материалов для самостоятельного изучения, 9 тестов
11 видео
Введение в целочисленные типы12мин
Преобразования целочисленных типов12мин
Безопасное использование целочисленных типов11мин
Упрощаем оператор сравнения9мин
Кортежи и пары10мин
Возврат нескольких значений из функции10мин
Введение в шаблоны8мин
Универсальные функции вывода контейнеров в поток9мин
Рефакторим код и улучшаем читаемость вывода7мин
Указание шаблонного параметра-типа5мин
13 материала для самостоятельного изучения
Как всё устроено и зачем10мин
План специализации "Искусство разработки на современном C++"10мин
Где задать вопрос: telegram, forum, slack10мин
Решение задачи «Суммирование матриц»10мин
Перечислимые типы и оператор switch15мин
Решение задачи «Средняя температура — 2»5мин
Решение задачи «Масса блоков»5мин
Решение задачи «База регионов»7мин
Решение задачи «Трекер задач»15мин
Код из лекции «Рефакторим код и улучшаем читаемость вывода»10мин
Решение задачи «Всё в квадрат»10мин
Решение задачи "Ссылка на элемент"10мин
Конспект по неделе 110мин
2 практического упражнения
Целочисленные типы15мин
Шаблоны функций12мин
Неделя
2
10 ч. на завершение

Тестирование и отладка

Эта неделя посвящена использованию юнит-тестов для тестирования и отладки программ. На примере мы продемонстрируем, как юнит-тесты помогают в поиске и устранении ошибок, а также что нужно делать, чтобы покрыть свой код юнит-тестами. Затем с помощью накопленных на данный момент знаний мы разработаем свой собственный фреймворк для создания юнит-тестов, которым вы сможете пользоваться в своих программах....
12 видео ((всего 116 мин.)), 8 материалов для самостоятельного изучения, 8 тестов
12 видео
Декомпозиция решения задачи «Синонимы»9мин
Простейший способ создания юнит-тестов на C++6мин
Отладка решения задачи «Синонимы» с помощью юнит-тестов16мин
Анализ недостатков фреймворка юнит-тестов9мин
Улучшаем assert13мин
Внедряем шаблон AssertEqual во все юнит-тесты11мин
Изолируем запуск отдельных тестов9мин
Избавляемся от смешения вывода тестов и основной программы7мин
Обеспечиваем регулярный запуск юнит-тестов11мин
Собственный фреймворк юнит-тестов. Итоги4мин
Общие рекомендации по декомпозиции программы и написанию юнит-тестов11мин
8 материала для самостоятельного изучения
Решение задачи «Декомпозиция программы»10мин
Код фреймворка юнит-тестов10мин
Инструкция по решению следующих заданий по программированию10мин
Решение задачи «Тесты для функции GetDistinctRootCount»10мин
Решение для задачи «Тесты для класса Person»10мин
Решение задачи «Тесты для класса Rational»10мин
Решение задачи «Тесты для функции IsPalindrom»10мин
Конспект по неделе 210мин
3 практического упражнения
Юнит-тестирование6мин
Разработка фреймворка юнит-тестов8мин
Тестирование и отладка. Итоги10мин
Неделя
3
4 ч. на завершение

Распределение кода по файлам

Весь код, который мы прежде писали в нашем курсе, всегда находился в одном файле. Естественно, реальные большие проекты не пишутся в одном файле. В материалах этой недели мы рассмотрим, как распределять код программ на C++ на несколько файлов. Мы расскажем, что такое заголовочные файлы и файлы с реализациями, как работает директива #include и как выполняется сборка многофайлового проекта. Кроме того, мы поговорим о проблемах, которые возникают в больших проектах и расскажем, как их решать....
8 видео ((всего 85 мин.)), 6 материалов для самостоятельного изучения, 6 тестов
8 видео
Механизм работы директивы #include13мин
Обеспечение независимости заголовочных файлов7мин
Проблема двойного включения13мин
Понятия объявления и определения15мин
Механизм сборки проектов, состоящих из нескольких файлов16мин
Правило одного определения6мин
Итоги3мин
6 материала для самостоятельного изучения
Поддержка нашего юнит-тест фреймворка тестирующей системой10мин
Решение задачи «Реализовать функции, объявленные в заголовочном файле»10мин
Решение задачи «Реализовать класс, объявленный в заголовочном файле»10мин
Решение задачи «Написать объявление класса»10мин
Решение задачи «Декомпозиция программы — 2»10мин
Конспект по неделе 310мин
2 практического упражнения
Заголовочные файлы6мин
Разделение кода по файлам. Итоги12мин
Неделя
4
13 ч. на завершение

Итераторы, алгоритмы и контейнеры

В курсе "Белый пояс по C++" мы познакомились с некоторыми стандартными алгоритмами: count, count_if и sort. Конечно же, библиотека C++ гораздо богаче и содержит значительно больше стандартных алгоритмов, которые позволяют сделать ваш код короче, понятнее и надёжнее. Чтобы их освоить, сначала нужно узнать, что такое итераторы. С этого мы и начнём четвёртую неделю. Затем рассмотрим стандартные алгоритмы, в которых используются итераторы. Наконец, мы познакомим вас с новыми стандартными контейнерами: деком и очередью....
14 видео ((всего 103 мин.)), 13 материалов для самостоятельного изучения, 13 тестов
14 видео
Концепция полуинтервалов итераторов11мин
Итераторы множеств и словарей5мин
Продвинутое итерирование по контейнерам5мин
Использование итераторов в методах контейнеров4мин
Использование итераторов в алгоритмах9мин
Обратные итераторы7мин
Алгоритмы, возвращающие набор элементов8мин
Итераторы inserter и back_inserter5мин
Отличия итераторов векторов и множеств5мин
Категории итераторов, документация4мин
Стек, очередь и дек7мин
Алгоритмы поиска9мин
Анализ распространённых ошибок7мин
13 материала для самостоятельного изучения
Решение задачи «Часть вектора»10мин
Решение задачи «Часть множества»5мин
Решение задачи «Разбиение на слова»10мин
Решение задачи «Удаление повторов»10мин
Решение задачи «Перебор перестановок»10мин
Решение задачи «Демографические показатели»10мин
Решение задачи «Сортировка слиянием»10мин
Сводная таблица по алгоритмам поиска10мин
Решение задачи «Поиск ближайшего элемента»5мин
Решение задачи «Имена и фамилии — 4»5мин
Решение задачи «Группировка строк по префиксу»10мин
Решение задачи «Построение арифметического выражения»10мин
Конспект по неделе 410мин
2 практического упражнения
Использование итераторов в алгоритмах и контейнерах
Алгоритмы поиска20мин
Неделя
5
7 ч. на завершение

Наследование и полиморфизм

Объектно-ориентированное программирование стоит на трёх китах: инкапсуляция, наследование и полиморфизм. О том, какими средствами достигается инкапсуляция в C++, мы узнали в "Белом поясе по C++". Эта неделя расскажет вам о двух оставшихся "китах": наследовании и полиморфизме. Мы не только покажем, как именно в C++ унаследовать один класс от другого и создать набор полиморфных объектов, но и применим полученные знания на практике - создадим программу-калькулятор, которая поддерживает работу с переменными....
11 видео ((всего 111 мин.)), 6 материалов для самостоятельного изучения, 5 тестов
11 видео
Доступ к полям классов. Знакомство со списками инициализации10мин
Порядок конструирования экземпляров классов12мин
Унификация работы с классо-специфичным кодом. Постановка проблемы9мин
Решение проблемы с помощью виртуальных методов8мин
Свойства виртуальных методов. Абстрактные классы5мин
Виртуальные методы и передача объектов по ссылке2мин
Хранение объектов разных типов в контейнере с помощью shared_ptr11мин
Задача разбора арифметического выражения. Описание решения18мин
Решение задачи для частного примера4мин
Описание и обзор общего решения задачи6мин
6 материала для самостоятельного изучения
Решение задачи «Наследование своими руками»10мин
Код парсера к лекции10мин
Решение задачи «Отправка уведомлений»10мин
Решение задачи «Набор фигур»10мин
Как правильно проверять код2мин
Конспект по неделе 510мин
1 практическое упражнение
Наследование8мин
Неделя
6
9 ч. на завершение

Курсовой проект

Настало время закрепить все полученные на курсе знания, применив их в финальном проекте. Задача этой недели является развитием финального проекта курса "Белый пояс по C++". Вам точно так же надо будет разработать базу данных, которая хранит набор событий и поддерживает различные операции с ним....
1 видео ((всего 1 мин.)), 3 материалов для самостоятельного изучения, 1 тест
3 материала для самостоятельного изучения
Решение курсового проекта30мин
Продолжение курса10мин
Станьте ментором курса!2мин
4.9
Рецензии: 36Chevron Right

33%

начал новую карьеру, пройдя эти курсы

33%

получил значимые преимущества в карьере благодаря этому курсу

Лучшие рецензии

автор: VKMar 5th 2018

Интересно и познавательно. Отличное продолжение "Белого пояса". Но задания, которые оцениваются сокурсниками, стоит размещать в начале курса.

автор: SSJul 2nd 2018

Отличный курс! Очень нравится подход с большим количеством практических заданий по каждой теме. Спасибо авторам за проделанную работу!

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

Московский физико-технический институт (неофициально известный как МФТИ или Физтех) является одним из самых престижных в мире учебных и научно-исследовательских институтов. Он готовит высококвалифицированных специалистов в области теоретической и прикладной физики, прикладной математики, информатики, биотехнологии и смежных дисциплин. Физтех был основан в 1951 году Нобелевской премии лауреатами Петром Капицей, Николаем Семеновым, Львом Ландау и Сергеем Христиановичем. Основой образования в МФТИ является уникальная «система Физтеха»: кропотливое воспитание и отбор самых талантливых абитуриентов, фундаментальное образование высшего класса и раннее вовлечение студентов в реальную научно-исследовательскую работу. Среди выпускников МФТИ есть Нобелевские лауреаты, основатели всемирно известных компаний, известные космонавты, изобретатели, инженеры....

О Яндекс

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. Просто ознакомиться с содержанием курса можно бесплатно.

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