- Що таке програмування. Мова програмування. Класифікація мови програмування.
- Життєвий цикл програмної інженерії.
- Термінал. Командна оболнка.
- Операційні системи Linux. Чим вони схожі та від'ємні?
- Командна строка Linux. Менеджер пакетів. Основні команди.
- Система контролю версіями git.
- Відлагодники. Призначення. Можливості.
- Компіляція. Режими помпіляції "Debug", "Release" при використання clang компілятора
- Makefile. Призначення. Можливості.
- Мова С. Типи даних.
- Мова С. Змінні. Константи. Коментарі
- Мова С. Оператори. Логічні оператори.
- Мова С. Оператори. Оператори порівняння, інкременту, декременту.
- Мова С. Оператори. Бітові оператори.
- Мова С. Умовні оператори. Тернарний оператор. Оператор switch-case.
- Мова С. Цикли.
- Мова С. Масиви (нединамічні).
- Мова С. Двовимірні Масиви (нединамічні). Розташування в пам'яті. Конвертація в одновимірний масив.
- Мова С. Функції. Класифікація. Складові функції.
- Мова С. Функції. Складові функції. Прототипи функції.
- Мова С. Функції. Передача аргументів за вказівником та за значенням.
- Мова С. Функції. Бібліотечні системні функції.
- Мова С. Функції. Варіативні функції.
- Мова С. Функції. Рекурсивна обробка.
- Мова С. Функції. Функція main(). Призначення коду повернення з функції. Параметри командної строки.
- Doxygen. Призначення. Можливості.
- Markdown. Призначення. Можливості.
- Структури. Композитні структури. Ініціалізація.
- Структури. Визначення. Призначення. Приклади. Оголошення та ініціалізація. Доступ до полів.
- Структури. Масиви структур. Оперування з масивом структур. Передавання структур в функції.
- Перерахування (enum). Визначення. Призначення. Приклади застосування.
- Описати пам'ять програми після запуску. Описати сегменти пам'яті програми.
- Виділення і звільнення пам'яті функціями malloc, calloc, realloc, free.
- Багатофайлова структура проекту. Директива препроцесора
#include
. Можливі засоби макрозахисту («захист підключення»). - Виділення і звільнення пам'яті операторами new і delete.
- Основні оператори / операції при роботі з вказівниками (&, *). Адресна арифметика.
- Передавання параметрів у функцію за значенням, за вказівником, за посиланням.
- Описати функції по роботі зі стандартним потоком введення / виведення (printf / scanf).
- Робота з файлами стандартного потоку введення / виведення.
- Робота з файлами. Неформатоване читання / запис у файл засобами стандартного потоку введення / виведення.
- Робота з файлами. Форматоване читання / запис у файл засобами стандартного потоку введення / виведення.
- Основні функції роботи з не-строковими типами даних у пам'яті (наприклад, memcpy).
- Потокове введення/виведення. Робота з консоллю. Що використовується для виводу даних на консоль, що – для читання з клавіатури? Навести приклади.
- Описати механізм видалення елемента із середини масиву даних. Навести приклад реалізації.
- Модульне тестування. Призначення.
- Функції. Використання значення параметрів функції за замовчуванням. Використання оператору «багатокрапка» (...).
- Рядки в С типу char *. Основні функції роботи з рядками.
- Динамічні масиви в С та лінійні зв'язані структури даних. Описати переваги і недоліки кожної моделі даних.
- Описати механізм вставки елемента в середину масиву даних. Навести приклад реалізації.
- Шаблони в мові С++. Шаблонні функції.
- Класи в мові С++. Визначення. Призначення. Поля та методи класу.
- Шаблони в мові С++. Шаблонні класи.
- Парадигми ООП. Інкапсуляція. Гетери та сетери. Призначення.
- Standard Template Library. Призначення. Основні складові.
- Призначення конструкторів та деструкторів.
- Standard Template Library. Послідовні контейнери, контейнери-адаптери.
- Standard Template Library. Асоціативні контейнери.
- Області видимості в С++.
- Standard Template Library. Ітератори.
- Standard Template Library. Алгоритми та функтори.
- Призначення віртуальних методів.
- Standard Template Library. Адаптери
- Потоковий ввід/вивід. Поняття "потік". Класи, що використовуються для потокового вводу/виводу.
- Приведення типів за допомогою static_cast, dynamic_cast, reinterpret_cast, та const_cast
- Потоковий ввід/вивід. Робота з консоллю.
- Порівняльна характеристика спадкування, агрегації та композиції.
- Потоковий ввід/вивід. Робота з класом stringstream.
- Дружні функції. Навести приклади з врахуванням розбиття на .h та .cpp файли.
- Клас string. Призначення. Основні методи за засоби роботи.
- Обробка виключних ситуацій в мові С++.
- Потоковий вивід. Маніпулятори виводу.
- Порівняльна характеристика використання try/catch та assert для генерування виключних ситуацій.
- Потоковий ввід. Читання одного слова, числа, строки.
- Потоковий ввід/вивід. Можливість використання символів кирилиці при виводі даних на консоль та при вводі з клавіатури.
- Файловий потоковий ввід/вивід.
- Файловий потоковий ввід/вивід. Читання всього файлу при умові, шо його розмір не визначено заздалегідь.
- Перевантаження операторів. Призначення. Навести приклади перевантаження оператору.
- Файловий потоковий ввід/вивід. Бінарне читання / запис.
- Перевантажувальні та неперевантажувальні оператори. Навести приклади.
- Перевантаження операторів. Від чого залежить кількість аргументів у оператора, що перевантажується. Навести приклади.
- Перевантаження оператору індексування.
- Перевантаження операторів (пост-/пре-) інкременту та (пост-/пре-) декременту.
- Простір імен. Використання простору імен. Використання окремих об'єктів з простору імен. Псевдоніми простору імен.
- Перевантаження операторів потокового вводу/виводу.*