Skip to content
SISP Home
← Back to Teaching
CCPG1055 Computer Science Required

Distributed Systems and Cloud Computing Taught 4 times (2024–2026)

This course introduces the fundamental principles of distributed and parallel systems, with special emphasis on those used in cloud computing platforms and massive and scalable data processing. Concepts of communication and coordination between distributed processes are explored, emphasizing the concepts of atomicity and consensus. It is emphasized that it is essential to use parallelism to achieve performance improvements, and systems decomposition, design and architecture strategies are studied, including implementation strategies, performance analysis and improvements (tuning). The concept of fault tolerance is also studied, with an emphasis on the maintenance of replicated state, introducing concepts that provide a connection with the concepts already introduced in the computer networking course.

View evaluations

Topics Covered

Evaluation activities Introduction to distributed systems and cloud computing. Reliability, scalability and fault tolerance of distributed systems. Parallel task decomposition models and data processing in the cloud. Communications between distributed processes. Design decisions and implementation of distributed systems. Theory of distributed systems.

Instruction Outcomes

  • Understand the different concepts and technologies that constitute the basis of the design and implementation of distributed systems, through their theoretical-practical study.
  • Apply the knowledge acquired in distributed and parallel systems, for their use, design and implementation in cloud computing platforms.
  • Design a parallel algorithm by applying "data parallelism" or "task-based decomposition", to reduce its execution time.
  • Analyze the advantages and disadvantages of the different design decisions that arise during the implementation of a distributed system, improving performance, scalability, strong consistency, and / or fault tolerance.

Student Outcomes

  • 2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  • 6. Apply computer science theory and software development fundamentals to produce computing-based solutions.

Bibliography

Textbooks

  • Maarten van Steen y Andrew S. Tanenbaum. Distributed Systems (3era)

Supplemental Materials

  • Coulouris, George F. & Dollimore, Jean & Kindberg, Tim & Blair, Gordon. Distributed Systems: Concepts and Design (5th Edition) (Hardcover; 2011-05-07)
  • Martin Kleppmann. Designing Data-Intensive Applications (Primera)
  • Brendan Burns. Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services (Primera)