Undergraduate Programme and Module Handbook 2026-2027
Module COMP4251: Advanced Algorithms & Distributed Network Computing
Department: Computer Science
COMP4251: Advanced Algorithms & Distributed Network Computing
| Type | Open | Level | 4 | Credits | 20 | Availability | Available in 2026/2027 | Module Cap | Location | Durham |
|---|
Prerequisites
- COMP2181 Theory of Computation
Corequisites
- None
Excluded Combination of Modules
- None
Aims
- To give students a deeper knowledge of algorithmic solutions for typical computer science problems.
- 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
- 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.
- Data structures such as hashes (universal, perfect, Cuckoo, Bloom filters), treaps, skip lists, splay trees
- Algorithm concepts: approximation, exact, fixed parameter tractable, polynomial
- Input restrictions: hereditary and intersection graph classes
- Graph width parameters
- Graph reconfiguration
Learning Outcomes
Subject-specific Knowledge:
- On completion of the module, students will be able to demonstrate:
- Knowledge of key problem-solving paradigms in the broad area of algorithmic design.
- An understanding of computing, abstraction, and algorithms for networks and decentralised systems.
- An understanding of formal concepts for designing and analysing distributed algorithms.
Subject-specific Skills:
- On completion of the module, students will be able to demonstrate:
- An ability to apply techniques and methods from the relevant topics to tackle fundamental algorithmic problems.
- An ability to abstract real-world problems and network architectures to provide and analyse solutions by distributed algorithms.
Key Skills:
- On completion of the module, students will be able to demonstrate:
- An ability to think critically.
- An ability to work with abstract problems.
- 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 advanced algorithms, distributed systems, distributed computing and distributed algorithms in various scenarios.
Teaching Methods and Learning Hours
| Activity | Number | Frequency | Duration | Total/Hours | Attendance Monitored |
|---|---|---|---|---|---|
| Lectures | 44 | 2 per week | 1 hour | 44 | |
| Preparation and Reading | 156 | ||||
| Total | 200 |
Summative Assessment
| Component: Examination | Component Weighting: 100% | ||
|---|---|---|---|
| Element | Length / duration | Element Weighting | Resit Opportunity |
| On Campus Written Examination | 2 hours | 100% | |
Formative Assessment:
Example formative exercises are given during the course.
■ Students who do not attend monitored activities shown under Teaching Methods and Learning Hours, or who fail to complete the summative or formative assessment(s) specified above, may be subject to the Academic Progress procedures defined in the University's General Regulation V, and may be required to leave the University.