The purpose of this course is to provide an introduction
to program analysis techniques. You will learn about denotational
semantics of programs, abstract data types, abstract interpretations,
temporal logics and model checking, and how to use them in order
to derive program analysis and verification techniques.