Formal Methods for Computer Science

This course is intended to acquaint new students with the computer science requirements of the PhD program and with some of the research areas that are active within the program. It aims at providing the basic mathematical techniques necessary for understanding semantics and logics of programming languages, which are at the basis of different kinds of program analysis. The main topics that will be considered are fundamental mathematical tools, such as basic set theory, induction principles and fix point theory; basic notions of logical reasoning; and the main approaches to semantics of programming languages, namely structural operational semantics and denotational semantics.