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.


6/15: A copy of the final exam and a sample solution have been added to the exams page. Scores will be available from gradescope later this afternoon.

3/31: Welcome to the website for CSE 331, 19sp. Please send mail to cse331-staff[at]cs if you find any broken links or other problems.

Administrative Information

Instructor: Hal Perkins (perkins[at]cs – but please use cse331-staff[at]cs for mail)

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.

Lectures: Mondays, Wednesdays, Fridays: AA 10:30pm-11:20pm in CSE2 G01, and AB 2:30-3:20 in SIG 134

Sections: Thursdays
Time Location Instructor
AA 8:30–9:20 ECE 025 Avi Bhagat
AB 9:30–10:20 MGH 238 Libby Knell
AC 10:30–11:20 MGH 287 Alexey Beall
AD 11:30–12:20 ECE 054 Natalie Fetsch
BA 12:30–1:20 MGH 238 Yifan Xu
BB 1:30–2:20 LOW 202 Nate Yazdani
BC 2:30–3:20 LOW 202 Kaushal Mangipudi
BD 3:30–4:20 MGH 295 Andrew Gies
BE 12:30–1:20 THO 134 Frank Poon

The CSE 331 staff also includes Amulya Bhattarai, Samia Ibtasam, Aditya Jhamb, Jonathan Jusuf, Sid Kulkarni, Matthew Liu, Luke Manship, Ivan Montero, Sherry Prawiro, Andrey Ryabtsev, Kris Wong, and Jiwen Wu. See the calendar for everyone's office hours.