This document provides an agenda for a training course on programming embedded systems in C++. The agenda covers topics such as using C++ for embedded programming, migrating from C to C++, using C++ with a real-time operating system, and case studies. The document also discusses why C++ has not been more widely adopted for embedded programming, noting concerns about code bloat, performance and dynamic memory, as well as early failures of tools and programming practices. It provides a brief history of the development of C++ from languages like BCPL and B and outlines some limitations of C for embedded programming, such as its low-level capabilities that can make code dangerous and hard to maintain for large projects.