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: Ardi Madadi (ardier at cs)

TAs: Ege Caglar, Owen Daley, Katherine Murphy, Leah Perlmutter, Josie Thompson, and David Xu

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 : Lectures will be pre-recorded. You have the option to watch these lectures on your time. An email with links to the videos to watch will be sent 1-2 days before the live session for that topic. These videos will also be linked on the lecture list and calendar.

Live Lecture Q&A: Live Q&A sessions will take place at 1:10-2:10pm 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.