Структура курса
- Жизненный цикл разработки. Модели разработки ПО (Водопадная модель, V-образная, Итерационная, ХР);
- Объектно-ориентированное программирование; Декомпозиция задачи;
- С++. Основы. Классы. Конструкторы. Деструкторы. Работа с памятью;
- С++. Операторы. Наследование;
- Структуры данных. С++ STL: list, vector, map;
- С++ STL: set, queue, stack. Итераторы;
- С++. Потоки: строковые, файловые; (Добавлено 10.05.2014, не актуально для 2014 г.)
- С++. Исключения;
- С++. Компилирование. Отладка;
- С++. Абстрактные классы. Шаблоны. Пространство имен;
- Стандарты кодирования;
- Тестирование. Unit-тесты. Модульные тесты;
- Системы контроля версий;
- С++. Паттерны программирования: Singleton, Factory;
- С++. RAII. Умные указатели;
- Контрактное программирование. (Добавлено 16.08.2014, не актуально для 2014 г.)
Методические пособия
Методическое пособие по курсовой работе:
Список вопросов на экзамен (до 2016 г)
- Жизненный цикл (ЖЦ) программного обеспечения (ПО). Итерационные модели ЖЦ. Каскадная модель ЖЦ;
- V-образная, XP, Scrum модели ЖЦ;
- Объектно-ориентированное программирование (ООП). Принципы ООП;
- ООП: Отношение между классами. Декомпозиция;
- С++: Классы – объявление, конструкторы, деструкторы, работа с памятью;
- С++: Наследование;
- С++: Перегрузка унарных и бинарных операторов;
- Контейнеры С++: vector;
- Контейнеры С++: list;
- Контейнеры С++: deque;
- Контейнеры С++: set;
- Контейнеры С++: map;
- Контейнеры С++: stack;
- Контейнеры С++: queue;
- Отладка программ: классификация ошибок, основные приемы локализации ошибок;
- С++: исключения. Основные исключения STL;
- С++: Ключевые слова const, static, namespace;
- Абстрактные классы. C++: чистые виртуальные функции;
- С++: шаблоны функций и классов;
- Тестирование: классификации подходов к тестированию (типы тестирования);
- Тестирование: автоматизация тестирования;
- Паттерны программирования: Одиночка, Наблюдатель;
- Паттерны программирования: Декоратор, Фабричный метод;
- Паттерн (принцип) программирования: Получение ресурса – есть инициализация (RAII);
- Умные указатели: unique_ptr, auto_ptr;
- Умные указатели: shared_ptr;
- Умные указатели: weak_ptr;
- Системы контроля версий.
Список вопросов на экзамен (2016 г)
- Жизненный цикл (ЖЦ) программного обеспечения (ПО). Итерационные модели ЖЦ. Каскадная модель ЖЦ;
- Стадии ЖЦ; V-образная, XP модель ЖЦ;
- Объектно-ориентированное программирование (ООП). Принципы ООП;
- ООП: Отношение между классами;
- С++: Классы – объявление, конструкторы, деструкторы, работа с памятью;
- Динамическое и статическое выделения памяти;
- С++: Наследование;
- С++: Перегрузка унарных и бинарных операторов;
- Асимптотическая сложность;
- Контейнеры С++: vector;
- Контейнеры С++: list;
- Контейнеры С++: deque;
- Контейнеры С++: set;
- Контейнеры С++: map;
- Контейнеры С++: stack;
- Контейнеры С++: queue;
- Отладка программ: классификация ошибок, основные приемы локализации ошибок;
- С++: исключения. Основные исключения STL;
- Абстрактные классы. C++: чистые виртуальные функции;
- С++: шаблоны функций и классов;
- Тестирование: классификации подходов к тестированию (типы тестирования);
- Паттерны программирования: Одиночка, Наблюдатель;
- Паттерны программирования: Декоратор, Фабричный метод;
- Паттерн (принцип) программирования: Получение ресурса – есть инициализация (RAII);
- Умные указатели: unique_ptr, auto_ptr;
- Умные указатели: shared_ptr;
- Умные указатели: weak_ptr.
Литература
- С.А. Орлов, Технология разработки программного обеспечения: Учебник // – СПб.: Питер, 2002;
- К. Бек, Экстремальное программирование: разработка через тестирование // Библиотека программиста. – СПб.: Питер, 2003;
- Любой учебник по С++:
Страуструп Б. Язык программирования С++;
Прата С. Язык программирования С++;
Эккель Б. Философия С++. Введение в стандартный С++;
Стефан Р. C++ для чайников.
Полезные ресурсы
- Документация с примерами: cpluscplus.com;
- Отличный сервис вопросов и ответов для разработчиков: stackoverflow.com;
- Список фреймворков для unit тестирования, Google test framework – googletest.