Программирование на C++, часть 1
Санкт-Петербург / осень 2018, посмотреть все семестры

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

План курса

  1. Организация разработки программ на С++
  2. Компоновка программ. Единицы трансляции. Объявления и определения. ODR. Глобальные/локальные переменные.
  3. Работа с памятью. Указатели, массивы и ссылки.
  4. Встроенные типы. Инструкции и операторы. Приведение типов.
  5. Функции. Передача параметров, возврат значений. Перегрузки. Анонимные. Bind & function. Конвенции вызова.
  6. Классы. Функции-члены. 4 главных функции-члены. Swap-trick. Поля класса.
  7. Переопределение операторов. Пространства имен.
  8. Динамический полиморфизм (простое наследование).
  9. Динамический полиморфизм (множественное и виртуальное наследование).
  10. Стратегии обработки ошибок. Исключения.
  11. Введение в обобщенное программирование. Шаблоны функций и классов.
  12. Специализации шаблонов. Связь с динамическим полиморфизмом.
  13. RAII. Умные указатели.

Отчётность по курсу

Финальная оценка формируется из:

  • оценок за домашние задания,
  • баллов за тесты, которые периодически проводятся в начале лекций.

В семестр планируется три домашних задания, но они будут довольно объёмными. При сдаче домашнего задания проверяется не только работоспособность кода, но и его качество.

Полезная литература

  1. Б. Му. Эффективное программирование на С++
  2. С. Мейерс. Эффективный и современный С++: 42 рекомендации по использованию С++11 и С++14
Дата и время Название Место Материалы
10 сентября
18:30–19:50
Лекция 1. Организация разработки программ на С++, лекция Таймс, ауд. с чёрными досками слайды
17 сентября
18:30–19:50
Лекция 2. Сборка C++ программ, лекция Таймс, ауд. с чёрными досками слайды
24 сентября
18:30–19:50
Лекция 3. Работа с памятью, выполнение программ, лекция Таймс, ауд. с чёрными досками слайды
01 октября
18:30–19:50
Лекция 4. Встроенные типы, инструкции и операторы, лекция Таймс, ауд. с чёрными досками слайды
08 октября
18:30–19:50
Лекция 5. Функции, лекция Таймс, ауд. с чёрными досками слайды
15 октября
18:30–19:50
Лекция 6. Классы., лекция Таймс, ауд. с чёрными досками слайды
29 октября
18:30–19:50
Лекция 7. Namespace. Переопределение операторов, лекция Таймс, ауд. с чёрными досками слайды
12 ноября
18:30–19:50
Лекция 8. Динамический полиморфизм., лекция Таймс, ауд. с чёрными досками слайды
19 ноября
18:30–19:50
Лекция 9. Динамический полиморфизм. Часть 2., лекция Таймс, ауд. с чёрными досками слайды
26 ноября
18:30–19:50
Лекция 10. Введение в шаблоны. Часть 1., лекция Таймс, ауд. с чёрными досками слайды
03 декабря
18:30–19:50
Лекция 11. Введение в шаблоны. Часть 2., лекция Таймс, ауд. с чёрными досками слайды
10 декабря
18:30–19:50
Лекция 12. Умные указатели, лекция Таймс, ауд. с чёрными досками слайды
17 декабря
18:30–19:50
Финальная лекция., лекция Таймс, ауд. с чёрными досками Нет