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


  • Apr 17: Assignment #5 deadline is 5/1 (Wed) 2:30 pm.
  • Apr 16: The last class will be on 5/1 (Wed) at 2:30 pm. We do not meet on 4/24 (Wed).
  • Mar 27: Assignment #4 deadline is 4/10 (Wed) 2:30 pm.
  • Mar 25: Project proposal due is 4/1 (Mon) 2:30 pm.

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.