ENPM702 — C++ for Robotics

Course Description

ENPM702 is an applied course on modern C++ for robotics. Through a blend of theory and hands-on projects, you will build a strong foundation in C++ and learn how to design robust, efficient software for real robotic systems. Early weeks focus on the language core (syntax, data types, control flow, functions) and the Standard Template Library (STL) for practical algorithms and containers. You will then progress to modern memory management (smart pointers and RAII), function design (overloading, references, lambdas), and clean build hygiene. In the latter part of the course, you apply these skills to larger, scalable software patterns common in robotics and get an introduction to ROS 2 to prepare for advanced robotics coursework and projects.

Learning Outcomes (high level)

  • Write clear, safe, and efficient C++ using RAII and smart pointers.

  • Use STL containers/algorithms and iterators to implement practical solutions.

  • Design modular functions and interfaces (overloading, pass-by-reference, const-correctness, lambdas).

  • Apply modern C++ techniques to robotics problems (kinematics, control, trajectory data structures).

  • Build maintainable codebases and prepare for ROS-based development.