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: Kevin Zatloukal (kevinz at cs)

TAs: Alexey Beall, Meishan Dong, Andrew Gies, Manchen Jin, Ardi Madadi, Kaushal Mangipudi, Rachel Phuong, David Ross, Yihang Wu, David Xu, Haoran Yu

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 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.

Pre-Recorded Lectures: Part of each lecture will be pre-recorded and posted two days before the live portion of the lecture. These videos will be linked on the lecture list and calendar.

Live Lecture Q&A: The live Q&A portion of each lecture will take place at 10:30-11:20am on Monday, Wednesday, Friday via Zoom video. A link to the Zoom meeting for the live lectures is available on our Canvas page.

Sections: Meeting via Zoom video on Thursdays. Times and links to the Zoom meetings will be available on our Canvas page.

Office Hours: Meeting via video at various times throughout the week, see the calendar for details. Times and links to the Zoom meetings will be available on our Canvas page.

If you are new to Zoom, please see the Zoom information page.