Concurrent Programming

Overview

Concurrent Programming Abstraction and Java Threads, the Mutual Exclusion Problem, Semaphores, Models of Concurrency, Deadlock, Safety and Liveness Properties. Notions are exemplified through a selection of concurrent objects such as Linked Lists, Queues and Hash Maps. Principles of graph analytics, experimental performance evaluation, application of concurrent programming to graph analytics.

Learning Objectives

To understand the problems that are specific to concurrent programs and the means by which such problems can be avoided or overcome.

Skills

To model and to reason rigorously about the properties of concurrent programs; to analyse and construct concurrent programs in Java; to quantitatively analyse the performance of concurrent programs.

Assessment

None

Coursework

100%

Examination

0%

Practical

0%

Credits

20

Module Code

CSC3021

Teaching Period

Autumn Semester

Duration

12 Weeks