Welcome to the exciting world of Distributed Systems and Distributed Cloud Computing! In this course, we will explore the fascinating field of distributed and cloud computing, where multiple computers work together to solve complex problems.
Distributed systems are a key part of our daily lives, even if we don’t always realise it. When you use the internet to send an email, stream a movie, text a group of friends over your favourite messenger app or even just browse a webpage, you’re interacting with distributed systems. These systems allow us to process large amounts of data quickly and reliably, making them essential for many modern technologies.
From the vast network of servers that make up the cloud, to the interconnected devices in the Internet of Things, distributed systems are all around us. Join us as we delve into the principles and practices that underpin these crucial systems.
This space hosts materials from my lectures on 2 University of Suffolk undergraduate modules namely:
- IDASEG301 - Distributed Systems (DTS, year 3 UG)
- IMDBMI303 - Distributed and Cloud Computing (BSc Computing, year 3 UG)
The following lectures are usually taught in either the intensive duoblock (IMDBMI303) or the semesterised term (IDASEG301):
- Lecture 01: Introduction to distributed computing
- Lecture 02: Distributed Storage
- Lecture 03: Distributed Processing
- Lecture 04: Distributed Architectures
- Lecture 05: Distributed Communication
- Lecture 06: Synchronisation in Distributed Systems
- Lecture 07: Coordination & Agreement in Distributed Systems
- Lecture 08: Securing Distributed Systems
- Lecture 09: Distributed Databases
- Lecture 10: Building a Distributed Application (dsapp) - parts 1 & 2
I usually get the students to visit either the BT showcase at Adastral Park and/or organise an invited talk from an industry expert where availability permits.
I have also taught intermittedly (depending on cohort specialisation, time available and learning pace) the following topic specific lectures:
- Lecture 11: Topics in DS: Fault tolerance
- Lecture 12: Topics in DS: Orchestrating Distributed Systems
- Lecture 13: Topics in DS: Distributed Cloud Computing
- Lecture 14: Topics in DS: Federated Machine Learning
- Lecture 15: Topics in DS: Edge Computing (also Mist and Fog Computing)
- Lecture 16: Topics in DS: Distributed Ledgers and Blockchain applications
- Lecture 17: Topics in DS: Quantum Computing
As I am working my way through updating this documents, I am using a colour coded system to flag which of the units have been recently updated (🟢) and which are work in progress (🟡). Sections with considerable mistakes (⭕) should not be referenced or used for any of your work until they become green.