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 1/16Introduction and logistics
Thursday 1/18Intro to memory safety
Tuesday 1/23More memory safety
Thursday 1/25Threat modeling 1
Tuesday 1/30Memory safety attacks 1
Thursday 2/ 1Memory safety attacks 2
Tuesday 2/ 6More threat modeling, with example
Thursday 2/ 8ROP and fuzzing
Friday 2/ 9Problem Set 1 due
Tuesday 2/13Auditing and more mitigations
Thursday 2/15Access control and the Unix filesystem
Tuesday 2/20Midterm 1
Thursday 2/22Ethical and legal concerns in security
Friday 2/23Project 0.5 due
Tuesday 2/27More permissions, shell injection
Thursday 2/29OS-level attacks
Tuesday 3/ 5No class, spring break
Thursday 3/ 7
Tuesday 3/12OS protection and isolation
Thursday 3/14A security perspective on networks
Tuesday 3/19Web security, server side
Thursday 3/21Web security, client side
Tuesday 3/26Cryptography: general principles
Thursday 3/28Cryptography: symmetric-key encryption
Friday 3/29Project 1 submission 1 due
Tuesday 4/ 2Cryptography: MACs, public key intro
Thursday 4/ 4Cryptography: public-key primitives, failures
Tuesday 4/ 9Midterm 2
Thursday 4/11Encrypted protocols
Tuesday 4/16threat modeling of AI, xz backdoor
Thursday 4/18User authentication
Friday 4/19Project 1 submission 2 due
Thursday 4/23User identities
Tuesday 4/25Usable security principles and case studies (last lecture)

Detailed reading and lecture schedule