Note: The schedule is tentative and subject to change. Any updates will be noted below.

Date Topic Readings Notes
01/11 Introduction
01/16 Introduction
Security Threats
1, 2, 3, 4 1, 2, and 3 are Optional
(May refer to them over time)
01/18 Security Threats 5, 6
01/23 Principles 7
01/25 Operating Systems 8, 9 Due Project Team
01/30 Operating Systems 10
02/01 Virtual Machines 11, 12
02/06 Trusted Hardware - Introduction 13 Sections 3 and 4
02/08 Trusted Hardware - TPMs 14, 15 14 is Optional
02/13 Trusted Hardware - TEEs (Intel SGX) 13 Sections [5, 5.3] and [5.6, 5.8]
02/15 Trusted Hardware - TEEs (Intel SGX)
02/20 Trusted Hardware - HW vs SW 16, 17 17 is Optional
Due Project Proposal
02/22 Trusted Hardware - TEE Abstractions 18 New Midterm Exam
02/27 Trusted Hardware - Unmodified/Untrusted Apps 19, 20 19 is Optional
02/29 Trusted Hardware - Device I/O 21, 22 22 is Optional
Due Midterm Exam
03/05 Trusted Hardware - Mobile Systems 23, 24 24 is Optional
03/07 Memory Protections 25
03/12 No Class (Spring Break)
03/14 No Class (Spring Break)
03/19 Runtime Protections 26, 27 27 is Optional
03/21 Fuzzing 28 Due Project Status Report
03/26 Languages 29
03/28 Languages - Verification 30
04/02 Languages - Verification 31
04/04 Languages - Verification 16
04/09 Languages - Verification 32
04/11 Project Presentations
04/16 Project Presentations Due Project Writeup