Курс дуже практичний і корисний — знання одразу можна застосовувати в роботі. Лектори в Robot Dreams справді досвідчені, детально відповідають на всі запитання. Особливо цінно, що вони багато ділилися власним практичним досвідом і своїми помилками — завдяки цьому розумієш, на які граблі не варто наступати, і наперед продумуєш моменти, про які інакше дізнався б лише на власному досвіді. Домашні завдання цікаві й різнопланові: легші на Docker чергувалися з глибшими та складнішими, які спираються на математику — вектори, геометрію, інтерполяцію, базову фізику — тож мені довелося дещо підтягнути. Окремо відзначу комунікацію в Slack — відповідь на будь-яке питання можна було отримати швидко. Після цього курсу вже придбала ще два курси Robot Dreams.
Курсы C / C++ Developer
Сравнение всех курсов
- C / C++
- Defence Tech / Military Tech
Навчитеся писати програми з реальними розрахунками: координати, вектори, балістика, покрокова симуляція руху. Опануєте структурування коду через функції, структури й стани роботи системи. Опануєте практику побудови каналів обміну даними на вбудованих системах: обмінюватися даними через мережу та апаратні інтерфейси, працювати з 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
Подать заявку- C / C++
Основи програмування на мові C++ надає студентам відмінну можливість оволодіти основами програмування та розробки однією з найпопулярніших мов. Учасники вивчатимуть синтаксис C++, розвиватимуть навички роботи зі змінними, вказівниками та класами.
Програма курсу
Знайомство з C++
- Коли треба писати на C++?
- Налаштування середовища розробки
- Написання і розбір першої програми
- Створення змінних
- Огляд базових типів даних
- Константи, статичні змінні
- Арифметичні оператори
- Бінарні оператори
- Інші оператори
Введення та виведення, обробка помилок
- Потоки вводу та виводу : stdout, stdin, stderr
- Читання користувацького вводу з консолі
- Робота з файлами
- Читання вводу з файлу
- try...catch блок
- Розбір типових помилок програми
Умовне виконання, цикли, функції
- Оператори if, else, switch
- Цикли for, while, do-while
- Створення простих функцій
- Повернення результату з функцій
- Аргументи функції
Вбудовані структури даних, посилання та пойнтери
- Огляд масивів та дій з ними
- Знайомство зі C-стрічками
- Використання C++ стрічок
- Знайомство з посиланнями
- Огляд пойнтерів та дій з ними
Статична та динамічна пам'ять, етапи побудови програми
- Вигляд програми в пам'яті комп'ютера
- Різниця між статичної та динамічною пам'яттю
- Створення об'єктів в динамічній пам'яті
- Етапи компіляції
ООП в C++
- Створення структур, класів
- Основні поняття OOP (encapsulation, inheritance, polymorphism)
- Значення конструкторів та деструкторів
- Віртуальні методи, наслідування
- Перевантаження операторів, методів
- friend класи
Шаблони та STL
- Знайомство з шаблонами
- Написання шаблонних функцій
- Огляд бібліотеки STL
- Основні контейнери бібліотеки STL
Структури даних, складність алгоритмів
- Розуміння основних структур даних (list, vector, dictionary, hashtable)
- Специфічні структури даних (stack, queue, single-linked list)
- Поняття складності алгоритму
- Складність операцій в структурах даних
- Написання власної реалізації структури даних
Дипломна робота
Створення власного шаблонного контейнера.
Особливості курсу
- Невеликі групи
- Система особистих кабінетів
- Доступ до відеозаписів занять
- Викладачі практики
- Оперативна служба підтримки студентів
- Практичні заняття
Викладачі курсу
- Микита Жаворонков - Linux C/C++ Engineer at GlobalLogic
- Наталія Ковальова - C++ Developer at Swissmeda
- Ігор Конфедрат - Software Engineer at Onseo
- Олексій Кшенський - Senior Software Developer at ProcessMaker
- Олександр Пліщенко - Software Engineer at Eva
- Володимир Мзоков - Full Stack Developer at Insiders
- Максим Безуглий - C++ Senior Software Engineer
- Микола Попов - C++ Software Engineer at DevPulse
- Володимир Сапожніков - Embedded C/C++/Linux developer at Squad
- Ігор Кривошап - Senior C++ Engineer at Intellias
- Юрій Іващенко - C++ Developer at Forex-Softprogramming
- Богдан Левунець - Senior C++ developer at Ubisoft
- C / C++
- Embedded / Hardware / IoT
Практичний курс про базову архітектуру автономного мобільного робота в ROS 2. На прикладі складського або сервісного indoor-робота розберете, як взаємодіють sensors, localization, planning, control та actuators - і як об’єднати їх в одну систему. Протягом курсу працюватимете з ROS 2, Gazebo, LiDAR, IMU, wheel odometry, EKF, SLAM Toolbox, AMCL та Nav2: змоделюєте робота, побудуєте карту, налаштуєте локалізацію, автономний рух і виконання місії. У фіналі зберете автономного indoor-робота, який рухається за картою, обходить перешкоди й виконує заданий сценарій.
Програма курсу
Екосистема автономних мобільних роботів та роль Robotics Software Engineer
- Розберете типи indoor-роботів, їхні місії та архітектуру автономної робототехнічної системи
- Простежите шлях даних від sensors і perception до localization, planning, control та actuators
- Зрозумієте роль Robotics Software Engineer та відмінності між indoor- і outdoor-платформами
ROS2: workspace, packages, nodes i topics
- Розберете ROS 2 graph, DDS, структуру workspace та packages
- Навчитеся створювати nodes, publishers і subscribers та працювати з message interfaces
- Використовуватимете ROS 2 CLI та rqt_graph для діагностики взаємодії компонентів
Services, actions, parameters, lounch i qos
- Навчитесь обирати між topics, services та actions для різних сценаріїв взаємодії
- Налаштуєте parameters, YAML-конфігурації, launch-файли, namespaces і remapping
- Розберете QoS і типові проблеми reliability, durability й сумісності компонентів
URDF/XACRO, TF2 і системи координат
- Створите URDF/Xacro-модель мобільного робота з links, joints та сенсорними модулями
- Побудуєте TF-дерево для map, odom, base_link та sensor frames
- Навчитеся знаходити помилки трансформацій через RViz і TF2
Gazebo harmonic та фізика Indoor-середовища
- Запустите модель робота в Gazebo Harmonic та попрацюєте з ROS–Gazebo bridge
- Розберете mass, inertia, center of mass, collision geometry та friction
- Навчитеся діагностувати нестабільну фізику, ковзання та некоректні контакти
ROS_control і differential drive
- Розберете архітектуру ros2_control та hardware abstraction
- Налаштуєте diff_drive_controller, cmd_vel, joint states і wheel odometry
- Навчитеся керувати рухом робота й діагностувати помилки параметрів привода
Lidar, IMU, камера та rosbag
- Додасте до симуляції LiDAR, IMU та RGB-камеру й налаштуєте sensor topics
- Попрацюєте з noise, timestamps, frame_id та візуалізацією даних у RViz
- Навчитеся записувати й відтворювати сенсорні дані через rosbag
Кінематика differental drive та wheel odometry
- Розберете зв’язок швидкостей коліс з лінійною та кутовою швидкістю робота
- Навчитеся розраховувати pose та працювати з odom → base_link
- Проаналізуєте похибки wheel odometry через ковзання, енкодери та параметри моделі
IMU: моделі похибок та підготовка даних
- Розберете accelerometer, gyroscope, orientation і системи координат IMU
- Навчитеся працювати з bias, noise, drift і covariance
- Перевірятимете правильність осей, одиниць і якість IMU-даних у русі та спокої
Sensor fusion через Robot_Localization
- Розберете базовий принцип EKF та задачу оцінювання стану робота
- Об’єднаєте wheel odometry та IMU через robot_localization
- Навчитеся налаштовувати frames, covariance і порівнювати raw та filtered odometry
Обробка Lasercan, перешкоди й Detections
- Навчитесь аналізувати й фільтрувати дані 2D LiDAR
- Реалізуєте визначення найближчої перешкоди й базовий safety stop
- Передаватимете obstacle data у Nav2 costmap і працюватимете з detections через TF2
Побудова 2D-карти через SLAM Toolbox
- Розберете Occupancy Grid, scan matching, pose graph і loop closure
- Побудуєте і збережете карту indoor-середовища через SLAM Toolbox
- Навчитесь оцінювати якість карти й знаходити розриви, зміщення та помилки loop closure
AMCL та локалізація на готовій карті
- Розберете різницю між odometry, SLAM і localization та принцип particle filter
- Налаштуєте AMCL для роботи з LiDAR і готовою картою
- Навчитеся визначати втрату локалізації та повторно ініціалізувати положення робота
NAV2: Costmaps, planner, controller i recovery
- Розберете архітектуру Nav2 і роботу Planner, Controller та Behavior servers
- Налаштуєте global/local costmaps, planner і controller для автономного руху
- Навчитеся будувати маршрут, обходити перешкоди й запускати recovery behaviors
Behavior trees та управління автономною місією
- Побудуєте багатоетапну місію через Behavior Trees
- Поєднаєте waypoints, actions, detections і повернення робота на базу
- Налаштуєте retry, timeout, skip та abort для обробки помилок і недосяжних цілей
Інтеграція та надійність автономної системи
- Об’єднаєте ROS 2, сенсори, локалізацію та Nav2 у цілісну систему автономного робота
- Навчитеся діагностувати проблеми через ROS graph, TF, logs, topic frequency та rosbag
- Протестуєте відмови сенсорів, втрату локалізації та блокування маршруту і презентуєте курсовий проєкт
Особливості курсу
- Допомога ментора
- Практика
- Кейс в портфоліо
- Сертифікат про проходження курсу
- Курсовий проєкт - Автономний Indoor-робот у Gazebo
Викладачі курсу
Руслан Бредун - Team Lead, MilTech
Подать заявку- C / C++
- Embedded / Hardware / IoT
Перейдіть від звичайної C++ розробки до software для мікроконтролерів: працюйте з ARM Cortex-M, пам’яттю і периферією, пишіть власні драйвери та використовуйте Modern C++ в умовах обмежених ресурсів.
Програма курсу
Контекст Embedded-розробки, налаштування середовища та перший blink
- Розберетесь, як влаштована Embedded-розробка і де проходить межа між Embedded Engineer і System Programmer
- Порівняєте ARM, AVR та RISC-V і зрозумієте, чому C++ використовують для мікроконтролерів
- Налаштуєте GCC ARM Toolchain, CMake, Git, Renode, GDB та OpenOCD
- Зберете перший Embedded-проєкт і напряму керуватимете GPIO через регістри
Від макросів до Type-safe регістрів: Volatile та Constexpr
- Розберетеся, чому макроси, магічні адреси та ручні бітові маски створюють ризики в Embedded-коді
- Зрозумієте роль volatile під час роботи з memory-mapped регістрами
- Використаєте constexpr для адрес регістрів та конфігурації на етапі компіляції
- Створите типобезпечні C++ обгортки для роботи з периферією
Управління пам'яттю без Heap та Rail
- Розберете ризики динамічної пам’яті в Embedded: fragmentation і non-determinism
- Навчитеся працювати зі статичною алокацією та placement new
- Застосуєте RAII для автоматичного керування hardware-ресурсами
- Реалізуєте статичний pool allocator для об’єктів драйвера
Обробка помилок та шаблони для Embedded
- Зрозумієте, чому exceptions часто не використовують у мікроконтролерних системах
- Навчитеся працювати з std::optional та власним Result<T, E>
- Застосуєте policy-based design для конфігурації поведінки драйверів
- Побудуєте обробку hardware-помилок без зависань і зайвого runtime overhead
Шаблони, policy-based design та move semantics
- Розберете принцип zero-overhead abstractions у Modern C++
- Використаєте шаблони для створення універсальних Embedded-драйверів
- Навчитеся передавати великі буфери без зайвого копіювання через move semantics
- Створите UART-драйвер з різними стратегіями обробки помилок
Статичний поліморфізм та CRTP
- Розберете, як створювати інтерфейси без virtual і vtable
- Опануєте Curiously Recurring Template Pattern для Embedded
- Побудуєте спільний статичний інтерфейс для різних типів периферії
- Порівняєте вартість CRTP та runtime-поліморфізму для пам’яті мікроконтролера
Compile-time валідація в C++ 20
- Навчитеся використовувати static_assert для перевірки hardware-конфігурацій
- Розберете C++20 Concepts та обмеження для шаблонів
- Створите драйвер, який не скомпілюється з несумісним типом периферії
- Навчитеся переносити частину Embedded-багів з runtime на етап компіляції
Concurrency: atomics та lock-free дані
- Розберетеся, чому volatile не захищає від race conditions
- Навчитеся використовувати std::atomic в Embedded
- Організуєте безпечну передачу даних між ISR та main loop
- Реалізуєте lock-free ring buffer для роботи з перериваннями
Memory map, linker script та ціна абстракцій
- Розберете memory map ARM Cortex-M: Flash, SRAM, peripheral та system registers
- Зрозумієте роль linker script, startup sequence та ініціалізації C++ об’єктів
- Навчитеся читати .map-файл і вимірювати використання Flash та RAM
- Порівняєте реальну вартість шаблонних та virtual-абстракцій
Datasheet, cmsis і типізований gpio
- Навчитеся знаходити потрібні регістри й бітові поля в datasheet і Reference Manual
- Розберете CMSIS та зрозумієте, де потрібні власні C++ абстракції
- Попрацюєте з GPIO: MODER, OTYPER, PUPDR, IDR, ODR та BSRR
- Створите type-safe API для конфігурації пінів замість магічних чисел
Переривання: nvic, exti та isr у C++
- Розберете повний шлях переривання від hardware-сигналу до виконання handler
- Навчитеся працювати з векторною таблицею, NVIC, EXTI та пріоритетами
- Зрозумієте обмеження ISR і типові помилки в обробниках переривань
- Передаватимете події з ISR в основний цикл через lock-free buffer
Таймери, pwm та робота з часом
- Навчитеся конфігурувати апаратні таймери й розраховувати prescaler та ARR
- Розберете SysTick і принципи роботи системного часу
- Згенеруєте PWM і керуватимете duty cycle
- Побудуєте type-safe API часу на std::chrono без зайвих runtime-витрат
DMA та передача даних без участі CPU
- Розберете, коли DMA ефективніший за polling та interrupts
- Навчитеся конфігурувати DMA-канали, circular mode і пріоритети
- Попрацюєте з Half Transfer, Transfer Complete і double buffering
- Розберете зв’язок між lifetime буфера, move semantics і коректністю DMA-передачі
UART: налаштування, ring buffer і три режими роботи
- Розберете структуру UART-кадру та розрахунок baud rate
- Налаштуєте USART без HAL через регістри
- Порівняєте polling, interrupt-driven і DMA-режими
- Реалізуєте UART-драйвер з ring buffer та обробкою hardware-помилок
SPI: швидка синхронна шина та робота з SPI Flash
- Розберете MOSI, MISO, SCK, CS та режими CPOL/CPHA
- Навчитеся налаштовувати SPI через регістри та працювати з кількома пристроями
- Прочитаєте протокол SPI Flash із datasheet і реалізуєте його у власному драйвері
- Додасте timeout і коректну обробку помилок hardware
I2C: багатоадресна шина і драйвер реального сенсора
- Розберете фізичний рівень I2C, open-drain, START, ACK/NACK і STOP
- Навчитеся виконувати write, read і write-then-read транзакції
- Напишете власний драйвер сенсора BME280 за datasheet
- Реалізуєте timeout і відновлення заблокованої I2C-шини
ADC i DAC: робота з аналоговим світом
- Розберете принцип роботи ADC та фактори, що впливають на точність вимірювань
- Навчитеся перетворювати raw ADC-код у фізичні величини
- Налаштуєте безперервне оцифрування через ADC + DMA
- Згенеруєте аналоговий сигнал через DAC із compile-time таблицею відліків
RAIL на апаратному рівні: критичні секції та interruptguard
- Розберете, чому mutex не підходить для даних, спільних з ISR
- Навчитеся працювати з hardware critical sections через PRIMASK
- Реалізуєте RAII-обгортку InterruptGuard
- Навчитеся контролювати вплив критичних секцій на latency переривань
Type-safe кільцевий буфер: від байтів до структур
- Перейдете від сирих uint8_t до типізованого RingBuffer<T, N>
- Навчитеся перевіряти параметри буфера на етапі компіляції
- Побудуєте явну обробку станів "буфер повний" та "буфер порожній"
- Організуєте безпечну передачу структурованих даних між ISR та main loop
Статичний аналіз, gdb та діагностика hard fault
- Попрацюєте з clang-tidy, cppcheck та sanitizers для host-side тестів
- Навчитеся дебажити Embedded-код через GDB та OpenOCD
- Працюватимете з breakpoints, регістрами CPU та пам’яттю
- Навчитеся знаходити причину hard fault через CFSR, HFSR і stack context
Host-side тестування та mock-об'єкти для драйверів
- Розберете, як тестувати Embedded-код без фізичного hardware
- Навчитеся відділяти драйвер від периферії через інтерфейси
- Створите mock-об’єкти для UART, GPIO та інших компонентів
- Напишете unit-тести в GoogleTest для host-side збірки
Межі симуляції та стратегія переходу на реальне залізо
- Зрозумієте, які hardware-проблеми неможливо повністю відтворити в симуляторі
- Попрацюєте з кастомними моделями периферії в Renode
- Напишете автоматизовані тести прошивки через Robot Framework
- Складете чек-лист перенесення Embedded-проєкту із симуляції на реальну плату
Q&A-сесія
- Розберете відкриті технічні питання, що накопичилися протягом курсу
- Отримаєте консультацію щодо свого курсового Embedded-проєкту
- Визначите, які частини проєкту потрібно доопрацювати перед захистом
- Підготуєтеся до демонстрації та пояснення технічних рішень
Захист курсових проєктів
- Продемонструєте збірку та роботу власного Embedded-проєкту в симуляторі
- Презентуєте архітектуру та обґрунтуєте ухвалені технічні рішення
- Отримаєте фідбек лектора щодо коду, архітектури й точок росту
- Сформуєте план подальшого розвитку в Embedded C++
Для навчання на курсі потрібно
- Впевнене володіння C++
- Базове розуміння пам’яті та архітектури комп’ютера
- Базові навички роботи з Git
Особливості курсу
- Допомога ментора
- Практика
- Курсовий проєкт
- Кейс в портфоліо
- Сертифікат про проходження курсу
Викладачі курсу
Роман Марченко - Sr Member of Tech Staff at Wind River Systems
Подать заявку- C / C++
- Defence Tech / Military Tech
- Embedded / Hardware / IoT
Навчіться проєктувати навігаційні системи для дронів, роботів та автономних платформ: від роботи з IMU та GNSS - до Sensor Fusion, ROS2 і навігації при втраті GPS.
Програма курсу
Вступ до інженерії навігаційних систем
- Розберете структуру навігаційної системи: сенсори, контролери, алгоритми та софт
- Познайомитеся з інерціальними, супутниковими та комбінованими системами
- Розглянете застосування навігації в дронах, робототехніці, IoT та оборонних системах
Вимоги до навігаційних систем в оборонних застосуваннях
- Навчитеся формувати вимоги до навігаційної системи відповідно до платформи та сценарію її застосування
- Розберете вплив бойового середовища, РЕБ та відмов сенсорів на роботу навігації
- Познайомитеся зі стандартами MIL-STD-810, MIL-STD-461, STANAG 4586, STANAG 4609
- Проаналізуєте реальну місію та сформуєте орієнтовне технічне завдання
Системи координат і кінематика руху
- Розберете системи координат ECEF, ENU, NED і Body Frame
- Навчитеся виконувати перетворення координат і описувати положення, швидкість та орієнтацію платформи
- Напишете Python/C++ скрипт для конвертації вектора швидкості
- Познайомитеся з алгоритмами безплатформних навігаційних систем
Інерціальні навігаційні системи: INS та IMU
- Розберете принципи роботи акселерометрів та гіроскопів у складі IMU
- Навчитеся враховувати bias, шум і дрейф сенсорів
- Познайомитеся з підходами до калібрування IMU
- Проаналізуєте дані сенсора, розрахуєте орієнтацію та оціните дрейф
Супутникові навігаційні системи: GNSS
- Розберете принципи роботи GPS, Galileo, GLONASS та BeiDou
- Навчитесь аналізувати похибки, обмеження та вразливості GNSS
- Познайомитеся з Multi-GNSS, DGPS, RTK, PPP та GNSS/INS
- Попрацюєте з форматами NMEA та UBX
- Створите NMEA-парсер, побудуєте трек і проаналізуєте точність позиціювання
Домашнє завдання: обрати платформу - дрон, наземний робот або IoT-пристрій, описати архітектуру її навігаційної системи, визначити системи координат, підібрати IMU- та GNSS-модулі й сформувати вимоги до системи.
Фільтрація даних та фільтр Калмана
- Розберете принципи баєсівської фільтрації та роботу Kalman Filter
- Навчитеся працювати з EKF та UKF і зрозумієте різницю між ними
- Розберете етапи prediction/update і роботу з матрицями коваріації
- Реалізуєте комплементарний фільтр та EKF для оцінки орієнтації дрона
Sensor Fusion: об'єднання IMU + GNSS
- Розберете, як об’єднувати дані різних сенсорів для стабільної оцінки положення
- Навчитеся враховувати частоту оновлення, точність, шум і latency сенсорів
- Порівняєте loosely coupled і tightly coupled архітектури
- Побудуєте EKF для об’єднання IMU та GPS
- Змоделюєте навігацію при втраті GNSS у MATLAB
Візуальна навігація та SLAM
- Розберете принципи SLAM та Visual SLAM
- Познайомитеся з візуально-інерціальною одометрією - VIO
- Зрозумієте різницю між Visual SLAM та Lidar SLAM
- Попрацюєте з датасетом EuRoC MAV та візуалізуєте траєкторію
Домашнє завдання: реалізувати KF/EKF для об’єднання IMU та GNSS, протестувати систему на синтетичних або відкритих даних, порівняти якість навігації за різного рівня втрати GNSS-сигналу.
Основи ROS2
- Розберете архітектуру ROS2: ноди, топіки, сервіси та повідомлення
- Навчитеся працювати з командами ros2 run і ros2 topic
- Створите власний ROS2-пакет
- Напишете ноду, яка публікує дані з імітованого IMU
Інтеграція навігаційних алгоритмів у ROS2
- Інтегруєте Kalman Filter у ROS2
- Навчитеся працювати з tf2 та системами координат
- Налаштуєте навігаційний стек у Gazebo або Webots
- Створите ROS2-ноду, яка об’єднує IMU та GPS через EKF
Симулятори навігаційних систем
- Познайомитеся з Gazebo, AirSim та SITL
- Навчитеся налаштовувати середовище та запускати тестові сценарії
- Візуалізуєте навігаційні дані через rviz2 та rqt_plot
- Змоделюєте рух дрона або робота за заданим маршрутом
Домашнє завдання: створити ROS2-пакет із нодами IMU та GPS, інтегрувати EKF у ROS2-ноду, запустити систему в Gazebo або Webots і візуалізувати результат у rviz2.
Валідація та верифікація навігаційних систем
- Навчитесь оцінювати точність і надійність навігації через RMSE, CEP та ground truth
- Розберете методи SIL та HIL і різні типи випробувань
- Познайомитеся з тестуванням систем в умовах вібрацій, ударів, електромагнітних впливів та РЕБ
- Розрахуєте RMSE та проаналізуєте похибки позиціювання
Кейси з робототехніки, IoT та оборонних систем
- Розберете архітектуру навігації дронів, наземних роботизованих комплексів та гуманоїдних роботів
- Проаналізуєте використання навігаційних систем у військових і безпекових рішеннях
- Порівняєте підходи до навігації сучасних автономних платформ
- Розглянете кейси Tesla, Skydio, Boston Dynamics, Anduril, NavVis та Figure AI
Домашнє завдання: підготувати архітектурний план фінального проєкту, обрати платформу та сенсори, визначити підхід до Sensor Fusion - EKF/UKF, сформувати сценарій SIL/HIL-тестування та критерії оцінки точності через RMSE.
Фінальний проєкт: Q&A
- Спроєктуєте навігаційну систему для дрона, наземного робота або іншої автономної платформи
- Реалізуєте Sensor Fusion через EKF/UKF та об’єднаєте щонайменше два типи сенсорів
- Налаштуєте систему так, щоб вона продовжувала оцінювати положення при втраті GNSS
- Інтегруєте рішення в ROS2 і протестуєте його в Gazebo, AirSim або Webots
- Порівняєте траєкторію з ground truth і розрахуєте RMSE
Фінальний проєкт: захист робіт
- Підготуєте демо фінального проєкту
- Презентуєте і захистите технічне рішення перед лекторами
Особливості курсу
- Допомога ментора
- Практика
- Домашні завдання
- Курсовий проєкт
- Кейс в портфоліо
- Сертифікат про проходження курсу
Викладачі курсу
- Андрій Л. - Robotics R&D Engineer, PhD in Electrical Engineering
- Сергій Г. - Chief Designer Engineer of Gyroscopes and Navigation Systems
- Сергій К. - Computer Vision Engineer at t-Spark engineering
- C / C++
На курсі C++ Pro вивчатимуть просунуті аспекти програмування на мові C++, включаючи шаблони, багатопотокове програмування, оптимізацію коду, використання розширених можливостей мови, роботу зі стандартною бібліотекою та розробку високоефективного програмного забезпечення.
Програма курсу
Сучасні стандарти С++ (від С++11 і новіші)
- Оператор auto, range-based loops
- Розумні вказівники (smart pointers)
- Lambda-вирази
- Семантика переміщення (move semantics)
Багатопоточне програмування
- Створення потоків і проблематика процесу
- Синхронізація потоків. Mutex і його варіації. Атомарні об’єкти
- Асинхронні операції та std::future
Огляд класичних підходів у розробці
- Статичні та динамічні бібліотеки
- Патерни проєктування
Build-системи та інструменти контролю версій
- Знайомство з build-системами
- Робота з CMakе
- Робота з git
Фреймворк Qt
- Основи та підходи в Qt Framework
- Робота з Qt Creator/Visual Studio
- Робота з Qt Widgets
- Робота з Qt QML
Дипломна робота
Особливості курсу
- Невеликі групи
- Система особистих кабінетів
- Доступ до відеозаписів занять
- Викладачі практики
- Оперативна служба підтримки студентів
- Практичні заняття
Викладачі курсу
- Микита Жаворонков - Linux C/C++ Engineer at GlobalLogic
- Наталія Ковальова - C++ Developer at Swissmeda
- Максим Безуглий - C++ Senior Software Engineer
- Олександр Пліщенко - Software Engineer at Eva
- Володимир Сапожніков - Embedded C/C++/Linux developer at Squad
- Ігор Кривошап - Senior C++ Engineer at Intellias
- Олег Кураченко - Software Engineer at Megogo
- C / C++
Курс охоплює всі основні теми: від знайомства із середовищем розробки, алгоритмів та написання першої програми до роботи з масивами, функціями та класами. Ти отримаєш та закріпиш на практиці необхідні навички для подальшого розвитку в програмуванні.
Програма курсу
Всупна лекція. Знайомство з Visual Studio. Написання першої програми
Це заняття — маленький крок у час, але великий з боку інформації. Ти нарешті дізнаєшся, що воно таке — програмування. Пройдеш етапи створення програм. А також встановиш Visual Studio (або іншої IDE) — і тут почнеться: знайомство з інтерфейсом, написання першої програми, знайомство зі структурою програми в С++, виконанням програми, поняттям алгоритму, введення та виведення інформації. Так, насичено. Але й необхідно!
Змінні та типи даних
На занятті ти познайомишся із синтаксисом С++ та розбереш усе про змінні в цій мові — дізнаєшся про їхнє іменування. Оглянеш типи даних, константи, системи числення та осягнеш одиниці інформації.
Види операцій
Тут ти дізнаєшся, які операції бувають — арифметичні, логічні, операції присвоєння. А також розглянеш такі теми як пріоритет операцій, зведення типів, математичні операції.
Алгоритми. Керуючі структури. Цикли
Після заняття ти точно будеш знати всю базову інформацію про алгоритми та розглянеш такі теми:
- Логічні вирази, порівняння
- Умовний оператор IF, IF-ELSE
- Тернарна умовна операція
- Операція вибору варіантів SWITCH CASE
- Циклічні алгоритми
- Цикли FOR
- Оператори циклу з передумовою WHILE та постумовою DO-WHILE, goto
- Вкладені цикли
Практичне заняття
А ось і практика! На занятті ти зможеш закріпити попередньо набуті знання й отримати практичні інсайти.
Масиви: одновимірні, двовимірні
На цьому занятті ти зрозумієш, як працюють масиви:
- Оголошення та ініціалізація масиву
- Введення-виведення масиву
- Доступ до елементів та їх зміна
- Генерація псевдовипадкових чисел
- Програмування базових алгоритмів (сортування, пошук мінімального/максимального елемента, тощо)
- Вектори
Покажчики. Динамічні масиви
На занятті ти знайдеш відповідь на запитання "Що таке покажчики та для чого вони потрібні?". А також розглянеш такі теми:
- Посилання
- Stack, heap
- Арифметичні дії з вказівниками
- Помилки, які можуть виникати при роботі з вказівниками
Функції
Заняття присвячено функціям, області видимості, рекурсивним функціям та перегрузці функцій — і все це ти зможеш додати до загалу своїх знань.
Практичне заняття
Знову час конвертувати свої теоретичні знання в практику — це корисно.
Налагодження програм
Після цього заняття ти матимеш знання, щоби без проблем відшукати помилки в програмі та швидко їх виправити.
Символи і рядки. Структури
Упродовж заняття ти поглинатимеш знання про функції для роботи з символами та рядками, структури, масиви структур.
Робота з файлами
На занятті ти дізнаєшся, що таке запис, читання і загалом робота з файлами.
Багатофайлові програми
І такі бувають. На занятті ти дізнаєшся про заголовні файли та бібліотеки функцій.
Введення в ООП. Частина 1
Через те, що С++ є об'єктно-орієнтованою мовою програмування, тобі необхідно знати й парадигму ООП. На занятті ти дізнаєшся про основи ООП, розглянеш класи та об'єкти.
Введення в парадигму ООП. Частина 2
Ти вже на фінішній прямій! А на занятті дізнаєшся про конструктори, деструктори та UML-діаграми.
Практичне заняття. Підведення підсумків
Тепер ти маєш базові знання мови програмування С++ та можеш рухатися далі й продовжувати розвиватися в цьому напрямку впевнено та повноцінно! Вітаємо.
Особливості курсу
- 16 онлайн-занять у зручний час доби — ввечері
- регулярний фідбек від викладача
- практичні заняття та домашні завдання для засвоєння теоретичного матеріалу
- допоміжні матеріали: записи лекцій, презентації, корисні посилання
- сертифікат, який дійсно доводить, що ти володієш необхідними знаннями
Викладачі курсу
Ляшенко Галина - 6 років досвіду викладання в ХНУРЕ
Подать заявку- C / C++
План курсу
Основні теми курсу
- Введення в мову С
- Арифметичні операції
- Умовні оператори
- Цикли
- Масиви
- Сортування
- Рядки
- Покажчики
- Функції
- Рекурсія
- Структури
- Основи ООП, поняття класу
- Об'єкти
- Інкапсуляція, геттери і сеттери
- Константи
- Дружні класи і функції
- Перевантаження операторів
- Поліморфізм, віртуальна машина
- Файли
- Шаблони
- Винятки
Результат навчання
Програми:
- Компілятори мови програмування C++: Microsoft i GNU/MinGW у середовищі Windows
- Середовища програмування: MicrosoftVisualStudio та CodeBlocks
- Графічна бібліотека TX Library
Освітній процес:
- Чітке розуміння завдань, що вирішуються програмуванням
- Впевнене знання основ мов C/C++
- Уміння раціонально організовувати робочий процес для ефективного досягнення поставлених цілей
- Навички написання анімованих графічних програм в середовищі Windows
- Програмування мережевих комп'ютерних ігор
- Досвід роботи в команді
- Отримання архітектурних навичок розробки великих програм
Особливості курсу
- Для дітей від 12 років
- Групові заняття в Zoom
- Зручний графік занять
- Не витрачаєте час на дорогу
- Можливість індивідуального навчання
Викладачі курсу
- Максим - Arduino, C/C++
- Максим - Java, Python, C++
- C / C++
Навчання відбувається в онлайн-форматі: ви вивчаєте основи у своєму темпі, переглядаючи відео-лекції та виконуючи практичні завдання від автора курсу. Після проходження курсу C++ Start – ти володієш основами мови C++, які дозволять тобі розвиватися далі самостійно або на наших курсах менторингу Unreal Engine.
Програма курсу
Введення та налаштування
Теорія:
- Про що і навіщо курс, що в ньому буде, чого не буде
- Що пишуть на C++
Практика:
- Встановлення Visual Studio
- Створюємо проєкт із методом main
- Пишемо Hello World
Керуючі конструкції та типи даних
Теорія:
- Строкові змінні
- Конкатенація рядків
- Арифметичні операції
- Ключове слово const
- Логічні типи даних
- Конструкція switch-case
- Масиви, цикл for
- Цикли while і do-while
- Керуючі оператори
- Цикли break, continue, цикл while (true)
- Вказівники
Практика:
- Змінюємо "Hello, World" на "Hello, <name>"
- Читаємо прості формули
- Читаємо з консолі температуру води, говоримо, в якому вона стані
- Читаємо з консолі порядковий номер дня тижня, виводимо словами
- Створюємо const-змінну
- Створюємо масив
- Переписуємо цикли через while
- Зчитуємо числа з консолі
- Розіменовуємо вказівники
Основи функціонально-процедурного програмування
Теорія:
- Аргументи функції та значення, що повертається
- Процес складання програми в C++
Практика:
- Пишемо функцію
- Переносимо формули до функції
- Створюємо .h та .cpp файли
Класи та об'єкти
Теорія:
- Що це таке:
- Класи
- Об'єкти
- Поля
- Методи
- Статичний поліморфізм
- Динамічне виділення пам'яті
Практика:
- Створення класу та об'єкту класу
- Додавання атрибутів класу, геттерів/сеттерів до них + зчислення класу
- Додавання методів
- Визначення методів
- Написання конструктора та деструктора
- Використання операторів new та delete
Елементи ООП
Теорія:
- Спадкування
- Модифікатори під час спадкоємства
- Dynamic cast
- Перевизначення методів
- Поліморфізм і ключове слово virtual. Віртуальний деструктор
- Абстрактний клас і чисто віртуальні методи
- Передача об'єктів у методи за значенням і за посиланням
Практика:
- Створити:
- ієрархію успадкування
- у цій ієрархії створити поліморфну поведінку
- переобумовлений метод
- перевантаження методів
- абстрактний клас і імплементувати його
- інтерфейс і імплементувати його
- Використовуємо virtual. Робимо деструктор класу віртуальним
Попередні вимоги
- Вільне володіння комп'ютером
- Вміння читати англійський текст
Особливості курсу
- Онлайн курс
- Необмежений доступ до відео-лекцій і завдань
- Без перевірки
- Допомога в чаті Slack
Викладачі курсу
Олександр Басалкевич - Senior C++ Engineer
Подать заявку- C / C++
Програма курсу
Структура бібліотеки шаблонів
- Ітератори. Ітератори введення. Ітератори виведення. Однонаправлені ітератори. Двонаправлені ітератори. Ітератори довільного доступу. Теги ітераторів. Операції з ітераторами
- Ітератори потоків. Ітератор вхідного потоку. Ітератор вихідного потоку
- Контейнери, алгоритми, адаптери
- Адаптери. Адаптери контейнерів. Адаптери ітераторів. Адаптери функцій
- Алгоритми, що не змінюють послідовність операції. Алгоритми, що змінюють послідовність операції. Операції сортування і відносини
Архітектури додатків
- Окремий додаток. Клієнт-сервер. Трирівнева архітектура. Багатошарова архітектура
- Архітектурні патерни MVP, MVC, MVVM
- Патерни проєктування
Робота з системою контролю версій
XML
- Формат документа XML. Стандарти. Схеми
- Використання XML
- Читання XML за допомогою інтерфейсів SAX і DOM
- Запис документів XML
- Серіалізация
- Патерн проєктування "Memento"
Робота з мережею
- Створення FTP і HTTP клієнтів
- Створення клієнт-серверних додатків на базі TCP
- Робота з протоколом UDP
Багатопоточність
- Створення потоків
- Синхронізація потоків
- Взаємодія з головним потоком
- Застосування класів Qt у вторинних потоках
Інтернаціоналізація
- Робота з Unicode
- Створення перекладного додатку. Переклад додатків і динамічне перемикання мов
Модульне тестування ПО (unittesting)
- Введення в модульне тестування
- Створення модульних тестів за допомогою Qt
Основи створення додатків Qt Quick
- QML для побудови призначеного для користувача інтерфейсу
- Огляд основних можливостей
- Створення програми на Qt Quick
Основи розробки Qt-додатків під Android
- Встановлення SDK. Налаштування Qt Creator для роботи з AndroidSDK
- Створення віртуального пристрою
- Збірка і запуск програми
Особливості курсу
- Викладачі практики
- Корпоративне навчання
- Можливе навчання у вихідні
- Можливість влаштуватися у провідні IT-компанії
- Індивідуальне навчання
Викладачі курсу
- Володимир - Програміст
- Ігор - Програміст
- Володимир - Програміст
- Олексій - Програміст
- C / C++
Наші слухачі пізнають центральні можливості самої бібліотеки Qt; попрацюють в розробці додатків GUI з використанням даної програми. Педагоги Навчального Центру надають для розгляду всю необхідну інформацію про адаптери, контейнери та алгоритми. Слухачі будуть мати можливість повноцінно розбиратися в базі даних та архітектурі додатків.
Програма курсу
Вивчаємо Qt. Програмування GUI за допомогою бібліотеки Qt
- Основні принципи роботи з бібліотекою Qt
- Об'єктна модель. Метаоб'єкти, властивості, сигнали і слоти. Типи, варіанти, посилання
- Огляд класів бібліотеки
- Програмування GUI за допомогою Qt. Віджети. Вікна, діалогові вікна, головні вікна. Меню. Призначені для користувача віджети. Обробка подій
- Створення GUI-додатків
- Основи роботи з 2D і 3D графікою
- Вилов помилок за допомогою QDebug
Зовнішній вигляд програми
- Робота зі стилями
- Робота із зображеннями
- Піктограма додатка
- Варіації кольорової гами
Бази даних
- Знайомство з SQL
- Знайомство з СУБД
- Драйвера БД
- З'єднання з базою. Виконання запитів. Обробка даних
- Представлення даних в табличній формі
- Стандартні операції CRUD на прикладі реального додатку
Робота з файлами в Qt
- Відкриття і вибір файлів за допомогою класу QFileDialog
- Створення нових файлів
- Збереження файлу
- Формати .txt й .rtf
Функціонал drag and drop
- Як реалізувати drag and drop
- Перетягуємо і фільтруємо текст
- Перетягуємо картинки
Особливості курсу
- Викладачі практики
- Корпоративне навчання
- Можливість навчання по вихідним
- Можливість влаштуватись у провідну IT-компанію
- Індивідуальне навчання
Викладачі курсу
- Володимир - Програміст
- Ігор - Програміст
- Володимир - Програміст
- Олексій - Програміст
- C / C++
Ми навчимо вас всіх основ алгоритмічного мислення, навчимо користуватися прийомами структурного та об’єктного програмування. Ви зможете вирішувати типові задачі програмування та вміти розбиратися в чужому коді.
Програма курсу
Тема 1
- Порядок рішення всіх задач
- Створення проєкту C++ в IDE Visual Studio
- Мова програмування, її основні поняття
- Практика
Тема 2
- Програми C++ та їхнє створення
- Типи даних
- Оператори виведення та введення інформації
- Практика
Тема 3
- Функції математики в C++
- Рішення нескладних задач за використання C++
Тема 4
- Оператор розгалуження if/else, switch/case
- Математичні задачі в C++, їхнє рішення
Тема 5
- For - оператор циклу
- &&, || - логічні оператори
- Математичні задачі в C++, їхнє рішення
Тема 6
- While, for, dp/while - оператори циклу
- Математичні задачі в C++, їхнє рішення
Тема 7
- Робота з файлами: виведення з файлу, введення з файлу даних
- Практика
Тема 8
- Масиви, а також математичні дії над ними
- Практика
Тема 9
- Рішення різних задач, завдяки C++
- Практика
Тема 10
- Функції прототипи функцій
- Практика
Тема 11
- Процес роботи з файлами
- Практика
Тема 12
- Структури даних, масиви структур
- Практика
Тема 13
- Покажчики, процес роботи з покажчиками
- Практика
Тема 14
- Черга, список, стек. Динамічні структури
- Практика
Тема 15
- ООП - введення
- Практика
Тема 16
- Інкапсуляція в C++
- Практика
Тема 17
- Наслідування в C++
- Практика
Тема 18
- Поліморфізм в C++
- Практика
Тема 19
- Поняття та перезавантаження операторів
- Практика
Тема 20
- Бібліотека STL
- Практика
Тема 21
- Інтерфейс програми, можливості
- Практика
Тема 22
- Процес роботи з віконними додатками
- Практика
Особливості курсу
- Викладачі практики
- Корпоративне навчання
- Можливість навчатися у вихідні
- Можливість влаштуватися у провідні IT-компанії
- Індивідуальне навчання
Викладачі курсу
- Володимир - Програміст
- Ігор - Програміст
- Володимир - Програміст
- Ігор - Програміст
- C / C++
Мета курсу - вивчити найпопулярніші мови програмування C та C++, отримати знання сучасних методологій та технологій програмування, набути навички розробки програм для вирішення широкого кола типових завдань.
План курсу
Що вивчають на курсі
- До курсу входить навчання принципам:
- написання алгоритмів, структурі програм мови С++
- типів змінних, основним конструкціям, у тому числі циклам та керуючим структурам
- управління одновимірними та багатовимірними масивами даних, роботи з рядками
- створення підпрограм, роботи з динамічною пам'яттю, динамічним типом даних
- роботи з файлами, і навіть деяким особливостям мови C++
Що учень буде вміти
- Викладати думки у зрозумілому для комп'ютера вигляді: чітко та послідовно
- Розбивати завдання на підзавдання, шукати та знаходити оптимальні шляхи вирішення
- Писати консольні програми на С++
- Реалізувати як існуючі, так і власні алгоритми
- Створювати програми з графічним інтерфейсом
- Самостійно та швидко розібратися в основах більшості інших мов програмування
Що учень матиме
- Мислення в термінах Об'єктно-орієнтованого програмування
- Використання всіх операторів мови C
- Навички користування бібліотечними функціями
- Вміння працювати із масивами
- Вміння писати функції
- Використовувати класи пам'яті
- Застосовувати адресну арифметику
- Працювати із структурами даних
- Працювати із файлами
Особливості курсу
- Групи до 10 осіб
- Програми розроблені з урахуванням віку дитини
- Заняття записуються і завжди є можливість повторити матеріал
- Дається домашнє завдання для самостійної роботи
- В особистому кабінеті розміщені всі навчальні матеріали
- Заняття проводяться за розкладом як у будні дні, так і у вихідні
- Розклад та викладач протягом курсу навчання не змінюються
- Викладачі - практикуючі IT фахівці з досвідом роботи з дітьми понад 3 роки
- Сертифікат про проходження курсу
- C / C++
- JavaScript
Курс модульний та базові основи мов програмування вивчаються послідовно - у першому модулі - Java Script, у другому модулі - С++. Після закінчення курсу у студентів буде кілька проектів, написаних за допомогою вивчених мов, розуміння та вміння використовувати базові основи Java Script та С++.
План курсу
Що вивчають на курсі
- Базові елементи JavaScript, включаючи різні види даних, умовних конструкцій, операторів циклів та функцій
- Ознайомлення з jQuerty, об'єктно-орієнтоване програмування
- Написання алгоритмів, структура програм мови С++
- Типи змінних, основні конструкції, зокрема цикли і керуюча структура мови С++
- Робота з файлами, а також з деякими особливостями мови С++
Що учень буде вміти
- Створювати прості HTML-сторінки, напише текстову версію гри "Шибениця"
- Викладати думки у зрозумілому для комп'ютера вигляді: чітко та послідовно
- Розбивати завдання на підзавдання, шукати та знаходити оптимальні шляхи вирішення
- Реалізувати як існуючі, так і власні алгоритми
Що учень матиме
- Самостійно створений сайт, написаний з використанням HTML, CSS та елементів Javascript
- Цілий ряд WEB-сторінок, написаних протягом навчання
- Навичка пошуку та аналізу інформації для розміщення на сайті
- Вміння використовувати графічний редактор Photoshop для підготовки зображень до сайту
Особливості курсу
- Групи до 10 осіб
- Програми розроблені з урахуванням віку дитини
- Заняття записуються і завжди є можливість повторити матеріал
- У кожного студента своє обладнане робоче місце
- В особистому кабінеті розміщені всі навчальні матеріали
- Заняття проводяться за розкладом як у буденні дні, так і у вихідні
- За потребою надаємо можливість комбінувати online/offline навчання
- Викладачі - практикуючі IT фахівці з досвідом роботи з дітьми понад 3 роки
- Сертифікат про проходження курсу
- C / C++
Студенти ознайомляться з логікою програмування на базовому рівні, створять консольні програми та програми з графічним інтерфейсом мовою C++. Навчаться спрощувати та оптимізувати код, документувати проєкти. Напишуть базовий проєкт типу конвертер валют, банкомат тощо за зразком. Захистять індивідуальний підсумковий проект.
План курсу
Технічні навички
Базові принципи
Освоїмо принципи програмування та розробки програм. Навчимося створювати нескладні скрипти та алгоритми, використовуючи послідовності, оператори та цикли.
Синтаксис та ООП
Опануємо основи синтаксису мови С++, познайомимося з принципами об'єктно-орієнтованого програмування та попрактикуємося у написанні фрагментів коду.
Розробка
Пройдемо усі етапи створення і функціонування програми. Створимо декілька власних учбових проектів такі як калькулятор, конвертер, вікторина, програвач музики.
Проєктний підхід
Пройдемо повний цикл проектування та створення проєктів "по-дорослому": від ідеї та плану до взаємодії з командою та презентації власних проєктів батьками.
English
Освоїмо технічну термінологію та базову IT-лексику, а також навчимося працювати у програмах з англійським інтерфейсом.
Соціальні навички
Впевненість
Сформуємо впевненість у собі та своїх здібностях, навчимося бути проактивним, не бояться робити помилки, а аналізувати їх та швидко приймати рішення.
Самостійність
Освоїмо інструменти самоорганізації. Навчимося самостійно ставити цілі, планувати та керувати своїм часом.
Емоційний інтелект
Навчимося керувати своїми емоціями. Логічно та послідовно вибудовувати свою мову та аналізувати поведінку інших людей, робити правильні дії.
Самопрезентація
Зможемо впевнено та вільно виступати на публіці. Завойовувати довіру, цікаво та лаконічно презентувати себе чи свій проєкт.
Працювати в команді
Комунікувати з усіма членами команди, брати на себе відповідальність за результат, знаходити компроміси та позитивно вирішувати конфлікти.
Креативність
Розвинемо вміння генерувати безліч ідей з нестандартним підходом, навчимося бачити проблеми під іншим кутом і вирішувати їх унікальним способом.
Бізнесові навички
Бізнес мислення
Зрозуміємо, що таке бізнес та як він влаштований в інтернеті. Дізнаємося як формується бюджет проєкту і з чого він складається: пошук ідеї, формування бізнес-моделі та складання свого бізнес-плану.
Управління фінансами
Розберемося, що таке гроші та як ними користуватися. Навчимося розрізняти, планувати, контролювати свої доходи та витрати. Чи зможемо ефективно розпоряджатися засобами та розвивати в собі навички управлінця.
Стратегічне планування
Глобалізація економіки та автоматизація виробництва сприяють створенню нових бізнес-моделей. Дізнаємося, які напрями та професії будуть затребувані у найближчі 10 років: стратегія блакитного океану, штучний інтелект, кібербезпека та Meta-всесвіт.
Особливості курсу
- Навчання через практику
- Щотижневі лабораторії Skills Lab
- Фіксація результату
- Онлайн-підтримка викладача
- Онлайн-консультації
- Можливість офлайн навчання
- Захист випускного проєкту
- Гейміфікація
- Особистий кабінет
- Бонуси за активність на курсі
- Домашні завдання
- Звітність для батьків
- Невеликі групи
- C / C++
- JavaScript
- Python
Учасники ознайомляться з основними принципами об'єктно-орієнтованого програмування, дізнаються про його складові, принципи та застосування. Курс буде корисний для тих, хто вже знайомий з кодом Python, C++ або Javascript.
Програма курсу
Теми:
- Парадигми програмування
- ООП. Проєктування
- Основи ООП
- Класи. Об'єкти. Властивості та методи
- Принципи ООП
- Конструктори
- Методи доступу
- Спадкування
- Відносини між класами
- Об'єктно-орієнтовані мови програмування
Опис курсу
Якщо ви вже можете написати код однією з мов програмування (Python, C++ або JavaScript), то саме час познайомитись з ООП. Що ж це таке і навіщо воно потрібно? ООП - об'єктно-орієнтоване програмування, яке дає можливість описати реальний світ як сукупність об'єктів, що взаємодіють між собою: персонажів в іграх, функцій в програмах, елементів в пристроях. Більшість проєктів написано саме з використанням ООП. Складно? Ні, реально і практично. Приєднуйтесь!
- тривалість заняття - 60 хвилин
- інтенсивність - 1 заняття 2 рази на тиждень
- повна тривалість курсу - 3 місяці, 24 заняття
- заняття проходять онлайн, що дає змогу вчитися в комфортній, безпечній обстановці та не пропускати зустрічі
Що необхідно для навчання?
Ноутбук або комп'ютер, під'єднаний до інтернету та оснащений необхідними гарнітурами (колонки або навушники, вебкамера, мікрофон).
Особливості курсу
- Авторська система освітніх курсів
- Унікальна команда тренерів
- Турбота й індивідуальний підхід
- Офіційний сертифікат
- Навчання в будь-який час і з будь-якого місця
- Комфортний освітній процес. Заняття проходять у мінігрупах
- Засновник - перша в Україні дистанційна школа "Оптіма"
- Корисні та потрібні знання. Максимум практики в кожному занятті
Викладачі курсу
Людмила Булигіна - Викладає курси "Старт програмування", "Старт програмування з мовою C/C++"
Подать заявку- C / C++
На курсі діти вивчатимуть дві різні мови програмування: C та C++. Вони навчаться основ алгоритмізації, програмування, напишуть свою першу програму і зрозуміють, чи варто їм розвиватися в цьому напрямі далі.
Програма курсу
Теми:
- Вступ до програмування C\C++
- Умови, логіка коду
- Робота з даними
- Блоки коду. Цикли. Алгоритми
- Створення ігрових стратегій
- Робота з бібліотеками
- Створення функцій
- Масиви. Робота із символами та словами
- Об'єктно-орієнтоване програмування
- Перший ООП проєкт. Розробка. Захист
Опис курсу
На курсі діти навчаться основ алгоритмізації та програмування, напишуть свою першу програму і зрозуміють, чи варто їм розвиватися в цьому напрямі далі. У навчальній програмі поєднані дві різні мови програмування - C та C++, і це дає комплексне розуміння принципів програмування цими та будь-якими іншими мовами.
- тривалість заняття - 60 хвилин
- інтенсивність - двічі на тиждень
- повна тривалість курсу - 3 місяці, 24 занять
- заняття проходять онлайн, що дає змогу вчитися в комфортній, безпечній обстановці та не пропускати зустрічі
Що необхідно для навчання?
Ноутбук або комп'ютер, під'єднаний до інтернету та оснащений необхідними гарнітурами (колонки або навушники, вебкамера, мікрофон).
Особливості курсу
- Авторська система освітніх курсів
- Унікальна команда тренерів
- Турбота й індивідуальний підхід
- Офіційний сертифікат
- Навчання в будь-який час і з будь-якого місця
- Комфортний освітній процес. Заняття проходять у мінігрупах
- Засновник - перша в Україні дистанційна школа "Оптіма"
- Корисні та потрібні знання. Максимум практики в кожному занятті
Викладачі курсу
Людмила Булигіна - Викладає курси "Старт програмування", "Старт програмування з мовою C/C++"
Подать заявку- C / C++
На цьому курсі учасники опанують основи алгоритмізації та програмування, напишуть власну програму й зрозуміють, чи бажають розвиватися в програмуванні й надалі. Заняття відбуваються на сучасній освітній платформі. Діти можуть самі обирати, в який час їм проходити завдання та скільки часу на це витратити. Навчанням керують досвідчені викладачі, які завжди допоможуть і нададуть відповідь на будь-яке питання.
Програма курсу
Теми:
- Абсолютні основи. Вступ до комп'ютерного програмування
- Розширений контроль потоку й типи даних. Оператори
- Функції
- Об'єкти як параметри. Ієрархії класів. Розробка проєктів
Процес навчання
- Ви вибираєте курс, який вас цікавить, і миттєво отримуєте доступ до всіх матеріалів курсу
- Проходите заняття й уроки за власним графіком. Курс складається з 68 уроків
- Кожне заняття містить відеоурок, презентацію, текстові матеріали, приклади коду, тести для самоаналізу та домашні завдання, які ви виконуєте самостійно
- Повна тривалість курсу - 6 місяців
- Один раз на тиждень учасники відвідують онлайн-консультацію й щодня можуть писати викладачу в текстовому чаті
- Тривалість заняття - 45 хвилин
- Інтенсивність 2-3 заняття на тиждень
- Повна тривалість курсу - 6 місяців, 68 занять на платформі, 24 онлайн-консультації
Після проходження курсу учасники матимуть
- Знання й навички алгоритмізації типових задач, втілення їх у програмний код і налагодження з використанням алгоритмічної мови програмування високого рівня С++
- Сертифікат Академії прикладної програмної інженерії Оптіма
Що необхідно для навчання?
Ноутбук або комп'ютер, під'єднаний до інтернету та оснащений необхідними гарнітурами (колонки або навушники, вебкамера, мікрофон).
Особливості курсу
- Авторська система освітніх курсів
- Унікальна команда тренерів
- Турбота й індивідуальний підхід
- Офіційний сертиікат
- Навчання в будь-який час і з будь-якого місця
- Комфортний освітній процес. Заняття проходять у мінігрупах
- Засновник - перша в Україні дистанційна школа "Оптіма"
- Корисні та потрібні знання. Максимум практики в кожному занятті
Викладачі курсу
Іван Нечипорук - Має досвід викладання HTML, CSS, JS, Front-end, Back-end та програмування мовами C++, Python
Подать заявкуЧитайте нас в Telegram, чтобы не пропустить анонсы новых курсов.
Отзывы о курсах

Курс C++ для військових технологій перевершив мої очікування та дав чудовий поштовх для розвитку — завдяки отриманим знанням мені вдалося успішно зробити реліз у своєму проєкті з розробки дрона. Викладачі на курсі просто прекрасні: вони мають реальний практичний досвід, детально відповідають на всі запитання та чудово володіють матеріалом. Хоча перші кілька занять здалися мені занадто базовими через наявний бекграунд, надалі інформації та практики було більш ніж достатньо. Наразі я продовжую працювати над розширенням свого проєкту, а згодом обов'язково повернуся до навчання на наступних курсах напряму MilTech

С++ це біль, якщо вчитися без нормального ментора. Я це зрозумів після двох місяців самостійних мук і пішов на курс C++ бейсік до Богдана Левунця в Гілель. Богдан суворий прагматик, але це саме те, що треба. Він так круто розклав роботу з пам'яттю та вказівниками, що в мене нарешті склався пазл. Завдання були хардкорні, сидів над ними ночами, зате тепер кодую без страху, що все впаде через segfault

Навчався я рік тому. Але що й рік пройде, що наперед два все буде одно таке й саме. Заняття по 3 години як не менш, що дуже стомлює. Дуже тяжко сприймати матеріал, нема відповіді де правильно , де неправильно. Просто 100 балів молодець. Якщо це для місце де ви будете перший раз кодувати, воно того не варте, ліпше просто самому навчитись, адже програмування - це самостійна частина. Ще мінус, шо курс може підійти , не підійти, потім складно вернути гроші. Програмування - це важко, перш ніж купляти курс, визначитись чи ви хочите цим займатися, адже не кожен буде дивитися 3 години , повністю зосереджений на екран і уважно слухаючи слова викладача. Ці курси назначені, якщо ти маєш базу конп'ютера, як не менш. Якщо перший раз чуєш програмування , того не варте, ліпше самому навчитись і створювати найлементарніші конструкції кодингу. Насамперед, не поспішайте купляти курси, якщо нема тяги до кодингу, вам курс не допоможе повернути тягу.

Курс із С++ та військових технологій однозначно заслуговує на 10 із 10, і найбільша заслуга в цьому — викладача Євгена. У людини реально «горять очі» своєю справою: він не просто сухо відчитував матеріал, а віддавався процесу повністю, не шкодував власного вільного часу на детальні відповіді та розбір наших питань. Такий підхід неймовірно заряджає і мотивує не забивати на навчання та сумлінно робити домашки. Інформації на курсі було дуже багато, і вона досить різнопланова (можливо, особисто мені хотілося б трохи більше саме бази С++ для ще міцнішого фундаменту), але загальне враження це абсолютно не псує. Це був надзвичайно приємний і корисний досвід, який я сміливо можу рекомендувати іншим.







