Welcome to CPSC 235/EENG 245 Self-Driving Cars: Theory and Practice, Spring 2019


  • Jan 18: Canvas has not been set up. Please find the lecture notes from Piazza.

Course Description

This course explores the theory and practice of building self-driving cars using advanced computing technologies. Topics include embedded system programming, sensor technology, control theory, and introductory planning and navigation techniques using machine learning and computer vision. This course aims to provide early-year students in STEM field opportunities i) to understand the introductory theory that enables the autonomous driving and also ii) to have extensive hands-on experience with various software and hardware tools. Over the course of the semester, students work in small groups to build miniaturized self-driving cars that autonomously navigate an indoor track that resembles real road environments. The final project involves driving contest (skill test and speed racing) and project report/presentation of their work.

Instructor: Man-Ki Yoon

Office hours: MW 4:00 - 5:00 pm, AKW Room 303, or by appointment

Online Tools

Course Materials

There is no required textbook for this course. Course notes will be available on Canvas.

Optional readings:

  • R. Siegwart, I. Nourbakhsh, D. Scaramuzza, Introduction to Autonomous Mobile Robots (2nd Edition), The MIT Press, 2011. ISBN: 9780262015356
  • S. Thrun, W. Burgard, D. Fox, Probabilistic Robotics, The MIT Press, 2005. ISBN: 9780262201629


After CPSC 112, 201, 223, or equivalent. Instructor’s permission is required to waive the prerequisites. Python programming skill is required. Enrollment is limited to 18.

Lab Space

The lab is located in Room 227 of HLH17. The lab is equipped with a desktop computer, monitors, indoor track, and hand tools. Students are expected to work on the assignments and projects in the lab space. The Linux PCs in the Zoo computing lab are also available for the first assignment (ROS programming) and machine learning task.


There will be one in-class, closed-book/notes exam before the Spring break. The exam is required, i.e., unless prior arrangements are made, a grade of zero will be recorded for missed exam.

Grading Policy

Assignments 60%
Exam 15%
Group Project 15%
Final Contest 10%

The table above shows the percentage-based breakdown of how each requirement will factor into the overall grade. These weights are subject to minor change depending on the difficulty of the assignments.

Academic Integrity

Students are required to comply with the university policy on academic integrity that can be found here. Do not, under any circumstances, copy another person’s code. This includes any open-source code available in the Internet. Proper acknowledgment in the source code or in the report is required if using someone else’s work. See also this for a detailed explanation of academic honesty.