Lesson 1
C++
Nanodegree Program
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 video games.
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 video games.
Intermediate
3 months
Real-world Projects
Completion Certificate
Last Updated July 30, 2024
Skills you'll learn:
Prerequisites:
No experience required
Courses In This Program
Course 1 • 4 days
Welcome
Lesson 1
Welcome to the C++ Developer Nanodegree Program
Lesson 2
Introduction to C++
C++ is one of the most important programming languages in the world. It is particularly important for high-performance software.
Lesson 3
Workspaces
Lean about the in-browser coding environments that are available to you as you go through the Nanodegree program.
Lesson 4
Get Help with Your Account
What to do if you have questions about your account or general questions about the program.
Lesson 5
Getting Help
You are starting a challenging but rewarding journey! Take 5 minutes to read how to get help with projects and content.
Course 2 • 4 weeks
C++ Foundations
Learn how to develop, compile, and execute C++ programs as well as syntax, functions, containers, and how to link together multiple files.
Lesson 1
Welcome
Meet your instructors, David and Stephen, and hear from the inventor of C++, Bjarne Stroustrup.
Lesson 2
Introduction to the C++ Language
In this lesson, you will build on your previous programming experience to learn the basics of the C++ language.
Lesson 3
A* Search
In this lesson, you will learn about the A* search algorithm. Over a sequence of exercises, you will use your A* search implementation to plan a path through the obstacles in the ASCII board.
Lesson 4
Writing Multifile Programs
In this lesson, you will learn the syntax for C++ language features that you will need for the next steps in the course. This includes an overview of header files, pointers, build tools, and classes.
Lesson 5 • Project
Build an OpenStreetMap Route Planner
In this project 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.
Lesson 6
Course Outro
Course 3 • 3 weeks
Object-Oriented Programming
Lesson 1
Welcome
Lesson 2
Intro to OOP
In this lesson, you will explore some of the basic object oriented functionality of the C++ language.
Lesson 3
Advanced OOP
In this lesson, we'll get into some of the more advanced topics in object oriented programming, including inheritance, polymorphism and templates.
Lesson 4 • Project
Project: System Monitor
Time to build the project! In this lesson, you'll get the tools you need to build the project for this course, a system monitor application similar to htop!
Course 4 • 2 weeks
Memory Management
Lesson 1
Introduction
Lesson 2
Overview of Memory Types
This lesson covers basic concepts such as cache, virtual memory, and the structure of memory addresses. In addition, it is demonstrated how the debugger can be used to read data from memory.
Lesson 3
Variables and Memory
In this lesson the process memory model is introduced, which contains the two fundamental memory areas heap and stack, which play an important role in C++.
Lesson 4
Dynamic Memory Allocation (The Heap)
This lesson introduces dynamic memory allocation on the heap. The commands malloc and free as well as new and delete are introduced for this purpose.
Lesson 5
Resource Copying Policies
This section describes how to customize resource copying using the Rule of Three. Also, the Rule of Five is introduced, which helps develop a thorough memory management strategy in your code.
Lesson 6
Smart Pointers
In this lesson the three types of smart pointers in C++ are presented and compared. In addition, it is shown how to transfer ownership from one program part to another using copy and move semantics.
Lesson 7 • Project
Memory Management Chatbot
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 modern memory management in mind.
Taught By The Best
David Silver
Staff Software Engineer at Kodiak Robotics
David works on Self-driving trucks at Kodiak. As a Staff Software Engineer, David writes planning, control, simulation and mapping software for self-driving trucks.
Stephen Welch
Instructor
Stephen is a Content Developer at Udacity and has worked on the C++ and Self-Driving Car Engineer Nanodegree programs. He started teaching and coding while completing a Ph.D. in mathematics, and has been passionate about engineering education ever since.
Andreas Haja
Instructor
Andreas Haja is an engineer, educator, and autonomous vehicle enthusiast. Andreas now works as an engineering professor in Germany. Previously, he developed computer vision algorithms and autonomous vehicle prototypes using C++.
Ratings & Reviews
Average Rating: 4.6 Stars
729 Reviews
Abdul J.
March 3, 2023
This is the best program on the internet, It is a completely hands-on course. I love its projects and review processes.
Ahmed T.
February 27, 2023
perfect c++ content and practical projects
YUE Y.
December 30, 2022
Really appreciate the review the tutor wrote for my, which is personalized and gives me correct guidance on my coding style.
TJ L.
December 19, 2022
Good, but this class has little to do with the fieldwork
Harsh V.
December 7, 2022
Amazing content !! -- some from Bjarne himself.
The Udacity Difference
Combine technology training for employees with industry experts, mentors, and projects, for critical thinking that pushes innovation. Our proven upskilling system goes after success—relentlessly.
Demonstrate proficiency with practical projects
Projects are based on real-world scenarios and challenges, allowing you to apply the skills you learn to practical situations, while giving you real hands-on experience.
Gain proven experience
Retain knowledge longer
Apply new skills immediately
Top-tier services to ensure learner success
Reviewers provide timely and constructive feedback on your project submissions, highlighting areas of improvement and offering practical tips to enhance your work.
Get help from subject matter experts
Learn industry best practices
Gain valuable insights and improve your skills
Unlock access to C++ and the rest of our best-in-class catalog
-
Unlimited access to our top-rated courses
-
Real-world projects
-
Personalized project reviews
-
Program certificates
-
Proven career outcomes
Full Catalog Access
One subscription opens up this course and our entire catalog of projects and skills.
Month-To-Month
4 Months
*Average time to complete a Nanodegree program
Your subscription also includes:
Your subscription also includes:
(85)
3 months
, Intermediate
(93)
2 months
, Intermediate
(269)
3 months
, Intermediate
(363)
3 months
, Intermediate
(75)
3 months
, Intermediate
(449)
3 months
, Intermediate
(498)
2 months
, Intermediate
(119)
2 months
, Intermediate
2 months
, Beginner
1 month
, Beginner
(1309)
5 months
, Beginner
(225)
3 months
, Intermediate
(807)
2 months
, Beginner
(450)
2 months
, Advanced
3 weeks
, Beginner
(47)
3 months
, Intermediate