
Andy Brown
Curriculum Lead
Turn complex math and code into motion. Combine C++, Python, and machine learning to teach cars how to see, decide, and navigate the world autonomously.

Subscription · Monthly
66 skills
6 prerequisites
Prior to enrolling, you should have the following knowledge:
You will also need to be able to communicate fluently and professionally in written and spoken English.
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.
1 hourWelcome 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!
You are starting a challenging but rewarding journey! Take 5 minutes to read how to get help with projects and content.
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!
While you wait for your classroom to open, refresh your math and programming skills with these helpful resources.
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.
15 hoursA brief introduction to Bayesian Thinking from Sebastian.
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.
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.
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).
Your chance to learn basic Python syntax while applying what you learned about probability and conditional probability in the last two lessons.
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.
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.
Learn how a robot represents it's belief about uncertain quantities using something known as a **probability distribution**.
Apply what you've learned in this course by programming and visualizing probability 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.
Sebastian Thrun will give you an overview of the theory behind localization!
Write the `sense` and `move` functions for a 2 dimensional histogram filter in Python.
This course will focus on two tools which are vital to self-driving car engineers: object oriented programming and linear algebra.
10 hoursAn introduction to the amazing tools and algorithms you'll learn in this lesson.
Learn the intuition behind the Kalman Filter, a vehicle tracking algorithm and implement a one-dimensional tracker of your own.
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!
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.
Practice using your object oriented programming and matrix math skills by filling out the methods in a partially-completed `Matrix` class.
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++.
12 hoursThe differences between C++ and Python and how to write C++ code.
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.
Learn how to write C++ code on your own computer and compile it into a executable program without running into too many compilation errors.
Learn the syntax of C++ object oriented programming as well as some of the additional OOP features provided by the language.
In this lesson, we'll compare the execution times of C++ and Python programs.
Apply your knowledge of C++ syntax by translating the Histogram Filter code from the first course into 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.
10 hoursOptimizing 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.
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.
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!
Algorithmic thinking is a skill you’ll refine throughout your career. In this course you’ll focus on frequently used data structures and algorithms.
8 hoursA systematic way of approaching and breaking down problems.
The list isn't the only structure for storing data! In this lesson you'll learn about sets, dictionaries and other Python data structures.
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.
In this lesson you will actually implement a Google-maps style routing algorithm using A star search.
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.
9 hoursGain a conceptual understanding of the *derivative* and basic calculus by plotting points and finding slopes.
Learn how **integrals** can be used to calculate accumulated changes by finding the area under a curve.
Learn the basics of trigonometry and how to decompose a self driving car's motion into X and Y components.
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.
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.
9 hoursStudents 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!
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.
Congratulations! You're ready to graduate. Learn how you can continue your Udacity journey by enrolling in a Career-Ready Nanodegree Program
15 minutesCongratulations! You've reached the end of the Intro to Self-Driving Cars Nanodegree program!
Enroll in a Career-Ready Nanodegree program
7 instructors
Unlike typical professors, our instructors come from Fortune 500 and Global 2000 companies and have demonstrated leadership and expertise in their professions:

Andy Brown
Curriculum Lead

Andrew Paster
Instructor

Anthony Navarro
Product Lead

Tarin Ziyaee
Voyage, Director of AI

Elecia White
Engineer, Author, Host

Cezanne Camacho
Curriculum Lead

Sebastian Thrun
Founder and Executive Chairman, Udacity

Andy Brown
Curriculum Lead

Andrew Paster
Instructor

Anthony Navarro
Product Lead

Tarin Ziyaee
Voyage, Director of AI

Elecia White
Engineer, Author, Host

Cezanne Camacho
Curriculum Lead

Sebastian Thrun
Founder and Executive Chairman, Udacity
5
— Arpat R.As a Ph.D. ECE student focused on algorithms, I was looking for a program that bridges theory and practical implementation. Udacity has helped me transition from abstract concepts to hands-on software development in C++ and Python. The projects provide valuable real-world programming experience. While a few project instructions could be clearer, the overall learning experience has been excellent. I highly recommend Udacity to engineers and students who want to strengthen their practical programming skills.As a Ph.D. ECE student focused on algorithms, I was looking for a program that bridges theory and practical implementation. Udacity has helped me transition from abstract concepts to hands-on software development in C++ and Python. The projects provide valuable real-world programming experience. While a few project instructions could be clearer, the overall learning experience has been excellent. I highly recommend Udacity to engineers and students who want to strengthen their practical programming skills.
Jul 22, 2026

5
— DO Tien AnhI really love the way this program introduce these basics concepts about computer vision through the lesson and challenge me with the projectI really love the way this program introduce these basics concepts about computer vision through the lesson and challenge me with the project
Jun 6, 2026

5
— Dhanraj Pagidipitta..........................................
Dec 16, 2025

4
— AymanVery informativeVery informative
Mar 27, 2025

5
— SUNIL J.A very in-depth and challenging course. A must have for anyone aspiring to be a Self-driving Car engineer.A very in-depth and challenging course. A must have for anyone aspiring to be a Self-driving Car engineer.
Feb 10, 2025

Showing 5 out of 397 Reviews

Subscription · Monthly