Formal methods in software engineering - a short course a) algebraic specifications and its usage in specifications of abstract data types; b) Hoare logic and its application in program verification and c) Z and its application to modeling of (software) system. After that we shall turn our attention to finite state machines (automata) and their usage in modeling. The end of the course will briefly cover some aspects of systematic software testing and elements of software metrics.