Skip to content

Latest commit

 

History

History

60007 - Theory and Practice of Concurrent Programming

60007 - The Theory and Practice of Concurrent Programming

Module Description

From the college website...

The course will be split into two halves. One half will focus on practical concurrent programming in a variety of programming languages using a range of paradigms. It will cover:

  • Shared memory concurrent programming in C++
  • Synchronisation using locks and atomic operations
  • Implementation of synchronisation primitives
  • Functional programming and concurrency
  • Dynamic data race detection

The other half will explore the theory and practice of shared memory concurrency, which underpins many of the concurrency models studied in the first half. It will focus on:

  • Primitives for shared-memory concurrency
  • Architecture support for single and multi-core shared memory
  • Strong and weak memory models
  • Challenges of correct concurrent programming (races, deadlocks, livelocks, progress guarantees)
  • Design patterns for synchronisation (mutexes, locks, monitors)
  • Concurrent objects and linearisability

Lecturers

Theory: Dr Azalea Raad

Practice: Dr Alastair Donaldson

Resources

Back to main notes