CSE 478: Autonomous Robotics

Instructors: Byron Boots (bboots at cs), Alex Spitzer (spitzer at cs)

Aaron Jenson (aajenson at cs)
Astitwa Lathe (aslathe at cs)
Xiangyun Meng (xiangyun at cs)

Lecture Time and Place: MWF 1:30 pm - 2:20 pm, LOW 206

Instructor Office Hours: Wed 2:30 pm - 3:30 pm (Byron), Th 4 pm - 5 pm Gates 223 (Alex)

TA Office Hours:
Mon: 3 pm - 4 pm Allen 022
Tue: 11:30 am - 12:30 pm, 4 pm - 5 pm Allen 022
Wed: 3:30 pm - 4:30 pm Allen 022
Fri: 4 pm - 5 pm Allen 022

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

Staff can be reached at cse478-staff@cs.washington.edu.

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 reflect on the human and social impact of autonomy by reading and responding to essays, research papers, book chapters, and other relevant material.

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.
  • Develop standards for ethical behavior in robotics and identify everyday ethical concerns in industrial and research contexts. Critique the human and social impact of autonomous systems.

Textbooks (Optional)


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

  • Programming projects (4)
  • Readings and written responses (7)
  • Discussion session attendance (7)
  • Final project

There are four programming projects with the MuSHR platform. These must be completed in groups of three (3) 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.

In general, you cannot complete the pre-class preparation after class for credit. If you are stuck or falling behind, please do not hesitate to talk to the instructors.


The following rubric will be used to assign final grades for the course.

at least 3.8

  • S on all 5 assignments (projects 1 through 4 + final project)
  • 6 reading responses
  • 6 discussion sessions

at least 3.4:

  • S on 4 out of 5 assignments
  • 5 reading responses
  • 5 discussion sessions

at least 3.0:

  • S on 3 out of 5 assignments
  • 4 reading responses
  • 4 discussion sessions

at least 2.0:

  • S on 2 out of 5 assignments
  • 3 reading responses
  • 3 discussion sessions


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 3 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, and Brian Hou for sharing their course materials and insight, as well as the MuSHR team for their software and hardware assistance.