The objective of the course is to introduce the students to language-
independent systematic methods of program verification, analyzing, testing and debugging. The course consists of two main parts: Formal methods for verifying Computer programs and Static and Dynamic Program Analysis. These topics represent software engineering approach to program verification.