CSE 478: Autonomous Robotics

Instructors: Siddhartha Srinivasa (siddh at cs), Taylor Kessler Faulkner (taylorkf at cs)

Sidharth Talia (sidtalia at cs)
Arnav Thareja (athareja at uw)
Bernie Zhu (haozhu at cs)
Helen Wang (yiruwang at cs)

MWF 8:30 AM - 9:20 AM. CSE2 - Room G01

Th 1:30-3:20. CSE1 - Room 002

Office Hours:

Virtual Office Hour: Conceptual Questions
Wed 10 am - 11 am (Helen Zoom, see Ed for link)
Thu 3:30 - 4:30 pm (Bernie Zoom, see Ed for Link)

Lab Office Hours: Hardware and Homeworks:
Mon 3:00 - 4:00 pm (CSE 002, Arnav)
Wed 1:30 - 3:30 pm (CSE 002, Sidharth)
Thu 1:30 - 3:30 pm (CSE 002, Sidharth + Arnav + Bernie)

Ed discussion board (link) All questions that are not of a personal nature should be posted to the discussion board.

Submit anonymous feedback here.


CSE 478 is a project- and discussion-based introduction to robotics. Autonomous vehicles will be used as a running example to introduce the algorithmic building blocks of robotics, and students will use the MuSHR rally car platform to gain hands-on experience. Students will learn the fundamentals of robots, as well as some cutting edge topics including machine learning applications in robotics. Moreover, students will also develop the skills required to read fundamental research papers and discuss the pros and cons of these research papers critically. By the end of this course, students should be able to:

  • Identify fundamental abstractions used by mobile robots in the wild (localization, planning, control), explain how they interact, and analyze algorithmic trade-offs within each abstraction.
  • Implement the above abstractions to enable a simulated mobile robot to navigate safely and efficiently, using Python and the Robot Operating System (ROS). Conduct principled robot experiments to diagnose and fix bugs across the mobile robot software stack. Implement and validate the software stack on a real hardware platform.
  • Be able to read, critique and absorb content in cutting edge research papers in robotics.

Textbooks (Optional)


There are five components to your final grade in this course.

  • Programming projects x 4 (+1 final project)
  • Paper readings and written responses x 7
  • Discussion attendance x7
  • Final project
  • Quizzes x3

Grading for programming projects:

There are four programming projects with the MuSHR platform. These must be completed in groups of four (4) students. In addition, you will put together everything you’ve learned for a final project on the MuSHR platform.

Programming projects will be graded using an SN scale.

S (Satisfactory). Work meets all requirements and displays mastery of core learning goals.
N (Not yet). Work does not meet some requirements and/or displays developing or incomplete mastery of some learning goals and material.

An N will be accompanied by TA feedback and guidance. You will be able to revise and resubmit to receive an updated grade and feedback.

Grading for discussions

Discussion posts will follow a standard format of:

  1. A short (2-3 sentence) summary of the paper
  2. One point/example that the paper discussed that you agreed or disagreed with, and why,
  3. One question you’d like to ask about the paper or discussion point you’d like to have with the class.

These posts will be due the midnight before the discussion class. Attendance will be taken during the discussion class, and is a part of the participation component of your grade. If you cannot make it, let us know on edstem ahead of time, and we will provide you with the option to write a paragraph response to each discussion question (~2-4 total) that were discussed in class.

Grading for quizzes

Quizzes will be held the first 15 minutes of class in-person. The format will be 10 multiple-choice questions on course content for a specific course topic (localization, control, planning), graded out of 10.


The following rubric is an approximation of what grade you should expect for the course.

at least 3.8

  • S on all 5 assignments (projects 1 through 4 + final project)
  • 7 participation in discussions
  • 7 reading responses
  • top 10% on quizzes

at least 3.4:

  • S on 4 out of 5 assignments
  • 6 participation in discussions
  • 6 reading responses
  • score within the 10th to 25th percentile range on quizzes

at least 3.0:

  • S on 3 out of 5 assignments
  • 5 participation in discussions
  • 5 reading responses
  • score within the 25th to 40th percentile range on quizzes

at least 2.0:

  • S on 2 out of 5 assignments
  • 4 participation in discussions
  • 4 reading responses
  • score within the 40th to 70th percentile range on quizzes


CSE 332 (required), MATH 308 (recommended), CSE 312 (recommended).

The programming projects require that you work with a Linux and Python environment. Based on feedback from previous offerings, we strongly recommend that you are comfortable with at least one of the two. We welcome students with less experience, but please be prepared to spend some more time at the beginning of the course getting acquainted.


Students of all backgrounds and experiences are welcome in this class. You are entitled to be treated respectfully by your classmates and the course staff.

If at any time you are made to feel uncomfortable, disrespected, or excluded, please contact the instructors or a TA to report the incident. If you feel uncomfortable bringing up an issue with the course staff directly, you may also consider sending anonymous course feedback or meeting with the CSE academic advisors or the UW Office of the Ombud.


Programming projects are designed for a group of 4 students. Each group should write their own writeup and code.

We encourage you to discuss all course activities with your friends and classmates as you work through them. Feel free to talk through struggles with your peers as long as you follow the academic misconduct warnings that have been relayed in every course you’ve taken thus far. It’s okay to look at online resources as long as sources are cited and code isn’t copied.

Here’s a reference in case you need a refresher.

Disability Resources for Students

It is the policy and practice of the University of Washington to create inclusive and accessible learning environments consistent with federal and state law. If you have already established accommodations with Disability Resources for Students (DRS), please activate your accommodations via myDRS so we can discuss how they will be implemented in this course. If you have not yet established services through DRS, but have a temporary health condition or permanent disability that requires accommodations, contact DRS directly to set up an Access Plan.

Religious Accommodations

Washington state law requires that UW develop a policy for accommodation of student absences or significant hardship due to reasons of faith or conscience, or for organized religious activities. The UW’s policy, including more information about how to request an accommodation, is available at Religious Accommodations Policy. Accommodations must be requested within the first two weeks of this course using the Religious Accommodations Request form.


I reserve the right to modify any of these plans as need be during the course of the class; however, I won’t do anything capriciously, anything I do change won’t be too drastic, and you’ll be informed as far in advance as possible.


We thank past instructors Sanjiban Choudhury, Chris Mavrogiannis, Brian Hou and Byron Boots for sharing their course materials and insight, as well as the MuSHR team for their software and hardware assistance.