Elements of Distributed Systems

This module will equip students with the ability to develop and apply a deep understanding of fundamental principles, techniques and technologies that underpin today's global IT infrastructure. They will learn to assess new systems technologies, to know where technologies fit in a comprehensive schema, and to know what to read in order to develop a deeper level of understanding. Students will focus on the properties of system components, and will become familiar with the strengths, weaknesses, scalability and bottlenecks of systems components. This will enable them to make intelligent and well-reasoned trade-offs between fundamental building blocks of distributed systems in today’s IT infrastructure.

This is a highly practical module, in which students build a major system representative of an end-to-end IT infrastructure, and is also highly discussion-oriented, with frequent in-class discussion sections and problem-solving group work. The module covers a very broad range of state-of-the-art techniques and principles of modern distributed systems. These including: caching, tiering, replication, synchronisation, failure and reliability. Students will also explore real-world technologies, from interaction paradigms in distributed systems, to peer-to-peer architectures and scalable and high-performance networking and storage.