This course presents the axiomatic (also called algebraic) specification of abstract datatypes using tools such as the specification language CafeOBJ.

This course gives an introduction to the development of software on parallel and distributed computing systems (multiprocessors and computer networks).

This course explores advanced object oriented techniques using the Java language. The accent is on encapsulation, exemplified with algorithms and data structures, and on a frame of software tools used in real-world applications.

In this course we discuss (as a continuation of the course "Programming 1") object-oriented programming in C++.

This seminar discusses techniques and tools for formal methods and/or automated reasoning such as formal specification languages, program verification systems, model checkers, interactive proof assistants, automated theorem provers, satisfiability solvers, decision procedures, etc.