CSE 331 22wi

The aim of this course is to help you 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.

This is the main website for CSE 331. Please use the navigation bar at the top of this page to find important resources and links on this site. A few additional resources, particularly links to class videos, are on the course Canvas web page.



Instructor: Hal Perkins (perkins at cs)

TAs: Hritik Aggarwal, Sparsh Binjrajka, Sanjana Chintalapati, Owen Daley, Jaela Field, Elijah Greisz, Jeremy Gunawan, Bryan Lim, Ardi Madadi, Katherine Murphy, Gargi Panatula, Soham Pardeshi, Betty Park, Rachel Phuong, Hannah Potter, Helena Stafford, Jiamae Wang, David Xu, and Zhennan Zhou.

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, the information will be available to them as well. For grading or other private matters, you will get the fastest response by sending email to cse331-staff at cs, which will reach both the instructor and all TAs.


All course activities will take place online via zoom during the first week of the quarter. Current UW guidelines expect a transition to in-person, on-campus classes starting Monday, Jan. 10. More details will be posted here and on the course discussion board as they become available.