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


  • Feb 14: Midterm exam will be held during class time on 3/6 (Wed) at AKW 000.
  • Feb 13: Assignment #3 deadline is 3/24 (Sun) 9:00 pm.
  • Jan 25: We are going to meet at Rooms 233 (Mondays) and 220 (Wednesdays) of HLH 17.
  • Jan 25: Lecture notes can be found from Schedule and Canvas.

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 students in STEM field opportunities i) to understand the introductory theory that enables the autonomous driving and also ii) to have 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.

Instructor: Man-Ki Yoon

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

Online Tools: Canvas, Slack, Piazza

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. (Yale online library)
  • 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.

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 (3/6 (Wed)). 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 20%
Group Project 20%

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.