# 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

Real-world Projects

Completion Certificate

Last Updated June 18, 2024

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

Lesson 3

#### Getting Help

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

Lesson 4

#### 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 5

#### 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 1 week

### 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 1 month

### 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 1 week

### 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++.

## Taught By The Best

### Andy Brown

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.

### 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.

### Anthony Navarro

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.

### 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.

### 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.

### Cezanne Camacho

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.

### 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.

## Ratings & Reviews

Average Rating: 4.6 Stars

363 Reviews

Page 1 of 72

## 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 .css-m82pq9{font-weight:500;color:var(--chakra-colors-accent-lime);}Introduction to Self-Driving Cars and the rest of our best-in-class catalog

• 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.

### 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.

(175)

3 months

(115)

3 months

(729)

3 months

, Intermediate

(450)

3 months

4 weeks

(34)

5 months

(328)

2 months

(256)

2 months

, Intermediate

(909)

4 months

, Intermediate

4 weeks

, Beginner

(235)

3 months

, Intermediate

(496)

5 months

4 weeks

, Beginner

(498)

3 months

, Intermediate

(275)

2 months

(87)

4 months

## Get Started Today

Introduction to Self-Driving Cars

## Month-To-Month

• 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.

(175)

3 months

(115)

3 months

(729)

3 months

, Intermediate

(450)

3 months

4 weeks

(34)

5 months

(328)

2 months

(256)

2 months

, Intermediate

(909)

4 months

, Intermediate

4 weeks

, Beginner

(235)

3 months

, Intermediate

(496)

5 months

4 weeks

, Beginner

(498)

3 months

, Intermediate

(275)

2 months