COMP41720 Distributed Systems

Academic Year 2024/2025

Distribution is a key technology for constructing systems that can scale to meet high demand (such as web applications) or which are required to operate over large geographical areas (such as Sensor Networks). Understanding how to do this effectively is an important challenge in computer science, especially given the continued emergence of systems that are required to handle millions of concurrent users (Facebook, Google, Linkedin, Amazon, Wallmart, Netflix,...) where fluctuations in usage necessitate the addition or removal of servers to meet that changing demand.

This module explores this space from a practical perspective. Students will learn about and use a range of distribution techniques. They will explore the state-of-the-art and key theoretical issues by reviewing academic articles describing some of the most successful approaches developed to date. A final project will allow the students to apply these techniques through the development of a significant application.

Show/hide contentOpenClose All

Curricular information is subject to change

Learning Outcomes:

At the end of this module student will:

* Have an appreciation of the main issues and principles associated with distributed systems.

* Understand both theory and practice for a number of distributed programming models (Distributed Objects, Web Services, REST, Message-Oriented Middleware).

* Be aware of current trends in distributed system design (Reactive Systems, Microservices, ...)

* The ability to specify, design and implement a distributed system

* Be exposed to some of the theory behind distributed systems.

Indicative Module Content:

While completing the course, the students will learn about a number distributed programming models, such as: distributed objects, web services (SOAP / REST), message-oriented middleware, and actor programming. They will gain an appreciation of the issues that underpin the development of Distributed Systems (Fault Tolerance, CAP Theorem, Global Time), and understand the most prominent architectural styles (Client-Server, P2P, Monolithic Systems, Microservices). Students will also be exposed to additional programming models, distributed applications (e.g. distributed file systems), and advanced concepts (replication systems, fault tolerance) through peer learning.

Student Effort Hours: 
Student Effort Type Hours
Lectures

12

Small Group

8

Laboratories

28

Specified Learning Activities

14

Autonomous Student Learning

58

Total

120

Approaches to Teaching and Learning:
* Lab-based learning centered around a specific testbed system will be used to introduce and compare core distributed programming concepts.

* Theory and applications will be explored through review of one or more seminal papers from the area.

* Students will undertake a group project in which they will build on the basic techniques learn in the lab.
 
Requirements, Exclusions and Recommendations

Not applicable to this module.


Module Requisites and Incompatibles
Incompatibles:
COMP30220 - Distributed Systems


 
Assessment Strategy  
Description Timing Component Scale Must Pass Component % of Final Grade In Module Component Repeat Offered
Assignment(Including Essay): Five labs will be available throughout the semester. Students will submit reports and codes and be assessed, which contributes to 20% of the final grade. Week 3, Week 5, Week 7, Week 9, Week 11 Alternative linear conversion grade scale 40% Yes

20

Yes
Assignment(Including Essay): The students will be asked to write a review of a research article on distributed systems and will be assessed based on that. Week 8 Alternative linear conversion grade scale 40% Yes

20

Yes
Group Work Assignment: The students will be tested on their ability to implement a complex software project as part of a team, including division of labour, source control, and integration of different components. Week 12 Alternative linear conversion grade scale 40% Yes

60

Yes

Carry forward of passed components
No
 
Resit In Terminal Exam
Spring No
Please see Student Jargon Buster for more information about remediation types and timing. 
Feedback Strategy/Strategies

• Feedback individually to students, post-assessment

How will my Feedback be Delivered?

Not yet recorded.