Module code: COM3026

Module Overview

A distributed system is built of a network of computing devices, which coordinate their actions via message passing to achieve a common goal. Typically, system components are assumed to operate concurrently, lack a global clock and to fail independently. This module shall build and consolidate your knowledge of advanced algorithms, computer networking and/or parallel computing. You shall learn to describe the principles of distributed systems, such as communication, scheduling and fault tolerance as well as to compare and contrast between a broad set of instances of distributed systems, algorithms and protocols (e.g., peer-to-peer systems, distributed hash tables, MixNets, distributed ledger technologies) within the context of various applications.

Module provider

Computer Science

Module Leader

WILLIAMS DM Dr (Computer Sci)

Number of Credits: 15

ECTS Credits: 7.5

Framework: FHEQ Level 6

JACs code: I100

Module cap (Maximum number of students): N/A

Module Availability

Semester 2

Prerequisites / Co-requisites


Module content

Content covered will include key principles, concepts, architectures, algorithms and technologies for distributed systems, for example:

Distributed System Models
Time in Distributed Systems (Clock Synchronisation, Logical Time)
Distributed Algorithms (Mutual Exclusion, Leader Election, Consensus)
Fault Tolerance
Interprocess Communication
Remote Invocation
Message Routing
Coordination and Agreement
Distributed Transactions
Advanced and modern distributed systems (Blockchains and Distributed Ledgers)
Security principles for Distributed Systems  

Assessment pattern

Assessment type Unit of assessment Weighting

Alternative Assessment


Assessment Strategy

The assessment strategy is designed to provide students with the opportunity to demonstrate their achievement of the learning outcomes. Summative assessment shall comprise of: (1) A group based coursework that shall assess learning outcomes 2, 3, 4 and 5 and will include aspects of distributed systems design and implementation; (2) A 2 hour examination that shall assess learning outcomes 1, 2, 4 and 5.

Assessment criteria for the coursework will be released alongside the coursework assignment.

Formative assessment is provided via verbal feedback given in workshop/lab sessions on the students attempts at the workshop/lab exercises and theoretical questions.

Module aims

  • This module will equip the students with the analytical skills and knowledge to design and architect scalable, dependable and secure distributed systems.
  • Students will develop their ability to construct and present sound design decisions using the knowledge and analytical skills they will acquire.

Learning outcomes

Attributes Developed
001 Describe the key characteristics and principal concepts of distributed systems and critically compare them to a centralised view of computing. KC
002 Explain the primary challenges of developing scalable, dependable and secure distributed systems and identify these within specific contexts. KC
003 Identify, synthesise and critically evaluate information regarding distributed systems paradigms, models and technologies from academic books, academic journal and secondary data. KCPT
004 Critically appraise the applicability of various distributed computing principles and technologies to satisfy a given set of system requirements. KCPT
005 Develop and present sound arguments to justify design decisions made during the development of distributed systems within a given context. KCPT

Attributes Developed

C - Cognitive/analytical

K - Subject knowledge

T - Transferable skills

P - Professional/Practical skills

Overall student workload

Workshop Hours: 22

Independent Study Hours: 117

Lecture Hours: 11

Methods of Teaching / Learning

The learning and teaching strategy is designed to provide students with the knowledge, skills and practical experience covering the module aims and learning outcomes.

For each teaching week, the learning and teaching methods include:

1 hour lecture, covering the key principles of distributed systems.
2 hour of workshops/labs, in which students shall develop and practice their ability to synthesize, apply and evaluate distributed systems concepts within the context of realistic case studies.

There will also be a revision session to support the module.

Indicated Lecture Hours (which may also include seminars, tutorials, workshops and other contact time) are approximate and may include in-class tests where one or more of these are an assessment on the module. In-class tests are scheduled/organised separately to taught content and will be published on to student personal timetables, where they apply to taken modules, as soon as they are finalised by central administration. This will usually be after the initial publication of the teaching timetable for the relevant semester.

Reading list

Reading list for DISTRIBUTED SYSTEMS : http://aspire.surrey.ac.uk/modules/com3026

Other information


Programmes this module appears in

Programme Semester Classification Qualifying conditions
Computer Science BSc (Hons) 2 Optional A weighted aggregate mark of 40% is required to pass the module
Computing and Information Technology BSc (Hons) 2 Optional A weighted aggregate mark of 40% is required to pass the module

Please note that the information detailed within this record is accurate at the time of publishing and may be subject to change. This record contains information for the most up to date version of the programme / module for the 2018/9 academic year.