Theory and Practice of Concurrency - COMP6610

Looking for a different module?

Module delivery information

Location Term Level1 Credits (ECTS)2 Current Convenor3 2024 to 2025
Autumn Term 6 15 (7.5) Laura Bocchi checkmark-circle


This module is aimed at introducing the principles of concurrency theory (1, 2, 3) and demonstrating how these can be applied to design and implement distributed applications (4). Advanced concepts of Web services will be studied and placed in the perspective of these principles (5, 6).
The following is an indicative list of topics:
• Message passing primitives for concurrency: synchronous versus asynchronous message passing, the actor model.
• Reasoning on processes: temporal logic, safety and liveness properties, bisimulation.
• Channel passing and mobility.
• Design and implementation of application–level protocols.
• Web services: from stateless services to distributed business processes (also known as service orchestrations).
• Transaction protocols on the Web: two-phase commit, long running transactions


Contact hours

Total contact hours: 32 hours
Private study hours: 118 hours
Total study hours: 150 hours

Method of assessment

Main assessment methods:
Concurrent programming in Java Coding assignment (20%)
Concurrent programming in GO Coding assignment (20%)
Seminar (Presentation and oral discussion) 10%
2-hour unseen written examination (50%)

Reassessment methods:
Like for like.

Indicative reading

Armstrong, J, Virding, R, Williams,W.M, Wilkstrom, (1996). C. Concurrent Programming in ERLANG. Prentice-Hall
Lynch, N.A. (1996). Distributed Algorithms. Morgan Kaufmann Publishers In (Section 7)
Milner, R. (1989). Communication and Concurrency. Prentice-Hall

See the library reading list for this module (Canterbury)

Learning outcomes

The intended subject specific learning outcomes.
On successfully completing the module students will be able to:
1 Have a critical understanding of the principles of concurrent programming, as well as its advantages and challenges;
2 Reason on the properties of a distributed process (e.g., safety and liveness), and compare the behaviour of different processes.
3 Design and implement processes satisfying given properties.
4 Apply the acquired knowledge to real scenarios e.g. application-level protocols, Web services.
5 Be familiar with advanced concepts of Web Services.

The intended generic learning outcomes.
On successfully completing the module students will be able to demonstrate:
1 Systematic and rigorous reasoning,
2 Application of abstract concepts to concrete scenarios,
3 Ability of presenting and discussing state of the art topics.


  1. Credit level 6. Higher level module usually taken in Stage 3 of an undergraduate degree.
  2. ECTS credits are recognised throughout the EU and allow you to transfer credit easily from one university to another.
  3. The named convenor is the convenor for the current academic session.
Back to top

University of Kent makes every effort to ensure that module information is accurate for the relevant academic session and to provide educational services as described. However, courses, services and other matters may be subject to change. Please read our full disclaimer.