Курс С++ для військових технологій
- Online
- Для начинающих, Для опытных
- C / C++
![]() |
|
| Образовательный центр: | Robot Dreams |
|---|---|
| Формат: | Курс |
| Язык обучения: | Ukrainian |
| Длительность обучения: | 40 занятий |
| Начало курса: | 07.09.2026 |
| Стоимость обучения: | Уточняйте |
Навчитеся писати програми з реальними розрахунками: координати, вектори, балістика, покрокова симуляція руху. Опануєте структурування коду через функції, структури й стани роботи системи. Опануєте практику побудови каналів обміну даними на вбудованих системах: обмінюватися даними через мережу та апаратні інтерфейси, працювати з Raspberry Pi та ESP32.
Програма курсу
Специфіка програмування для Military Tech
- Зрозумієте можливі шляхи розвитку як C++-розробника у Military Tech
- Розберетеся з особливостями C++ та навчитеся пояснювати їх
- Зрозумієте, на чому варто концентруватися під час написання коду на C++ у Military Tech
- Напишете базову програму на C++ та поясните процес переходу від human language до машинного коду
Типи даних, оператори, умови
- Зрозумієте представлення різних типів даних у бітовій формі
- Розберетеся з перевагами типів даних із
- Ознайомитеся з основними операторами у C++
- Ознайомитеся з патерном bitmap
Цикли, функції
- Зрозумієте різницю між різними операціями циклу
- Навчитеся писати базові алгоритми з використанням циклів
- Навчитеся оголошувати функції для перевикористання коду
- Ознайомитеся з патерном main event loop
- Зрозумієте, коли доцільно використати функцію, а коли - цикл
Масиви, рядки, вказівники та посилання
- Зрозумієте, що таке масив, як із ним працювати і як його розміщено в пам’яті програми
- Навчитеся писати програми з використанням масивів і рядків
- Ознайомитеся з основними помилками, пов’язаними з виходом за межі масиву
- Зрозумієте, що таке вказівник та як працювати з пам’яттю напряму
- Ознайомитеся з основними помилками під час використання вказівників
- Зрозумієте різницю між вказівником і масивом
Структури даних, макроси
- Навчитеся створювати й використовувати структури, enum та union у своїх програмах
- Зрозумієте механізм вирівнювання пам’яті та його роль в embedded-системах
Файлове введення та виведення, багатопоточність
- Навчитеся працювати з даними, що зберігаються у файлах
- Зрозумієте основні принципи багатопоточності
- Розберетеся, коли потрібно створювати додаткові процеси та які ризики це створює
Робота з динамічною пам’яттю, керування ресурсами
- Дізнаєтеся, що таке динамічна пам’ять і чим вона відрізняється від статичної
- Зрозумієте, коли краще використовувати динамічну пам’ять
- Розберетеся з проблемами, які можуть виникнути через використання динамічної пам’яті
Linux для розробника: файлова система, термінал, базові команди Bash
- Зрозумієте організацію файлової системи Linux
- Навчитеся навігувати файловою системою через термінал
- Навчитеся підключатися до віддаленого девайса через ssh
Bash-скрипти, права доступу, процеси та змінні середовища
- Отримаєте базові навички роботи з bash
- Навчитеся читати й писати прості скрипти у bash
Середовища розробки. Використання контейнерів для розробки
- Навчитеся вибирати й налаштовувати середовище розробки
- Навчитеся переносити невеликі проєкти в контейнери
Системи контролю версій. Git, GitHub
- Зрозумієте, для чого використовують системи контролю версій
- Опануєте git та навчитеся налаштовувати репозиторій, створювати гілки й коміти
- Дізнаєтеся best practices роботи з git та зрозумієте, що краще не комітити в репозиторій
Доктрини ООП, основи ООП в С++
- Зрозумієте основні принципи ООП та навчитеся пояснювати їх
- Навчитеся створювати класи у C++
- Зрозумієте, як правильно інкапсулювати використання ресурсів у клас C++
Спадкування та поліморфізм у С++
- Зрозумієте, як працюють віртуальні методи у C++
- Навчитеся виділяти абстрактний інтерфейс для класів
- Навчитеся перевантажувати оператори
Шаблони (templates), узагальнене програмування
Навчитеся використовувати шаблони у C++.
Інструменти бібліотеки STL
- Дізнаєтеся, які інструменти бібліотеки STL вам доступні
- Зрозумієте, як оцінити ефективність алгоритму за допомогою O-нотації
- Навчитеся працювати з ітераторами, std::vector та розумними вказівниками
Як збирається С++ код (етапи компіляції, білд системи)
- Зрозумієте, як збирається C++ код, які проблеми можуть виникнути та як їх вирішувати
- Навчитеся працювати з make і CMake
- Навчитеся підключати різні бібліотеки до свого проєкту
Дебаг та діагностика помилок: GDB, core dumps, sanitizers, Valgrind
Навчитеся відлагоджувати C++ код та діагностувати найпоширеніші проблеми.
Тестування C++ коду: Google Test. Базова якість коду: форматування, статичний аналіз, правила проєкту
- Навчитеся писати юніт-тести та зрозумієте концепцію TDD
- Навчитеся використовувати clang-tidy та clang-format
- Розберетеся, як вмикати clang-tidy та clang-format у VS Code
Best practices для створення maintainable коду. Clean Code. Патерни програмування. SOLID. DDD
- Навчитеся критично оцінювати, наскільки легко підтримувати ваш код
- Зрозумієте основні загальноприйняті принципи написання чистого коду
- Дізнаєтеся найпоширеніші патерни програмування
Протоколи передачі даних. Модель OSI. Серіалізація даних
- Дізнаєтесь про модель OSI та місце кожного протоколу в ній
- Розберетеся з поняттям серіалізації даних
- Навчитеся серіалізувати й десеріалізувати дані в різні формати
- Зрозумієте поняття CRC та ECC і навчитеся використовувати їх для передачі даних мережею
Інтернет протоколи. UDP vs TCP/IP. Клієнт-серверна взаємодія
- Зрозумієте різницю між UDP та TCP
- Навчитеся вибирати протокол відповідно до потреб завдання
- Навчитеся писати UDP або TCP клієнтів і серверів через сокети
Qt: архітектура, сигнали та слоти, Qt Creator, Qt5 vs Qt6
- Зрозумієте, що таке фреймворк Qt та як його використовувати
- Навчитеся створювати простий застосунок на Qt і використовувати механізм сигналів та слотів
- Зрозумієте, що таке moc, rcc та uic
- Розберетеся з патернами event loop та observer
Розробка GUI на QML
- Зрозумієте різницю між QtWidgets та QML
- Навчитеся створювати базовий інтерфейс на QML та обмінюватися даними з C++ кодом
Роботи з колекціями даних у QML. MVC паттерн
- Зрозумієте способи виведення та розміщення кількох об’єктів на інтерфейсі
- Навчитеся створювати власні моделі даних та відображати їх у QML
- Зрозумієте патерн MVC
Огляд додаткових можливостей Qt
Зрозумієте, які можливості фреймворку Qt можна використовувати у своїх застосунках.
ROS 2 основи на практиці: nodes, topics, rclcpp pub/sub, ros2 CLI
- Зрозумієте, навіщо ROS 2 у контексті MilTech і чим pub/sub топіки відрізняються від прямих UDP/TCP-з’єднань
- Навчитеся створювати ROS 2 пакет на C++, писати publisher і subscriber, збирати й запускати їх
- Навчитеся використовувати ros2 CLI для інспекції запущених нод і топіків
ROS 2 як система: services, launch, параметри (YAML). Принцип: алгоритм окремо від ROS 2
- Зрозумієте різницю між topics і services
- Навчитеся вибирати правильний механізм для конкретного завдання
- Навчитеся писати launch-файл і конфігурацію у YAML
- Зрозумієте й навчитеся застосовувати принцип розділення алгоритму і ROS 2-обгортки
Архітектура мікроконтролерів, регістри, переривання, пам'ять
- Зрозумієте, що таке мікроконтролер і як побудована його архітектура
- Розберетеся з контекстом обмежених ресурсів та необхідністю оптимізувати програми для мікроконтролерів
- Навчитеся запускати базову програму на ESP32 у симуляторі Wokwi
Робота з периферією. Низькорівневі протоколи передачі даних
- Навчитеся працювати з периферійними девайсами
- Зрозумієте різницю між основними протоколами передачі даних
- Навчитеся використовувати протоколи передачі даних для конкретних завдань
RTOS: концепції, задачі, черги, семафори (FreeRTOS)
- Зрозумієте, навіщо потрібна RTOS і чим вона відрізняється від звичайного циклу while(1)
- Навчитеся створювати задачі у FreeRTOS, передавати дані між ними через чергу та захищати спільні ресурси м’ютексом
- Зрозумієте, як проєктувати просту багатозадачну систему на мікроконтролері
Огляд одноплатових компʼютерів (Raspberry PI, Nvidia Jetson)
- Зрозумієте, що таке одноплатний комп’ютер та дізнаєтеся найпопулярніші моделі
- Навчитеся вибирати апаратне рішення для конкретного завдання
- Зрозумієте, де у типовій архітектурі дрона розміщений мікроконтролер, а де - бортовий комп’ютер
OSS проєкти для розробки дронів
- Зрозумієте можливості, які надають OSS-проєкти для розробки дронів
- Навчитеся компілювати OSS-проєкти та запускати симуляції за їхньою документацією
Заглиблення у MAVLink
- Зрозумієте, як побудовані MAVLink-повідомлення
- Навчитеся генерувати файли для роботи з MAVLink
- Навчитеся створювати власні повідомлення
Симуляція дрона в Gazebo
- Навчитеся підіймати симуляцію дрона у Gazebo через Docker
- Зрозумієте, як Gazebo, SITL, QGroundControl і ROS 2 з’єднуються в єдиний стек та яку роль виконує кожен компонент
- Навчитеся відправляти базові команди до симульованого дрона через MAVLink і перевіряти їх виконання
Створення і відлагодження базових відео пайплайнів
- Зрозумієте призначення та різні види відеокодеків
- Навчитеся працювати з gstreamer та створювати базові відеопайплайни
- Навчитеся відлагоджувати gstreamer-пайплайни
Основи криптографії
- Зрозумієте, для чого потрібно захищати дані
- Навчитеся генерувати й використовувати приватні та публічні ключі
- Розберетеся з концепціями signing, encryption та secure boot
Вступ у системи автоматичного керування
- Дізнаєтеся, що вивчає дисципліна систем автоматичного керування
- Навчитеся використовувати PID-контролер і підбирати його коефіцієнти
Робота над курсовим проєктом
Розробите прикладний C++-проєкт для MilTech-домену: програмний код, документацію та демонстрацію рішення в одному з напрямів - алгоритми для дронових сценаріїв, Qt/QGC-інтерфейс керування, embedded/RTOS-рішення або симуляція роботи системи.
Теми:
- Консультація з лектором щодо завдання
- Старт роботи над курсовим проєктом. Вибір теми, обговорення архітектури
- Захист фінальних проєктів. Демонстрація, підбиття підсумків курсу
Особливості курсу
- Допомога ментора
- Практика на реальних кейсах
- Курсовий проєкт
- Кейс в портфоліо
- Сертифікат про проходження курсу
Викладачі курсу
Дмитро - Lead Software Engineer , Miltech Company
Зарегистрироваться на курс
Категории курса
Читайте нас в Telegram, чтобы не пропустить анонсы новых курсов.
