This course gives an overview on tools and techniques for formally specifying, checking, and verifying Java programs.

This course presents the use of mathematically/logically rigorous methods that help in the development of correct concurrent systems.

This short blocked course gives a survey on modeling and verifying distributed systems; we supplement the theoretical presentation by a practical demonstration of the model checker Spin.
This short blocked course gives a survey on modeling and verifying distributed systems; we supplement the theoretical presentation by a practical demonstration of the model checker Spin.
This short blocked course gives a survey on various methods and tools for modeling and reasoning about distributed systems.