Udacity part of Accenture logo

Introduction to Self-Driving Cars

Nanodegree Program

Learn the essentials of building a self-driving car, including probability, C++, machine learning, and linear algebra.

Learn the essentials of building a self-driving car, including probability, C++, machine learning, and linear algebra.

  • Intermediate

  • 3 months

  • Last Updated December 18, 2024

Skills you'll learn:

Probability distributionPython syntax

Prerequisites:

Basic C++Elementary algebraBasic calculusIntermediate PythonDeep learning

Intermediate

3 months

Last Updated December 18, 2024

Skills you'll learn:

Probability distribution • Python syntax • Object localization • Matrix operations

Prerequisites:

Basic C++ • Elementary algebra • Basic calculus

Courses In This Program

Course 1 1 hour

Orientation

Welcome to the Intro to Self-Driving Cars Nanodegree program! In this section you'll get a sneak peak of the classroom, meet the team, and learn about the services provided. Then you'll take a readiness assessment and check out some learning resources to help you make the most out of your experience.

Lesson 1

Introduction

Welcome to the Intro to Self-Driving Cars Nanodegree program! We are excited to have you and hope you are looking forward to learning about this game-changing field!

Lesson 2

Getting Help

You are starting a challenging but rewarding journey! Take 5 minutes to read how to get help with projects and content.

Lesson 3

The Carla Chronicles: Back on Track

Work through the readiness assessment with Carla and her friends to make sure you are ready to begin your own personal adventure with self-driving cars!

Lesson 4

Get Ready - Intro to Self-Driving Cars

While you wait for your classroom to open, refresh your math and programming skills with these helpful resources.

Course 2 3 weeks

Bayesian Thinking

Learn the framework that underlies a self-driving car’s understanding of itself and the world around it, and to see the world the way a self-driving car does.

Lesson 1

Introduction

A brief introduction to Bayesian Thinking from Sebastian.

Lesson 2 • Project

Joy Ride

A quick introduction to controlling a (simulated) car with code. Parts 1 and 2 will show you how to control gas and steering and in part 3 you'll program a car to parallel park.

Lesson 3

Probability

Learn the basics of probability - the language of robotics. This lesson will focus on the math. In later lessons you'll apply this math in Python code.

Lesson 4

Conditional Probability

In order to infer meaning from noisy sensor measurements, a self driving car needs to use the math of Conditional Probability. Learn this math from Sebastian (and then apply it in the next lesson).

Lesson 5

Programming Probability in Python

Your chance to learn basic Python syntax while applying what you learned about probability and conditional probability in the last two lessons.

Lesson 6

Bayes' Rule

Learn about Bayes' Rule from Sebastian and get your first peek at how a self driving car uses Bayes' Rule to understand where in the world it is.

Lesson 7

Programming Bayes' Rule and World Representations

In this lesson, you can expect a lot of hands-on practice programming Bayesian probability in Python, and representing a 2D world that you'll need to localize a car.

Lesson 8

Probability Distributions

Learn how a robot represents it's belief about uncertain quantities using something known as a **probability distribution**.

Lesson 9

Programming Probability Distributions

Apply what you've learned in this course by programming and visualizing probability distributions.

Lesson 10

Gaussian Distributions

You will work with a specific continuous probability distribution called the Gaussian distribution. A Gaussian distribution helps describe uncertainty in sensor measurements and a vehicle's location.

Lesson 11

Robot Localization

Sebastian Thrun will give you an overview of the theory behind localization!

Lesson 12

Histogram Filter in Python

Write the `sense` and `move` functions for a 2 dimensional histogram filter in Python.

Course 3 2 weeks

Working with Matrices

This course will focus on two tools which are vital to self-driving car engineers: object oriented programming and linear algebra.

Lesson 1

Section Overview

An introduction to the amazing tools and algorithms you'll learn in this lesson.

Lesson 2

Introduction to Kalman Filters

Learn the intuition behind the Kalman Filter, a vehicle tracking algorithm and implement a one-dimensional tracker of your own.

Lesson 3

State and Object-Oriented Programming

In this lesson, students will learn about representing the state of a car in programming as classes and objects and mathematically as vectors that can be changed with linear algebra!

Lesson 4

Matrices and Transformation of State

Linear Algebra is a rich branch of math and a useful tool. In this lesson you'll learn about the matrix operations that underly multidimensional Kalman Filters.

Lesson 5 • Project

Implement Matrix Class

Practice using your object oriented programming and matrix math skills by filling out the methods in a partially-completed `Matrix` class.

Course 4 2 weeks

C++ Basics

This course is the first step in a rewarding journey towards C++ expertise. The goal is translation: get a program written in Python, and translate it into C++.

Lesson 1

C++ Getting Started

The differences between C++ and Python and how to write C++ code.

Lesson 2

C++ Vectors

To program matrix algebra operations and translate your Python code, you will need to use C++ Vectors. These vectors are similar to Python lists, but the syntax can be somewhat tricky.

Lesson 3

Practical C++

Learn how to write C++ code on your own computer and compile it into a executable program without running into too many compilation errors.

Lesson 4

C++ Object Oriented Programming

Learn the syntax of C++ object oriented programming as well as some of the additional OOP features provided by the language.

Lesson 5

Python and C++ Speed

In this lesson, we'll compare the execution times of C++ and Python programs.

Lesson 6 • Project

Translate Python to C++

Apply your knowledge of C++ syntax by translating the Histogram Filter code from the first course into C++.

Course 5 2 weeks

Performance Programming in C++

Explore how to write good code that runs correctly. We’ll focus primarily on low level features of C++, but we’ll discuss other best practices as well.

Lesson 1

C++ Intro to Optimization

Optimizing C++ involves understanding how a computer actually runs your programs. You'll learn how C++ uses the CPU and RAM to execute your code and get a sense for what can slow things down.

Lesson 2

C++ Optimization Practice

Now you understand how C++ programs execute. It's time to learn specific optimization techniques and put them into practice. This lesson will prepare you for the lesson's code optimization project.

Lesson 3

Project: Optimize Histogram Filter

Get ready to optimize some C++ code. You are provided with a working 2-dimensional histogram filter; your job is to get the histogram filter code to run faster!

Course 6 2 weeks

Navigating Data Structures

Algorithmic thinking is a skill you’ll refine throughout your career. In this course you’ll focus on frequently used data structures and algorithms.

Lesson 1

How to Solve Problems

A systematic way of approaching and breaking down problems.

Lesson 2

Data Structures

The list isn't the only structure for storing data! In this lesson you'll learn about sets, dictionaries and other Python data structures.

Lesson 3

The Search Problem

When programming a car to drive itself you run into problems. Many of these are "search" problems. In this lesson you'll learn what search problems are and several algorithms for solving them.

Lesson 4 • Project

Implement Route Planner

In this lesson you will actually implement a Google-maps style routing algorithm using A star search.

Course 7 2 weeks

Vehicle Motion and Control

This course is a crash course in two branches of mathematics which are crucial to self driving cars: calculus and trigonometry. You will learn how a self driving car uses various motion sensors to help it understand its own motion. At the end of this course you will use raw sensor data (which give information about distance driven, acceleration, and rotation rates) to reconstruct a vehicle's trajectory through space.

Lesson 1

Odometers, Speedometers and Derivatives

Gain a conceptual understanding of the *derivative* and basic calculus by plotting points and finding slopes.

Lesson 2

Accelerometers, Rate Gyros and Integrals

Learn how **integrals** can be used to calculate accumulated changes by finding the area under a curve.

Lesson 3

Two Dimensional Robot Motion and Trigonometry

Learn the basics of trigonometry and how to decompose a self driving car's motion into X and Y components.

Lesson 4

Reconstructing Trajectories from Sensor Data

Use raw acceleration, displacement, and angular rotation data from a vehicle's accelerometer, odometer, and rate gyros to reconstruct a vehicle's X, Y trajectory.

Course 8 2 weeks

Computer Vision and Machine Learning

In this course you’ll learn how a computer sees an image, and how we can use machine learning to teach a computer to identify images programmatically.

Lesson 1

Computer Vision and Classification

Students will learn how to program an image classifier using computer vision techniques. Along the way you'll learn about machine learning, color transformation, feature extraction, and more!

Lesson 2 • Project

Traffic Light Classifier

Build a classification pipeline that takes in an image of a traffic and outputs a label that classifies the image as a: red, green, or yellow traffic light.

Course 9 15 minutes

Graduation! - Intro to Self-Driving Cars

Congratulations! You're ready to graduate. Learn how you can continue your Udacity journey by enrolling in a Career-Ready Nanodegree Program

Lesson 1

Congratulations! You've finished!

Congratulations! You've reached the end of the Intro to Self-Driving Cars Nanodegree program!

Lesson 2

Your next Nanodegree

Enroll in a Career-Ready Nanodegree program

Taught By The Best

Photo of Andy Brown

Andy Brown

Curriculum Lead

Andy has a bachelor's degree in physics from MIT, and taught himself to program after college (mostly with Udacity courses). He has been helping Udacity make incredible educational experiences since the early days of the company.

Photo of Andrew Paster

Andrew Paster

Instructor

Andrew has an engineering degree from Yale, and has used his data science skills to build a jewelry business from the ground up. He has additionally created courses for Udacity's Self-Driving Car Engineer Nanodegree program.

Photo of Anthony Navarro

Anthony Navarro

Product Lead

Anthony is a US Army combat veteran with an M.S. in Computer Engineering from Colorado State University. Prior to being a Product Lead at Udacity, he was a Senior Software Engineer at Lockheed Martin in their Autonomous Systems R&D division.

Photo of Tarin Ziyaee

Tarin Ziyaee

Voyage, Director of AI

As the Director of Artificial Intelligence at Voyage Auto, Tarin works to deliver low-cost, self-driving taxis. He brings a total of 14 years experience in perception and deep neural networks working with companies such as Apple.

Photo of Elecia White

Elecia White

Engineer, Author, Host

Elecia is an embedded software engineer at Logical Elegance, Inc, the author of O'Reilly's Making Embedded Systems, and host of the Embedded.fm podcast. She enjoys sharing her enthusiasm for engineering and devices.

Photo of Cezanne Camacho

Cezanne Camacho

Curriculum Lead

Cezanne is an expert in computer vision with a Masters in Electrical Engineering from Stanford University. As a former researcher in genomics and biomedical imaging, she's applied computer vision and deep learning to medical diagnostic applications.

Photo of Sebastian Thrun

Sebastian Thrun

Founder and Executive Chairman, Udacity

As the Founder and Chairman of Udacity, Sebastian's mission is to democratize education by providing lifelong learning to millions of students worldwide. He is also the founder of Google X, where he led projects including the Self-Driving Car, Google Glass, and more.

Student Reviews

Average Rating: 4.6 Stars

393 Reviews

Mostafa B.

January 3, 2023

Well, it is not of hard challenges up till now, but as i am a beginner my progress seems great. Till now the scientific information still less than expected but i believe it will meet my expectations the more i dig deep into the program

David P.

October 5, 2022

So far so good

Ronen A.

July 19, 2022

I'm excited to have completed my first project for this nano degree.

Maor A.

July 18, 2022

I loved it very much!

Marco A.

April 19, 2022

I'm loving it!

Page 1 of 79

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

Enroll in Introduction to Self-Driving Cars. Choose the plan that works for you

All Access monthly

  • Cancel Anytime

  • Unlimited access to our top-rated courses

  • Hands-on projects with expert feedback

  • Personalized career coaching and interview prep

  • Program Certificates

Best Value

All Access bundle1

  • All the same great benefits as our monthly plan

  • The most cost-effective way to develop the skills you want

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

Your subscription also includes:

C++

(809)

3 months

Intermediate

Udacity Accenture logo

Company

  • Facebook
  • Twitter
  • LinkedIn
  • Instagram

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