Объектно-ориентированное программирование,
Технологии программирования
(ИС-16, ВМ-06, ВМ-05, ИУ-111, ИУ-223, ИВ-222)

n.b. Лабораторные работы выполняются в операционной системе Linux на языке программирования C++. Оформление исходных текстов программ должно соответствовать принятым в рамках курса соглашениям или альтернативным: Google C++ Style Guide, Code Conventions for the Java, Linux kernel coding style.

Лабораторные работы

Лабораторная работа №1. Ввод-вывод в С++

Лабораторная работа №2. Классы. Конструкторы, деструкторы

Лабораторная работа №3. Шаблоны классов. Перегрузка операторов. Обработка исключительных ситуаций

Лабораторная работа №4. Введение в перегрузку шаблонов и функций

Лабораторная работа №5. Контейнеры I. Объекты-функции

Лабораторная работа №6. Контейнеры II

Лабораторная работа №7. Подсчёт копий объекта. Интеллектуальные указатели. Итераторы

Лабораторная работа №8. Наследование. Виртуальные функции.

Лабораторная работа №9. Шаблоны проектирования

Успеваемость

Группа ИС-16

Группа ИУ-111

Группа ИУ-223

Группа ВМ-05

Группа ВМ-06


Литература

Для начинающих

  1. http://www.cplusplus.com (http://www.cplusplus.com/doc/tutorial/)
  2. Стэнли Липпман. С++ для начинающих.
  3. Стивен Прата. Язык программирования C++.
  4. Герберт Шилдт. C++: базовый курс (Самоучитель C++, Полный справочник C++).
  5. Бьерн Страуструп. Язык программирования С++.
  6. Бьерн Страуструп. Программирование. Принципы и практика использования C++.
  7. Бьерн Страуструп. Дизайн и эволюция языка C++.

Для продолжающих

  1. Николай Джосьютис. С++ Стандартная библиотека. Для профессионалов.
  2. Скотт Мейерс. Эффективное использование С++.
  3. Скотт Мейерс. Наиболее эффективное использование C++.
  4. Скотт Мейерс. Эффективное использование STL.
  5. Николас Солтер. С++ для профессионалов.
  6. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования.
  7. Роберт Лафоре. Объектно-ориентированное программирование в С++.

О разработке ПО

  1. Стив Макконнелл. Совершенный код.
  2. Мартин Фаулер. Рефакторинг. Улучшение существующего кода.
  3. Фредерик Брукс. Мифический человеко-месяц, или Как создаются программные системы.