Learn how to analyze software systems to ensure they meet security policies under specific trust assumptions. This course covers topics such as information flow, declassification, non-interference, timing attacks, and program analysis tools, with a focus on reasoning about program behavior and securing data flows.