C++ как первый язык программирования
Организатор: Высшая школа экономики НИУ Институт профессиональной переподготовки специалистов
Москва
Даты проведения:
С открытой датой
Подать заявку
Цена: 80 000 руб.
Описание мероприятия
Формат обучения: очно-заочныйЯзык обучения: русский
Адрес проведения: Кочновский проезд, дом 3
Выдаваемые документы
Удостоверение о повышении квалификации
Описание программы
В рамках данной программы мы изучим один из самых популярных языков программирования С++. C++ — чрезвычайно мощный язык, позволяющий создавать эффективные программы практически любого назначения, от низкоуровневых утилит и драйверов до операционных систем, поисковиков и игр.
Учебный план:
- Программа “Hello, world!”. История C++. Использование языка. Мультипарадигменность. Стандарты языка (С++98/03, С++11, С++14). Популярные компиляторы (gcc, clang, msvc, ...). Литература и полезные материалы по C++
- C++ — язык со статической типизацией. Типы данных и переменные. Области видимости переменных. Встроенные типы данных. Перечисления. Понятие о пользовательских типах. Выражения. Обзор операторов языка C++. Оператор присваивания. Lvalue и rvalue. Таблица приоритета операторов
- Инструкции (if, while, do, for, switch, goto). Функции. Перегрузка функций. Шаблоны функций. Статические переменные в функциях. Псевдонимы типов (typedef и using)
- Работа с консольным и файловым вводом-выводом с помощью потоков
- Массивы фиксированного размера. Динамические массивы. Шаблоны std::vector и std::string. Списки инициализации. Функции-члены стандартных последовательных контейнеров (push_back, size, capacity, empty, clear, ...). Цикл for по коллекции
- Указатели. Арифметика указателей. Оператор взятия адреса. Итераторы. Динамическая память и стек
- Ссылки. Константность. CV-квалификаторы. Способы передачи аргументов в функцию
- Средства отладки и профилирования программ. Отладчик gdb. Утилита valgrind. Программа AddressSanitizer
- Последовательные контейнеры стандартной библиотеки C++ (на примере std::list, std::deque), адаптеры контейнеров (на примере std::stack и std::queue). Стандартные функции последовательных контейнеров. Категории итераторов
- Ассоциативные контейнеры стандартной библиотеки C++ (std::map и std::set, std::unordered_map и std::unordered_set). Стандартные функции ассоциативных контейнеров
- Обзор алгоритмов стандартной библиотеки. Объекты-функции и лямбда-функции. Обертка std::function
- Структуры и классы. Уровни доступа к именам в классе. Конструкторы. Деструктор. Оператор присваивания. Функции-члены, генерируемые компилятором по умолчанию
- Перегрузка операторов в классе. Пример: класс «Комплексное число»
- Шаблоны классов. Шаблонные функции внутри класса. Шаблонные параметры шаблонов. Инстанцирование шаблонов
- Одиночное наследование. Полиморфизм. Виртуальные функции. Работа с объекта- ми производных классов через указатели (ссылки) на базовый класс. Операторы преобразования типов
- Единицы трансляции. Заголовочные файлы. Компоновка программы. Правило одного определения. Пространства имен
- Идиома RAII. Генерация и обработка исключений. Гарантии безопасности исключений
- Умные указатели как иллюстрация идиомы RAII. Шаблоны std::unique_ptr, std::shared_ptr и std::weak_ptr. Идиома pImpl
- Move-семантика и rvalue-ссылки
- Управление памятью. Размещающий оператор new. Идеи реализации шаблона std::vector
- Обзор паттернов проектирования
Преподаватели
Кирилл Лунев
разработчик компании Яндекс (С++ и Python) с 2014 года. Выпускник Школы анализа данных Яндекса, аспирант Московского государственного университета.
разработчик компании Яндекс (С++ и Python) с 2014 года. Выпускник Школы анализа данных Яндекса, аспирант Московского государственного университета.
Роман Халкечев
разработчик C++ в Яндексе в направлении функциональности поиска, выпускник Школы анализа данных Яндекса и аспирант факультета компьютерных наук НИУ ВШЭ, преподает в ШАДе курс Машинного обучения, а на факультете компьютерных наук курс алгоритмов.
разработчик C++ в Яндексе в направлении функциональности поиска, выпускник Школы анализа данных Яндекса и аспирант факультета компьютерных наук НИУ ВШЭ, преподает в ШАДе курс Машинного обучения, а на факультете компьютерных наук курс алгоритмов.
Требования к поступающим:
Документы для приема
- Оригинал и копия паспорта или документа, заменяющего его
- Оригинал диплома и приложения к нему и копия документа об образовании или справка об обучении для лиц, получающих высшее образование
- Оригинал и копия документа об изменении фамилии, имени, отчества (при необходимости)
- скан паспорта (первой страницы и страницы с регистрацией)
- скан диплома о высшем образовании или справка-подтверждение из вуза