Computing Theory and Concurrent Programming - COMP5540

Looking for a different module?

Module delivery information

This module is not currently running in 2024 to 2025.

Overview

• Propositional & Predicate Logic, including proofs
• Formal languages: finite automata and regular expressions
• Elements of CFGs, Turing machines and decidability
• Introduction to Concurrency and Parallelism, threading model
• Synchronisation primitives for mutual exclusions & condition synchronization (e.g. Semaphores, Critical regions, Monitors)
• Safety and Liveness properties (e.g. Deadlocks, Livelocks, Starvation, Priority Inversion)
• Concurrency patterns (e.g., Producer-Consumer, Thread Pools, Lambda & Streams, Futures)
• Overview of other concurrency models (e.g. Message Passing, Tuple Spaces, CSPs, Actors, Transactions, Events)

Details

Contact hours

Total contact hours: 33
Private study hours: 117
Total study hours: 150

Method of assessment

This module will be assessed by 50% examination and 50% coursework.

Indicative reading

• John Martin, Introduction to Languages and the Theory of Computation, McGraw-Hill, 4th Edition, 2010.
• George S. Boolos et al, Computability and Logic, Cambridge Press, 5th Edition, 2007.
• Brian Goetz et al, Java Concurrency in Practice, Addison-Wesley, 2015.

See the library reading list for this module (Medway)

Learning outcomes

The intended subject specific learning outcomes.
On successfully completing the module students will be able to:
1 Understand specifications in formal logical notation
2 Understand the expressiveness of various language formalisms
3 Understand the difference between decidable and undecidable problems
4 Have a basic understanding of the concepts of concurrent programming: software processes/threads, communication and synchronisation
5 Be able to use effectively concurrent programming paradigms to design systems
6 Be able to implement concurrent programs to solve specific problems using appropriate programming paradigms
7 Have an understanding of deadlock, livelock, and starvation when designing concurrent systems

Notes

  1. ECTS credits are recognised throughout the EU and allow you to transfer credit easily from one university to another.
  2. 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.