Overview
This course provides comprehensive training on Modern C++ and Python Programming, focusing on their applications in embedded systems and automotive development. Participants will gain practical knowledge of Modern C++ features, including memory management, template metaprogramming, and standard template libraries. The Python module covers essential programming concepts, data structures, and mathematical operations relevant to autonomous driving applications. With hands-on exercises, learners will be well-equipped to apply these skills in real-world embedded systems development.
Objectives
By the end of this course, leaner will be able to:
-
Understand and apply Modern C++ features from C++11 to C++20.
-
Effectively manage memory using smart pointers in C++.
-
Utilize template metaprogramming techniques for optimized code.
-
Implement STL containers and algorithms for embedded applications.
-
Perform precise time management using std::chrono in C++.
-
Develop Python applications for autonomous driving scenarios.
-
Work with Python libraries for mathematical computations.
Prerequisites
-
Basic knowledge of C/C++
-
Understanding of Object-Oriented Programming (OOP) concepts
Course Outline
-
Overview of C++11/14/17/20 features
-
Auto keyword, range-based for loops, uniform initialization
-
Constexpr and Consteval for compile-time evaluation
-
No except specifier for exception safety
-
Binary literals, digit separators, and structured bindings
-
Smart pointers: unique_ptr, shared_ptr, and weak_ptr
-
Resource management using smart pointers
-
Function and class templates
-
Template specialization and partial specialization
-
Compile-time computation with constexpr functions
-
Template metaprogramming techniques
-
Type traits and concepts with C++20
-
Compile-time asserts and static polymorphism
-
STL containers: array, vector, deque, list
-
Choosing containers for embedded constraints
-
STL algorithms: sort, find, transform
-
Using iterators and C++20 ranges
-
Memory management with custom allocators
-
Time management using std::chrono
-
Setting up the Python environment
-
Basic syntax, variables, and data types
-
Operators and control flow statements
-
String manipulation and data processing
-
Practical exercises on problem-solving using Python
-
Lists, tuples, dictionaries, and sets
-
List comprehensions and their applications
-
Iterating through data structures
-
Data manipulation tasks using Python
-
Defining and using functions
-
Function arguments and return values
-
Understanding scope and variable lifetime
-
Creating and using modules and packages
-
Importing external libraries for development
-
Introduction to NumPy for numerical computing
-
Array creation and manipulation
-
Matrix operations and linear algebra
-
Vector operations and calculus
-
Random number generation and probability distributions
-
Practical applications for autonomous driving scenarios