Online Course

Advanced Modern C++ for Robotics

Master the basics of C++ for robot programming

Course overview

Do you want to become a ROS Developer? If the answer is yes, then learning C++ is mandatory for you.

C++ is one of the most popular programming languages for robots, especially when working with industrial or non-educational robots.

In the C++ for Robotics course, you will master essential C++ knowledge to get started with ROS smoothly.

What You Will Learn


How to build C++ programs


How to create a library


Understand the Standard Template Library (STL) and how it can help you create better code


How to use C++ classes to optimize your code




Function overriding and function overloading


How to use pointers and references for optimal memory management


Templates and Lambda expressions


How to use threads to parallelize tasks in C++


How to deal with unexpected or exceptional errors in your code

100% Online

No ROS setup is required. Everything is online.

Intermediate Level


Approx. 40 hours to complete



Simulated Robot Used

TurtleBot 2 & Hexapod Robot

Throughout the course, you’ll use two simulated robots to learn and practice every topic in C++


Unit 1: Build Tools

In this unit, you will learn about the build tools. Specifically, you will learn about:

  • Clang as a compiler and understand the compilation process in detail.
  • Create a library from scratch and apply it to a simulated robot.
  • Understand linking and its significance in the compilation process.
  • The need of a build system.


Unit 2: The STL Library

In this unit, we will understand the role of STL library in writing computer programs. We will discuss, understand and put to use the following concepts:

  1. C++ Containers
    • Sequence Containers
    • Associative Containers
  • std::array
  • std::vector
  • std::deque
  • std::list & std::forward_list
  • std::set & std::multiset
  • std::map && std::unordered_map

      2. Iterators

Unit 3: Modern C++ Classes

In this unit we will understand and implement the following content:

  • Classes and how to access class members.
  • Role of public, private and protected keywords
  • Constructors and Destructors
  • Structures
  • Non-static data member initializers
  • this pointer
  • Constant member functions
  • Static Class members
  • Copy Constructor
  • Delegating Constructor
  • Default and deleted functions
  • Move semantics
Unit 4: Object Oriented Programming (OOP)

In this unit, you will learn and implement the concepts as we at The Construct believe in learning by practice. Make sure you go through demos and exercise thoroughly, in case of doubts or guidance you can ask for help on our forums. So, let me quickly brief you with what topics we are about to learn:

  • Inheritance
  • Composition
  • Function Overriding and function overloading
  • Virtual Keyword
  • Abstract Classes
  • Interfaces
  • Polymorphism
  • TypeCasting


Unit 5: Pointers and References

In this unit, you will master everything about pointers that you need to know to program robots with ROS.

This chapter is essential. You need to master it because high level pointers are massively used in ROS. Please pay special attention to this chapter.



Unit 6: Templates and Lambda expressions

In this unit we will learn the basics of:

  • Template Functions
  • Template Classes
  • Type Deduction
  • Template Specialization
  • Basics of Lambda Functions



Unit 7: Concurrency ( threads in C++)

In this unit, you will learn how to create threads in your application to parallelize different computations at the same time as a single program.



Unit 8: Exception Handling

In this unit, we will learn about exception handling. As the name suggests, we will be tackling unexpected or exceptional errors. This means that code that does not have any errors during compile-time can still have run-time errors when we execute the code. So to handle such types of runtime errors, we will study and implement exception handling. We will go through the following concepts to understand the topic:

  • Throwing an exception from a function
  • Handling Multiple Exceptions
  • User-defined exception classes
  • Class level exceptions
  • std::exception class hierarchy



What our students think

I have had a great experience with The Construct. I believe much of what I have learned thus far regarding ROS has been from these courses and the concepts behind the implementation of ROS have been helpful even outside of ROS applications.

Sam Daly

I’m very happy about working with The Constructsim, it is affordable, it is very comfortable for me, and the tools in the GUI are very useful

Bladimir Bacca Cortes

I really liked the learning approach based on projects and practical examples and I found the final project with an actual robot to be very useful and challenging.

Guillermo Robledo

Course creators

Ricardo Téllez

Ricardo Téllez

CEO @ The Construct | Teacher of Robotics at La Salle University and Universitat Politècnica de Catalunya

Miguel Angel

Miguel Angel

Head of Research @ The Construct | Creator of over 10 ROS AI courses | Author of ROS IN 5 DAYS book collection



Robotic Software Engineer @ The Construct / Creator of ROS courses / Instructor for the ROS2 live training program

Rupali Garewal

Rupali Garewal

A passionate robotics engineer who loves to teach.  He builds autonomous mobile robots and devices to aid the physically challenged

Related courses

Discover more Robotics Courses

Top universities choose The Construct for Campus to teach ROS & Robotics.

Start Learning Now.


Pin It on Pinterest