## Class Summary

Learn how to program all the major systems of a robotic car from the leader of Google and Stanford’s autonomous driving teams. This class will teach you basic methods in Artificial Intelligence, including: probabilistic inference, planning and search, localization, tracking and control, all with a focus on robotics. Extensive programming examples and assignments will apply these methods in the context of building self-driving cars.

## What Should I Know?

You should either already know Python, or have enough experience with another language to be confident you can pick up what you need on your own. Fortunately, Python was built to be easy to learn, read, and use. If you already know another programming language, you’ll be coding in Python in less than an hour. Additionally, knowledge of probability and linear algebra will be helpful.

## What Will I Learn?

This course will cover probabilistic inference, planning and search, localization, tracking and control, all with a focus on robotics.

## Syllabus

### Lesson 1: Basics of probability

Monte-Carlo localization

### Lesson 2: Gaussians and continuous probability

Tracking other cars with Kalman filters

### Lesson 3: Car localization with particle filters

### Lesson 4: Planning and search

Determining where to drive with A* search

### Lesson 5: Controls

Controlling steering and speeds with PID

### Lesson 6: Putting it all together

Programming a self-driving car

**Python Review**

Python for Programmers Introduction to Programs Data Types and Variables Python Lists For Loops in Python While Loops in Python Writing a Simple Factorial Program Fun with Strings

**Probability**

Basic Probability Probability (Part 6) [Conditional Probability] Probability (Part 7) [Bayes’ Rule] Probability (Part 8) [More Bayes’ Rule] Introduction to Random Variables Probability Density Functions Expected Value: E(X)

**Linear Algebra**

Introduction to Matrices Matrix Multiplication (Part 1) Matrix Multiplication (Part 2) Inverse Matrix (Part 1) Inverting Matrices (Part 2) Inverting Matrices (Part 3) Matrices to Solve a System of Equations Singular Matrices Introduction to Vectors Vector Dot Product and Vector Length Defining the Angle Between Vectors Cross Product Introduction Matrix Vector Products Linear Transformations as Matrix Vector Products Linear Transformation Examples: Scaling and Reflections Linear Transformation Examples: Rotations in R2 Introduction to Projections Exploring the Solution Set of Ax = b Transpose of a Matrix 3×3 Determinant Introduction to Eigenvalues and Eigenvectors