University of Minnesota
Development of Secure Software Systems

Course schedule overview

The scheduling and selection of lecture topics is subject to minor adjustment as the semester progresses, but the assignment and exam dates are not expected to change.

DateLecture topicAssignments due
Tuesday 9/ 5Introduction and logistics
Thursday 9/ 7Intro to memory safety
Tuesday 9/12More memory safety
Thursday 9/14Threat modeling 1
Tuesday 9/19Memory safety attacks
Thursday 9/21Memory safety attacks 2
Tuesday 9/26More threat modeling, with example
Thursday 9/28ROP
Friday 9/29Problem Set 1 due
Tuesday 10/ 3Auditing, fuzzing, and more mitigations
Thursday 10/ 5Access control and the Unix filesystem
Tuesday 10/10Midterm 1
Thursday 10/12Ethical and legal concerns in security
Tuesday 10/17More permissions, shell injection
Thursday 10/19OS-level attacks
Friday 10/20Project 0.5 due
Tuesday 10/24OS protection and isolation
Thursday 10/26Threat modeling of AI risks
Friday 10/27Project 0.5 due
Tuesday 10/31Web security, server side
Thursday 11/ 2Web security, client side
Friday 11/ 3Problem Set 2 due
Tuesday 11/ 7Cryptography: general principles
Thursday 11/ 9Cryptography: symmetric-key encryption
Friday 11/10Project 1 submission 1 due
Tuesday 11/14Cryptography: hashing, MACs, and secure channels
Thursday 11/16Midterm 2
Tuesday 11/21Cryptography: public-key primitives
Thursday 11/23No class, Thanksgiving
Tuesday 11/28A security perspective on networks
Thursday 11/30Encrypted protocols
Friday 12/ 1Project 1 submission 2 due
Tuesday 12/ 5User authentication
Thursday 12/ 7User identities
Tuesday 12/12Usable security principles and case studies (last lecture)

Detailed reading and lecture schedule