Skip to main content
 

COMP4227: Distributed Network Computing and Algorithms

Please ensure you check the module availability box for each module outline, as not all modules will run in each academic year. Each module description relates to the year indicated in the module availability box, and this may change from year to year, due to, for example: changing staff expertise, disciplinary developments, the requirements of external bodies and partners, and student feedback. Current modules are subject to change in light of the ongoing disruption caused by Covid-19.

Type Open
Level 4
Credits 10
Availability Available in 2024/2025
Module Cap None.
Location Durham
Department Computer Science

Prerequisites

  • COMP2181 Theory Of Computation

Corequisites

  • None

Excluded Combinations of Modules

  • None

Aims

  • To introduce students to network based distributed computing paradigms and algorithm design concepts.
  • To equip students with the ability to design and analyse efficient distributed algorithms and data structures.

Content

  • Network abstracted as a graph.
  • Distributed computing models and analysis: LOCAL, CONGEST . . .
  • Fundamental and classic distributed algorithms: Flooding, Leader Election, etc.
  • Centralised to distributed via classic graph problems: Maximal Independent Set (MIS), Colouring, Matching, Minimum Spanning Tree (MST), etc.
  • (Advanced) Topics from the following:
  • (Secure) Computation despite faults: Fault-tolerant distributed computation despite attacks and/or edge/node insertions/deletions.
  • Byzantine fault-tolerance: Foundations of Blockchain/Cryptocurrency.
  • Autonomous systems: Self-stabilization, Self-healing, Mobile robots.
  • Algorithm complexity and general design techniques: Network Decomposition and Graph Shattering.

Learning Outcomes

Subject-specific Knowledge:

  • On completion of the module, students will be able to demonstrate:
  • An understanding of computing, abstraction, and algorithms for networks and decentralised systems;
  • An understanding of formal concepts for designing and analysing distributed algorithms;
  • An understanding of fundamental distributed algorithms and distributed variants of classic graph problems;
  • An understanding of advanced distributed concepts such as fault-tolerant algorithms.

Subject-specific Skills:

  • On completion of the module, students will be able to demonstrate:
  • An ability to abstract real-world problems and network architectures to provide solutions by specific distributed algorithms;
  • Appreciating real world constraints and an ability to reason about decentralised and distributed systems;
  • An ability to design distributed solutions (algorithms) and analyse accordingly.

Key Skills:

  • On completion of the module, students will be able to demonstrate:
  • An ability to abstract problems to devise computational solutions;
  • An ability to reason about multi-agent, decentralised and distributed systems and networks;
  • A scientific approach to algorithm and system design.

Modes of Teaching, Learning and Assessment and how these contribute to the learning outcomes of the module

  • Lectures enable the students to learn new material relevant to distributed systems, distributed computing and distributed algorithms in various scenarios.
  • Summative assessments assess the understanding of distributed systems, distributed computing, distributed algorithms, and the ability to design and analyse such algorithms.

Teaching Methods and Learning Hours

ActivityNumberFrequencyDurationTotalMonitored
Lectures222 per week1 hour22 
Preparation and reading78 
Total100 

Summative Assessment

Component: ExaminationComponent Weighting: 100%
ElementLength / DurationElement WeightingResit Opportunity
Examination2 hours100No

Formative Assessment

Example exercises are given during the course. Simulating a distributed algorithm in class/lab.

More information

If you have a question about Durham's modular degree programmes, please visit our FAQ webpages, Help page or our glossary of terms. If you have a question about modular programmes that is not covered by the FAQ, or a query about the on-line Undergraduate Module Handbook, please contact us.

Prospective Students: If you have a query about a specific module or degree programme, please Ask Us.

Current Students: Please contact your department.