Skip to main content

Unit information: Concurrent Computing in 2018/19

Please note: It is possible that the information shown for future academic years may change due to developments in the relevant academic field. Optional unit availability varies depending on both staffing and student choice.

Unit name Concurrent Computing
Unit code COMS20001
Credit points 20
Level of study I/5
Teaching block(s) Teaching Block 4 (weeks 1-24)
Unit director Dr. Burghardt
Open unit status Not open
  • COMS10002 Programming and Algorithms I
  • COMS10001 Programming and Algorithms II
  • COMS12200 Introduction to Computer Architecture


School/department Department of Computer Science
Faculty Faculty of Engineering


This unit gives an introduction to formalisations and implementation techniques that are relevant to building and utilizing computers that run more than one entity at once. We will show state-of-the art techniques for using multiple processors for one task, as well as how single processors can be used to handle multiple tasks. Particular topics covered will include an introduction to concurrency and how it can be reasoned about, how concurrency can be deployed on hardware, concurrent programming, how concurrency is handled by operating systems and how concurrent systems can be interconnected by networks.

This unit aims to:

  1. Introduce concurrent computing as a concept
  2. Provide an introduction to formal reasoning about concurrency
  3. Allow an exploration of concurrent computing in the context of a modern programming language in combination with a contemporary hardware implementation
  4. Show how concurrency principles apply regardless of the number of processing elements
  5. Introduce efficient concurrent computing systems and their construction

The following core topics will be introduced:

  • Concurrent Systems
  • Concurrent Programming using XC
  • CSP. The CSP formal methodology for reasoning about concurrent systems
  • Computer Networks and their relationship to Concurrent Systems
  • OS. Operating Systems in context to concurrent systems and their operation across different processing paradigms

Intended learning outcomes

Successful completion of this unit will enable you to:

  • Reason about concurrency using formal techniques
  • Become familiar with a variety of concurrent computing approaches
  • Be capable of programming a concurrent computer to perform simple tasks
  • Understand how networks can be used to interconnect concurrent computers
  • Be familiar with a variety of network types and their operation
  • Understand the role of an operating system in a concurrent system and the different forms that it can take

Teaching details

2 lectures per week supported by a combination of laboratory and problem classes (2 hours per week).

Assessment Details

50% Coursework - consisting of summative and formative assignments assessing both theoretical and applied elements of Concurrent Computing - and 50% Exam.

Reading and References

  • Concurrent and Real-Time Systems: A CSP Approach. Schneider
  • Programming XC on XMOS Devices. Douglas Watt
  • Concurrent systems: an integrated approach to operating systems, database, and distributed systems. Jean Bacon