Lernergebnisse
Most modern computer systems are inherently distributed and networked, including multi-core computers, wireless sensorsystems, datacenters, peer-to-peer systems, or cryptocurrencies, to just give some examples In order to operate correctly and efficiently, all these systems rely on clever algorithms. Some of the underlying algorithms are fundamentaland are used by most of the systems, others are specialized and exploit specific features of the particular distributed system. The goal of this lecture is to provide the students with tools and techniques to reason about efficient algorithms for networks and distributed systems. The lecture is problem-oriented and structured into different fundamental principles, such as Distributed Coordination, Decentralization, Randomization, Indirection, etc. Each lecture will cover a different basic problem (such as Load Balancing, Medium Access, Symmetry Breaking, etc.) and will be self-contained. By the end of the lecture, the student will be able to develop her/his own network algorithms, and formally prove correctness as well as complexity guarantees (e.g., on the computational complexity or the communication complexity). The students will also have a good understanding of when to apply which principle, i.e., where randomization can be useful and where not, or to which extent a distributed system should be decentralized.The students will further have a good idea of the different natures of today's networked systems. If time permits, we will also extend our discussion beyond computer networks and have an algorithmic look at social networks. This module is principally designed to impart: technical skills: 40x, method skills: 40x, system skills 10x, social skills 10x