Skip to navigation | Skip to main content | Skip to footer

This is an archived syllabus from 2013-2014

COMP18112 Fundamentals of Distributed Systems syllabus 2013-2014

COMP18112 Fundamentals of Distributed Systems

Level 1
Credits: 10
Enrolled students: 222

Course leader: Alvaro A. A. Fernandes

Additional staff: view all staff

Assessment methods

  • 75% Written exam
  • 25% Practical skills assessment
Sem 2 Lecture 1.1 Mon 10:00 - 10:00 -
Sem 2 Lecture 1.1 Wed 11:00 - 11:00 -
Sem 2 B Examples LF15 Tue 13:00 - 13:00 Y
Sem 2 B Examples LF15 Mon 13:00 - 13:00 A+Z
Sem 2 B Examples LF15 Thu 14:00 - 14:00 M+W
Sem 2 B Examples LF15 Thu 15:00 - 15:00 B+X
Sem 2 A w3+ Lab G23 Mon 13:00 - 13:00 A+Z
Sem 2 A w3+ Lab G23 Thu 13:00 - 13:00 M+W
Sem 2 A w3+ Lab G23 Tue 13:00 - 13:00 Y
Sem 2 A w3+ Lab G23 Tue 15:00 - 15:00 B+X


Distributed systems take many forms, and many of the best known and most widely used computer systems are as prevalent as they are because of their distributed nature. This course unit introduces some of the essential concepts underlying distributed systems.

Students are guided into an exploration of exemplar distributed applications (such as the web, email, file sharing and multi-user gaming ) and, through these exemplars, are introduced to the basic concepts that underpin modern distributed computing.

Recurring themes will include how distributed systems offer transparencies of various kinds and how they must contend with a range of complex issues to achieve that.

We also look at how massive distribution enables high-performance computing, how service abstractions in the web enable business-to-business integration and how the web of hyperlinked documents is changing into a richer web of data.


This course unit aims to provide students with a basic understanding of distributed computing, drawing on their general experience as users of distributed applications to inform the discovery, description and classification of fundamental concepts in distributed systems.

This course unit builds on the knowledge gained by students in COMP10120: The First Year Team Project course unit and aims to equip them better to benefit from more technically-demanding course units in second and third years (in particular, the course units on Computer Networks, Distributed Computing and Mobile Systems).

After a brief introduction that contrasts the distributed view of computing with the centralized one presented in other course units, the course unit progresses by studying a few exemplar distributed applications, one by one. Each exemplar application is chosen with a view to illustrating issues and challenges arising in distributed systems.

After each dissection of an exemplar application, time is taken to make explicit, in a more systematic way, some of the basic principles involved, how tools and techniques have been developed that enforce those principles, and how these tools and techniques both give rise and presuppose the distributed computing infrastructures that pervademodern computing.


  • Introduction to Distributed Systems [2]
    • Overview of the Course Unit
    • Motivation, Definition and Challenges of Distributed Systems
  • Axioms/Fallacies of Distributed Computing [1]
  • Transparency Goals of Distributed Systems [1]
  • Case Study (1): Internet, Web and Email [3]
  • System Software: An Historical Overview [2]
  • Centralized to Threaded to Parallel to Distributed Systems [1]
  • Interconnects and Protocol Stacks [1]
  • Architectural Paradigms for Distributed Systems [1]
  • Inter-process Communication
    • Synchronization/Blocking Primitives [1]
    • Socket-Level Client/Server Systems
  • Examples of Distributed Algorithms [2]
  • Case Study (2): File Sharing [2]
  • Case Study (3): Multi-User Gaming [2]
  • Massive Distribution for Performance [1]
  • Services over the Web [1]
  • A Web of Data [1]

Feedback methods

Examples classes, lab sessions.

Study hours

  • Assessment written exam (2 hours)
  • Lectures (24 hours)
  • Practical classes & workshops (16 hours)

Employability skills

  • Analytical skills
  • Problem solving

Learning outcomes

On successful completion of this unit, a student will be able to:

Learning outcomes are detailed on the COMP18112 course unit syllabus page on the School of Computer Science's website for current students.

Reading list

No reading list found for COMP18112.

Additional notes

Course unit materials

Links to course unit teaching materials can be found on the School of Computer Science website for current students.