Технология Программирования


Структура курса

  1. Жизненный цикл разработки. Модели разработки ПО (Водопадная модель, V-образная, Итерационная, ХР);
  2. Объектно-ориентированное программирование; Декомпозиция задачи;
  3. С++. Основы. Классы. Конструкторы. Деструкторы. Работа с памятью;
  4. С++. Операторы. Наследование;
  5. Структуры данных. С++ STL: list, vector, map;
  6. С++ STL: set, queue, stack. Итераторы;
  7. С++. Потоки: строковые, файловые; (Добавлено 10.05.2014, не актуально для 2014 г.)
  8. С++. Исключения;
  9. С++. Компилирование. Отладка;
  10. С++. Абстрактные классы. Шаблоны. Пространство имен;
  11. Стандарты кодирования;
  12. Тестирование. Unit-тесты. Модульные тесты;
  13. Системы контроля версий;
  14. С++. Паттерны программирования: Singleton, Factory;
  15. С++. RAII. Умные указатели;
  16. Контрактное программирование.  (Добавлено 16.08.2014, не актуально для 2014 г.)
Методические пособия
Методическое пособие по курсовой работе:
Список вопросов на экзамен (до 2016 г)
  1. Жизненный цикл (ЖЦ) программного обеспечения (ПО). Итерационные модели ЖЦ. Каскадная модель ЖЦ;
  2. V-образная, XP, Scrum модели ЖЦ;
  3. Объектно-ориентированное программирование (ООП). Принципы ООП;
  4. ООП: Отношение между классами. Декомпозиция;
  5. С++: Классы – объявление, конструкторы, деструкторы, работа с памятью;
  6. С++: Наследование;
  7. С++: Перегрузка унарных и бинарных операторов;
  8. Контейнеры С++: vector;
  9. Контейнеры С++: list;
  10. Контейнеры С++: deque;
  11. Контейнеры С++: set;
  12. Контейнеры С++: map;
  13. Контейнеры С++: stack;
  14. Контейнеры С++: queue;
  15.  Отладка программ: классификация ошибок, основные приемы локализации ошибок;
  16. С++: исключения. Основные исключения STL;
  17. С++: Ключевые слова const, static, namespace;
  18. Абстрактные классы. C++: чистые виртуальные функции;
  19. С++: шаблоны функций и классов;
  20. Тестирование: классификации подходов к тестированию (типы тестирования);
  21. Тестирование: автоматизация тестирования;
  22. Паттерны программирования: Одиночка, Наблюдатель;
  23. Паттерны программирования: Декоратор, Фабричный метод;
  24. Паттерн (принцип) программирования: Получение ресурса – есть инициализация (RAII);
  25. Умные указатели: unique_ptr, auto_ptr;
  26. Умные указатели: shared_ptr;
  27. Умные указатели: weak_ptr;
  28. Системы контроля версий.
Список вопросов на экзамен (2016 г)

  1. Жизненный цикл (ЖЦ) программного обеспечения (ПО). Итерационные модели ЖЦ. Каскадная модель ЖЦ;
  2. Стадии ЖЦ; V-образная, XP модель ЖЦ;
  3. Объектно-ориентированное программирование (ООП). Принципы ООП;
  4. ООП: Отношение между классами;
  5. С++: Классы – объявление, конструкторы, деструкторы, работа с памятью;
  6. Динамическое и статическое выделения памяти;
  7. С++: Наследование;
  8. С++: Перегрузка унарных и бинарных операторов;
  9. Асимптотическая сложность; 
  10. Контейнеры С++: vector;
  11. Контейнеры С++: list;
  12. Контейнеры С++: deque;
  13. Контейнеры С++: set;
  14. Контейнеры С++: map;
  15. Контейнеры С++: stack;
  16. Контейнеры С++: queue;
  17. Отладка программ: классификация ошибок, основные приемы локализации ошибок;
  18. С++: исключения. Основные исключения STL;
  19. Абстрактные классы. C++: чистые виртуальные функции;
  20. С++: шаблоны функций и классов;
  21. Тестирование: классификации подходов к тестированию (типы тестирования);
  22. Паттерны программирования: Одиночка, Наблюдатель;
  23. Паттерны программирования: Декоратор, Фабричный метод;
  24. Паттерн (принцип) программирования: Получение ресурса – есть инициализация (RAII);
  25. Умные указатели: unique_ptr, auto_ptr;
  26. Умные указатели: shared_ptr;
  27. Умные указатели: weak_ptr.
Литература
  1. С.А. Орлов, Технология разработки программного обеспечения: Учебник // – СПб.: Питер, 2002;
  2. К. Бек, Экстремальное программирование: разработка через тестирование // Библиотека программиста. – СПб.: Питер, 2003;
  3. Любой учебник по С++:
    Страуструп Б. Язык программирования С++;
    Прата С. Язык программирования С++;
    Эккель Б. Философия С++. Введение в стандартный С++;
    Стефан Р. C++ для чайников.
Полезные ресурсы
  1. Документация с примерами: cpluscplus.com;
  2. Отличный сервис вопросов и ответов для разработчиков: stackoverflow.com;
  3. Список фреймворков для unit тестирования, Google test framework – googletest.