Undergraduate Course: Communication and Concurrency (INFR10007)
|School||School of Informatics
||College||College of Science and Engineering
|Credit level (Normal year taken)||SCQF Level 10 (Year 4 Undergraduate)
||Availability||Available to all students
|Summary||The course provides an introduction to the Calculus of Communicating Systems (CCS) giving the theoretical foundation , examples of practical applications and logics for describing important properties. The course focuses on a mathematical model of the behaviour of concurrent systems which treats crucial notions like deadlock and non-determinism, and which reflects the modular construction of systems. The course also focuses on specifying safety and liveness properties of such systems. The approach is a mixture of operational semantics, algebra and logic. It applies alike to hardware and software. Although CCS is one of several alternative approaches, the aim is to treat it in depth rather than to make superficial comparisons with others.
*Modelling communication: media, agents, ports;
*Basic definitions; synchronisation; action and transition; the basic calculus;
*Transitional semantics; derivatives and derivation trees;
*Bisimulation; modal and temporal logic;
*Strong bisimulation and strong equivalence; experimenting upon agents; observation equivalence; equality of agents;
*Communication protocols; specification of systems with evolving structure;
Relevant QAA Computing Curriculum Sections: Concurrency and Parallelism; Distributed Computer Systems; Theoretical Computing; Programming Fundamentals
Entry Requirements (not applicable to Visiting Students)
|| It is RECOMMENDED that students have passed
Language Semantics and Implementation (INFR09014)
||Other requirements|| This course is open to all Informatics students including those on joint degrees. For external students where this course is not listed in your DPT, please seek special permission from the course organiser.
There are no formal prerequisites although the Language Semantics & Implementation course is particularly relevant. The course requires a reasonable mathematical ability.
Information for Visiting Students
Course Delivery Information
|Not being delivered|
| 1 - Analyse computation, particularly concurrent systems in the process calculus CCS. The analysis consists of modelling situations by abstracting away from details and recording their fundamentals in a small computationally and mathematically appropriate formalism and then doing the same for their specifications. Finally one understands how to use all this to increase systems reliability.
2 - Define behaviour of a system as a transition graph.
3 - Understand when two systems are behaviourally equivalent. as defined by the notion of bisimulation equivalence.
4 - Verify that two systems are equivalent or prove that they are not.
5 - Specify temporal properties of systems in the branching time logic CTL.
6 - Understand the meaning of temporal formulas.
7 - Show that a system has, or fails to have, a temporal property.
8 - Use tools for systems verification.
9 - Be able to assimilate knowledge about different formalisms and tools and put them to practical use. Understanding how to apply mathematical and logical ideas in systems and other computational contexts.
|* ** R. Milner, Communication and Concurrency, Prentice-Hall 1989.|
* ** C. Stirling, Modal and Temporal Properties of Processes, Springer Texts in Computer Science 2001.
* * C. Fencott, Formal Methods for Concurrency, International Thomson Computer Press 1996.
* * M. Hennessy, Algebraic Theory of Processes, MIT Press 1988
|Course organiser||Prof Colin Stirling
Tel: (0131 6)50 5186
|Course secretary||Miss Claire Edminson
Tel: (0131 6)51 4164