← Back to Robotics

Advanced C++ for Robotics

Real-time, safety-critical & production systems programming

Overview

Course overview and structure

Study Plan

8-week study plan with daily schedule

Week 1: Move Semantics, Value Categories & Compile-Time C++

The Problem These Solve

Week 2: Error Handling Without Exceptions & The C++ Memory Model

If you've written C++ in application-land, `try/catch` feels natural. In real-time and safety-critic

Week 3 — Real-Time Linux Programming

Real-time does **not** mean fast. It means **deterministic** — the system guarantees a

Week 4: Safety-Critical Patterns & JPL Rules

Safety-critical software is code where failure means loss of life, destruction of expensive hardware

Week 5: Production Build Systems, Testing & Tooling

The single most important shift in modern CMake (3.0+) is thinking in **targets** instead of

Week 6 — IPC, Serialization & Software-Defined Patterns

IPC lets separate processes exchange data without going through the kernel on every

Week 7: Undefined Behavior Deep Dive & Advanced Patterns

Undefined Behavior (UB) is not "implementation-defined" or "unspecified" — it means the C++ standard

Week 8 — Capstone: Mini Flight Software

This capstone project integrates every major concept from Weeks 1–7 into a

Module 11: C++20 Coroutines

A **coroutine** is a function that can **suspend** its execution and later **resume** from where it

Module 12: C++20 Ranges

The classic STL algorithm interface has a fundamental usability problem:

Module 13 — C++20 `std::format`

C has three string formatting approaches, each with serious trade-offs:

Module 14: Exception Safety Guarantees

Exception safety is about what guarantees your code provides when an exception

Module 15: PMR (Polymorphic Memory Resource) Allocators

In real-time robotics and embedded systems, **deterministic timing** is non-negotiable.

Module 16: Sanitizer Workshop — Practical Bug-Hunting with C++ Sanitizers

Sanitizers are compiler-based tools that instrument your code at compile time and detect

Module 17: Software-Defined Vehicles & Mission-Critical C++

A **Software-Defined Vehicle (SDV)** is a vehicle where software — not mechanical linkages or fixed

Module 18: Coding Standards, Profiling & System Tracing

Module 16 taught you **what** sanitizers catch and how to read their reports.