Курс С++ для військових технологій

  • Online
  • Для початківців, Для досвідчених
  • C / C++, Defence Tech / Military Tech
Навчальний центр: Robot Dreams
Формат:Курс
Мова викладання:Ukrainian
Тривалість навчання:40 занять
Початок курсу:Уточнюйте
Вартість навчання:Уточнюйте

Навчитеся писати програми з реальними розрахунками: координати, вектори, балістика, покрокова симуляція руху. Опануєте структурування коду через функції, структури й стани роботи системи. Опануєте практику побудови каналів обміну даними на вбудованих системах: обмінюватися даними через мережу та апаратні інтерфейси, працювати з 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, щоб не пропустити анонси нових курсів.

Схожі курси

Навчальний центр
IT-Столиця
Формат
Online
Початок навчання
Будь-який момент
Тривалість
10 занять
Рівень
Для досвідчених
Мова навчання
Ukrainian
Вартість
6 200 UAH за курс
Навчальний центр
IT-школа СМАРТ
Формат
Online
Початок навчання
Дата формується
Тривалість
-
Рівень
Для дітей
Мова навчання
Ukrainian
Вартість
2 790 UAH за місяць
Навчальний центр
Junior IT
Формат
Online
Початок навчання
Дата формується
Тривалість
-
Рівень
Для дітей
Мова навчання
Ukrainian
Вартість
уточнюйте
Навчальний центр
Robot Dreams
Формат
Online
Початок навчання
08.12.2026
Тривалість
16 занять
Рівень
Для досвідчених
Мова навчання
Ukrainian
Вартість
уточнюйте