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/17Introduction and logistics
Thursday 1/19Intro to memory safety
Tuesday 1/24More memory safety
Thursday 1/26Threat modeling 1
Tuesday 1/31Memory safety attacks
Thursday 2/ 2Memory safety attacks 2
Tuesday 2/ 7ROP and more threat modeling
Thursday 2/ 9Threat modeling example
Tuesday 2/14Memory safety mitigations, fuzzing
Thursday 2/16Access control and the Unix filesystem
Friday 2/17Problem set 1
Tuesday 2/21Midterm 1
Thursday 2/23More Unix permissions
Tuesday 2/28OS-level attacks
Thursday 3/ 2OS protection and isolation
Tuesday 3/ 7Spring break, no class
Thursday 3/ 9
Tuesday 3/14Web security, server sideWheeler reading quiz
Thursday 3/16Web security, client side
Tuesday 3/21Cryptography, general principles
Thursday 3/23Cryptography, symmetric-key encryption
Tuesday 3/28Cryptography, hashing and MACs
Thursday 3/30Cryptography, public-key primitives
Tuesday 4/ 4Networks and securityOWASP reading quiz
Wednesday 4/ 5Project 0.5
Thursday 4/ 6Cryptographic protocols
Tuesday 4/11Midterm 2
Thursday 4/13Practical encrypted protocols
Monday 4/17Project 1 part 1
Tuesday 4/18User authentication
Thursday 4/20Ethical concerns in security
Tuesday 4/25Laws and usability principles
Thursday 4/27Usable security case studies, crypto failure
Friday 4/28Project 1 part 2

Detailed reading and lecture schedule