CSE 478: Autonomous Robotics

Instructor: Byron Boots (bboots at cs)

Head TA: Brian Hou (bhou1 at cs)
TA: William Agnew (wagnew3 at cs)
TA: Shane Lyu (alrope at cs)
TA: Junha Roh (rohjunha at cs)

Lecture Time and Place: MWF 1:30 - 2:30pm, CSE2 G10 and Zoom (link on Canvas)

Office Hours: MW 2:30-3:30pm (Byron); M 11-12pm, Tu 4-5pm, Th 2-3pm (TAs)

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 may 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.
  • 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)

  • Probabilistic Robotics, Sebastian Thrun, Wolfram Burgard and Dieter Fox.
  • Underactuated Robotics: Algorithms for Walking, Running, Swimming, Flying, and Manipulation, Russ Tedrake, Course Notes for MIT 6.832.
  • Planning Algorithms, Steven M. LaValle.


You are attempting to learn—and we are attempting to teach—during a pandemic. It is unreasonable to hold yourself to any ordinary standards amidst this tragedy, and it would be especially unreasonable for this course to demand that from you.

Our priority is to facilitate your learning without adding to your stress and anxiety. We’ll start by being flexible with due dates and grading. Please don’t hesitate to reach out if there’s any way that we can better support you personally or the class at large. We’re here to help.


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

There are four programming projects with the MuSHR platform. These are designed for a group of 2-3 students, but may also be completed individually. 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 instructor.

Your completed work will be converted to a final grade based on the following minimums.

at least 3.8:

  • S on 4 programming projects
  • 6 reading responses
  • 6 discussion sessions

at least 3.4:

  • S on 3 programming projects
  • 5 reading responses
  • 5 discussion sessions

at least 3.0:

  • S on 3 programming projects
  • 4 reading responses
  • 4 discussion sessions

at least 2.0:

  • S on 2 programming projects
  • 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 instructor 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 2-3 students, but may also be completed individually. 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 and Chris Mavrogiannis for sharing their course materials and insight, as well as the MuSHR team for their software and hardware assistance.