The aim of the course is to introduce Hoare logic as a basis for the
formal specification and verification of imperative programs. A simple
language will be used to illustrate core ideas. Both theoretical
foundations and the design of mechanized program verifiers will be
covered. Some current research activities and challenges will be
outlined.