Udacity Logo
Log InJoin for Free

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 December 30, 2023

Skills you'll learn:
Threading • Concurrent computing • Computer memory architecture • Dynamic memory allocation
Prerequisites:

No experience required

Courses In This Program

Course 1 3 hours

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 3 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 3 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

Photo of David Silver

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.

Photo of Stephen Welch

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.

Photo of Andreas Haja

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

Page 1 of 145

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

*Discount applies to the first 4 months of membership, after which plans are converted to month-to-month.

Your subscription also includes:

Get Started Today

C++

Month-To-Month


  • Unlimited access to our top-rated courses
  • Real-world projects
  • Personalized project reviews
  • Program certificates
  • Proven career outcomes

4 Months

Average time to complete a Nanodegree program

  • All the same great benefits in our month-to-month plan
  • Most cost-effective way to acquire a new set of skills
Discount applies to the first 4 months of membership, after which plans are converted to month-to-month.

Related Programs

Udacity Logo
Company
  • Facebook
  • Twitter
  • LinkedIn
  • Instagram

© 2011-2024 Udacity, Inc. "Nanodegree" is a registered trademark of Udacity. © 2011-2024 Udacity, Inc.
We use cookies and other data collection technologies to provide the best experience for our customers.