Course Overview

This course will focus on architectural approaches to designing and building secure and trustworthy software systems, motivated by a discussion of threat models and vulnerabilities exploited in practice. We will analyze various enabling mechanisms (e.g., virtualization, trusted hardware) in terms of their abstractions, implementations, security guarantees, and hardware-software decompositions. We will survey systems that have leveraged such approaches across a wide range of application scenarios. Towards the end of the course, we will also consider other approaches to improving the security of software systems (e.g., program verification). This course will be primarily driven by reading research papers, with in-class presentations and discussions, and will include a research project component.

For more information, please see the course syllabus.

Lecture: Tue/Thu 3:05-4:20pm
Location: LSRC A247
Resources: Website, Syllabus, Canvas, Ed, HotCRP

Course Staff

Instructors: Matthew Lentz
Office Hours: Thur 11am-12pm (LSRC D314) + After Lecture


45% Project
A semester-long research project, with writeup and presentation
20% Responses
Writing thoughtful responses to the weekly readings
20% Exam
A take-home midterm exam
15% Participation
Actively engaging with in-class and online discussions