CSE 331

The aim of this course is to help students write programs of higher quality and increased complexity. This requires creating software that is correct, easy to change, easy to understand, and easy to scale. The course covers principled approaches to achieving each of these.


Instructor: James Wilcox (he/him or they/them, jrw12@cs.washington.edu)


  • Hritik Aggarwal (he/him, hritik@cs.uw.edu)
  • Ege Çağlar (he/him, cagege@cs.washington.edu)
  • Owen Daley (he/him, odaley45@cs.washington.edu)
  • Jaela Field (she/her, jaelaf@cs.washington.edu)
  • Elijah Greisz (he/him, egreisz@cs.washington.edu)
  • Katherine Murphy (she/her, kate2001@cs.washington.edu)
  • Josie Thompson (they/them, josiest@cs.washington.edu)
  • Betty Park (she/her, bpark16@cs.washington.edu)
  • Zhennan Zhou (he/him, zhouz46@cs.washington.edu)

Contact Info: Please use the message board whenever possible. The answer to your question is likely to be helpful to others in the class, and by using the discussion board, it will be available to them as well. For grading or other private matters, you can create a private post (preferred) or send email to cse331-staff at cs, which will reach both the instructor and all TAs.


Lectures Lectures will take place in person at 10:30-11:20am on Monday, Wednesday, Friday in the Gates Center (CSE2) G01.

Sections: Meeting in person on Thursdays. Check MyUW for your time and room number.

Office Hours: Meeting at various times throughout the week, both in person and on Zoom. See the calendar for details. Please use the Office Hour Queue when waiting to be helped.