This course is self-contained and does not depend on other courses in parallel computation.
A concurrent system consists of a set of objects that execute simultaneously and that may communicate and synchronize with each other. Examples of concurrent systems are parallel programs that describe sets of collaborating processes.
Concurrent systems have a complex nature; a merely intuitive understanding is not sufficient to draw definite conclusions about their behavior. For the specification and design of concurrent systems and parallel programs, a professional engineer therefore needs tools that allow to unambiguously describe the system/program and to conclusively reason about its behavior.
This course presents four such tools:
Slide copies will be handed out in class; electronic online material will be available on the World Wide Web.