Module Title:   Concurrent and Distributed Systems

Module Credit:   20

Module Code:   CM-0518D

Academic Year:   2015/6

Teaching Period:   PG Computing Summer Semester

Module Occurrence:   A

Module Level:   FHEQ Level 6

Module Type:   Standard module

Provider:   Computer Science

Related Department/Subject Area:   SCIM (Dept of Computer Science)

Principal Co-ordinator:   Dr. I. Awan, Mr J.Mellor

Additional Tutor(s):   -

Prerequisite(s):   None

Corequisite(s):   None

Aims:
To introduce the nature and applications of concurrent programming with typical problems requiring synchronisation of, and communication between, concurrent processes; to introduce a variety of language primitives for inter-process communication and synchronisation, and to illustrate their applications.

Learning Teaching & Assessment Strategy:
Formal lectures and supervised laboratory work.

Lectures:   24.00          Directed Study:   161.00           
Seminars/Tutorials:   0.00          Other:   0.00           
Laboratory/Practical:   12.00          Formal Exams:   3.00          Total:   200.00

On successful completion of this module you will be able to...

1. A sound knowledge and understanding of the construction of concurrent and distributed systems.

On successful completion of this module you will be able to...

2. The ability to model, construct and analyse concurrent and distributed systems.

On successful completion of this module you will be able to...

3. An analytical approach to the construction of software.

  Coursework 10.00 20%
 
  Coursework (2 practical projects/exercises)
  Examination - closed book 3.00 80%
 
  Examination
  Examination - closed book 3.00 100%
 
  Supplementary examination

Outline Syllabus:
1) Introduction to modelling concurrent programs; modelling and implementing processes; implementing processes in a multi-threaded program. 2) Modelling mutual exclusion; language primitives for implementing mutual exclusion. 3) Modelling condition synchronisation; langauge primitives for implementing mutual exclusion. 4) Modelling deadlock, safety and liveness; analysing programs to demonstrate safety and liveness. 5) Synchronous and asynchronous message passing. 6) Introduction to distributed systems; problems in distributed systems such as distributed mutual exclusion, distributed clock synchronisation, and distributed shared memory. Distributed algorithms such as the Byzantine Generals algorithm, Lamport`s logical clocks algorithm. 7) Architectures for concurrent and distributed systems.

Version No:  1