In recent years, flying robots such as miniature helicopters or quadrotors have received a large gain in popularity. Potential applications range from aerial filming over remote visual inspection to automatic 3D reconstruction of buildings. Navigating a quadrotor manually requires a skilled pilot and constant concentration. Therefore, there is a strong scientific interest to develop solutions that enable quadrotors to fly autonomously and without constant human supervision. This is a challenging research problem because the payload of a quadrotor is uttermost constrained and so both the quality of the onboard sensors and the available computing power is strongly limited. In this course, we will introduce the basic concepts for autonomous navigation for quadrotors including topics such as probabilistic state estimation, linear control, and path planning. You will learn how to infer the position of the quadrotor from its sensor readings, how to navigate along a series of waypoints, and how to plan collision free trajectories. The course consists of a series of weekly lecture videos that we be interleaved by interactive quizzes and hands-on programming tasks. The programming exercises will require you to write small code snippets in Python to make a quadrotor fly in simulation. This course is intended for graduate students in computer science, electrical engineering or mechanical engineering.