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.
In addition to the general information on this front page, please use the Resources link in the navigation bar to find pointers to much more detail about the course.
8/27: Final course grades have been submitted and we're done for the quarter. Congratulations on a lot of great work this summer and best wishes for the future.
6/23: Welcome to the website for CSE 331, 19su.
Please send mail to
cse331-staff[at]cs if you find any unexpected
Instructor: Hal Perkins (perkins[at]cs – but please use cse331-staff[at]cs for mail)
Contact: Please use the message board (link at the top of the page) whenever possible (you need to use your UW, not CSE, Google identity to log in). 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 will get the fastest response by sending email to cse331-staff[at]cs, which will reach both the instructor and all TAs.
Mondays, Wednesdays, Fridays: AA 1:10pm-2:10pm in
Section: Thursdays: AA, 1:10pm-2:10pm, also in