• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Программа "С++ как второй язык программирования"

Цель программы

В рамках данной программы мы изучим один из самых популярных языков программирования С++. C++ — чрезвычайно мощный язык, позволяющий создавать эффективные программы практически любого назначения, от низкоуровневых утилит и драйверов до операционных систем, поисковиков и игр.

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

                                                                          
Роман Халкечев
разработчик 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
  • Обзор паттернов проектирования

Начальные требования

Законченное высшее или среднее специальное образование, знание основ программирования.
Для тех, кто еще не знаком с основами программирования, но хочет изучить язык С++  мы разработали программу "С++ как первый язык программирования".


60 академических часов

Занятия будут проходить по субботам. 
Запуск программы во второй половине марта.


60 000

рублей 

По итогам программы выдается Удостоверение о повышении квалификации установленного НИУ ВШЭ образца
Подать заявку

 

Нашли опечатку?
Выделите её, нажмите Ctrl+Enter и отправьте нам уведомление. Спасибо за участие!