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!
Elementary algebra
Intermediate Python
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
Get Help with Your Account
What to do if you have questions about your account or general questions about the program.
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.
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.
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.
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++.
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!
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.
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.
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.
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
Optional Courses
These Career Services will ensure you make meaningful connections with industry professionals to accelerate your career growth - whether looking for a job or opportunities to collaborate with your peers. Unlike your Nanodegree projects, you do not need to meet specifications on these Services to progress in your program. Submit these Career Services once, and get honest, personalized feedback and next steps from Udacity Career Coaches!
Lesson 1
Industry Research
You're building your online presence. Now learn how to share your story, understand the tech landscape better, and meet industry professionals.
Lesson 2 • Project
Take 30 Min to Improve your LinkedIn
Find your next job or connect with industry peers on LinkedIn. Ensure your profile attracts relevant leads that will grow your professional network.
Lesson 3 • Project
Optimize Your GitHub Profile
Other professionals are collaborating on GitHub and growing their network. Submit your profile to ensure your profile is on par with leaders in your field.