DISTRIBUTED SYSTEMS - 2020/1

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

CHOCKLER Gregory (Computer Sci)

Number of Credits: 15

ECTS Credits: 7.5

Framework: FHEQ Level 6

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

Overall student workload

Workshop Hours: 22

Independent Learning Hours: 117

Lecture Hours: 11

Module Availability

Semester 2

Prerequisites / Co-requisites

None.

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

  • Replication

  • Advanced and modern distributed systems (Blockchains and Distributed Ledgers)

  • Security principles for Distributed Systems  


Assessment pattern

Assessment type Unit of assessment Weighting
Coursework INDIVIDUAL CW A: DISTRIBUTED SYSTEM TOOL & DESIGN 10
Coursework GROUP CW B: DISTRIBUTED SYSTEM DESIGN & IMPLEMENTATION 20
Examination 2 HOUR UNSEEN EXAMINATION 70

Alternative Assessment

N/A

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) An individual coursework A and a group based coursework B 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

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

https://readinglists.surrey.ac.uk
Upon accessing the reading list, please search for the module using the module code: COM3026

Other information

N/A

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 2020/1 academic year.