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


  • Apr 20: Assignment #5 is due on 5/7 (Thu).
  • Apr 20: Project is due on 5/7 (Thu).
  • Mar 31: Assignment #4 is due on 4/13 (Mon).
  • Mar 30: Announcement about exam – it is scheduled on 4/6 (Mon).
  • Mar 19: Manual on remote VM connection and simulation, and Remote VM List
  • Mar 18: Please find the post-break plan here. We will have on-line (Zoom) classes on the regular class schedule. The Zoom schedule can be found here. Instruction about remote VM connection will be posted soon.
  • Mar 18: Guest speaker from Intel RealSense will give a lecture (via Zoom) on 3/25 (Wed).
  • Feb 24: Guest speakers from NVIDIA will give a lecture on 3/2 (Mon). We meet at 4 PM at DL 220.
  • Feb 20: Assignment #3 is due on 3/5 (Thu). It is an individual assignment and you need to have a personal ROS workspace.
  • Jan 29: Assignment #2 is due on 2/12 (Wed)
  • Jan 16: Assignment #1 deadline is 1/27 (Mon) 2:30 pm.
  • Jan 14: Sign-up is closed. New enrollment cap is 30
  • Jan 13: Sign-up form
  • Jan 6: Syllabus can be found here

Course Description

This course explores the theory and practice of building self-driving cars using advanced computing technologies. It aims to provide students 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. Topics include embedded system programming, sensor fusion, control theory, and introductory perception, planning and navigation techniques using machine learning and computer vision. Over the course of the semester, students work in small groups to design and build software system for miniaturized self-driving cars that autonomously navigate an indoor track that resembles real road environments. Students demonstrate their learned skills through the final driving showcase. Enrollment is limited to 30.

My Image

Differences between CPSC 235/EENG 245 and CPSC 335

  • CPSC 335 can be counted towards CS electives.
  • CPSC 335 students are required to work on semester-long group project.
  • Junior/senior students are encouraged to take CPSC 335.

Instructor: Man-Ki Yoon

Office hours: MW 4:00 - 5:00 pm, HLH17 229 or by appointment (AKW 303)

Online Tools: Canvas, Slack

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


  • CPSC 235/EENG 245: CPSC 112, 201, or equivalent.
  • CPSC 335: CPSC 223, 202, or equivalent.
  • Basic knowledge of Python and Linux is required.
  • Instructor’s permission is required to waive the prerequisites.

Lab Space

The lab is located in Room 229 of HLH17. The lab is equipped with desktop computers, monitors, indoor track, and hand tools. Students are expected to work on the assignments and projects in the lab space.


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

Grading Policy

  CPSC 235/EENG 245 CPSC 335
Assignments 70% 60%
Exam 30% 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. CPSC 235/EENG 245 and CPSC 335 students will be graded separately.

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.