Recommend this page


Learn a high-performance programming language


Learn C++, a high-performance programming language used in the world’s most exciting engineering jobs -- from self-driving cars and robotics, to web browsers, media platforms, servers, and even video games. 

Educational Objectives

Get hands-on experience by coding five real-world projects.

Learn to build a route planner using OpenStreetMap data, write a process monitor for your computer, and implement your own smart pointers.

Finally, showcase all your newfound skills by building a multithreaded traffic simulator and coding your own C++ application.



C++ Foundations 

Learn basic C++ syntax, functions, containers, and compiling and linking with multiple files.

Use OpenStreetMap and the 2D visualization library IO2D to build a route planner that displays a path between two points on a map. 

Project 1: 

You’ll learn about OpenStreetMap data and look at IO2D map display code.

You will extend the IO2D map display code to use A*, so your program will be able to find a path between two points on the map.

When the project is finished, you will be able to select starting and ending areas on a city map, and your program will find a path along the city streets to connect the start and end.


Course 2

Object-Oriented Programming

Explore Object-Oriented Programming (OOP) in C++ with examples and exercises covering the essentials of OOP like abstraction and inheritance all the way through to advanced topics like polymorphism and templates.

In the end, you’ll build a Linux system monitor application to demonstrate C++ OOP in action!

Project 2: 

In this project, you’ll get a chance to put C++ OOP into action!

You’ll write a Linux system monitor with similar functionality to the widely used htop application.

This will not only provide you more familiarity the Linux operating system, but also give you insights into how a collection of objects can function together in C++ to form an exciting and complete application!


Course 3

Memory Management

Discover the power of memory management in C++ by diving deep into stack vs. heap, pointers, references, new, delete, smart pointers, and much more.

By the end, you’ll be ready to work on a chatbot using modern C++ memory management techniques!

Project 3: 

The ChatBot project creates a dialogue where users can ask questions about some aspects of memory management in C++.

Your task will be to optimize the project with memory management in mind using modern concepts such as smart pointers and move semantics.


Course 4


Concurrent programming runs multiple threads of execution in parallel.

Concurrency is an advanced programming technique that, when properly implemented, can dramatically accelerate your C++ programs.

Project 4: 

Build a multithreaded traffic simulator using a real urban map.

Run each vehicle on a separate thread, and manage intersections to facilitate traffic flow and avoid collisions using state-of-the-art concurrency concepts.

Categories: Programming