• Course Review: Self-Driving Cars Specialization From the University of Toronto

    Recently, Coursera opened a self-driving cars specialization from the University of Toronto, an institution well known for robotics research and autonomous driving. The specialization is intended for engineers that want to kick-start their career in self-driving cars.

    Skills that You’ll Develop

    After completing the specialization, the student is expected to: understand the detailed architecture and components of a self-driving car software stack. Implement methods for static and dynamic object detection, localization and mapping, behaviour and maneuver planning, and vehicle control, learn how to use realistic vehicle physics, complete sensor suite: camera, LIDAR, GPS/INS, wheel odometry, depth map, semantic segmentation, object bounding boxes and demonstrate skills in CARLA and build programs with Python


    The self-driving cars specialization offered by the University of Toronto is an advanced course. It is intended for learners with a background in mechanical engineering, computer, and electrical engineering, or robotics. This means that a solid background in mathematics and programming is required to be able to follow and successfully complete the courses.

    More specifically, the basic knowledge prerequisites include intermediate programming experience in Python 3, familiarity with linear algebra (matrices, vectors, matrix multiplication, rank, eigenvalues and vectors, and inverses), statistics (Gaussian probability distributions, multivariate calculus, physics (forces, moments, inertia, Newton’s laws).


    The full specialization comprises of 4 courses that build-up gradually together with a final project at the end.

    1. Introduction to Self-Driving Cars

    The first course includes some introductory videos into autonomous driving and a historical perspective. This course will introduce you to the terminology, design considerations and safety assessment of self-driving cars. The objectives of the course are: to understand commonly used hardware used for self-driving cars, identify the main components of the self-driving software stack – program vehicle modeling and control and analyze the safety frameworks and current industry practices for vehicle development.

    2. State Estimation and Localization for Self-Driving Cars

    The first course of the specialization is a prerequisite for this one. In this course, you can learn about different sensors used in autonomous driving and how we can use them for state estimation and localization in a self-driving car.

    3. Visual Perception for Self-Driving Cars

    This course, as the name suggests, is mainly focused on Computer Vision methods used in self-driving technology. This course provides an introduction to the main perception tasks in autonomous driving, static and dynamic object detection, and will survey common computer vision methods for robotic perception.

    4. Motion Planning for Self-Driving Cars

    The last course of this specialization is focused on motion planning. This course gives an introduction to the main planning tasks in autonomous driving, including mission planning, behavior planning, and local planning. After this course there is the final hands-on project, which in this specialization is done in Carla – an open-source simulator for Autonomous Driving developed using Unreal Engine.

    Bottom Line

    Teachers of the course are: Steven Waslander and Jonathan Kelly, both professors at the University of Toronto in the Department of Aerospace Studies.

    The next round starts at 10th of February and financial aid is available from Coursera. Although all the courses can be audited (Auditing a course allows a student to take a class without the benefit of a grade or credit for a course). The specialization seems to be very well structured and the courses comprehensive. Also, a big plus is the use of an open-source simulator such as Carla for the final project.