This Repository has been moved to GitLab. Find latest update there.
C++ for Programmers is designed for students who are familiar with a programming language and wish to learn C++. This respository focuses on 'how' as opposed to 'what'.
There are several types of projects in the course for the practice. These projects includes route planner, process monitor, cutomized smart pointers, traffic simulator etc. It mainly has 5 chapters and those are:
- C++ Foundations
- Object-Oriented Programming
- Memory Management
- Concurrency
- A Capstone Project
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.
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.
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!
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!
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!
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.
Put your C++ skills to use on a project of your own! You’ll utilize the core concepts from this Nanodegree program - object-oriented programming, memory management, and concurrency - to build your own application using C++.