Cloud Computing Concepts: Part 2 (Coursera)

Cloud Computing Concepts: Part 2 (Coursera)

Cloud computing systems today, whether open-source or used inside companies, are built using a common set of core techniques, algorithms, and design philosophies—all centered around distributed systems. Learn about such fundamental distributed computing "concepts" for cloud computing. Some of these concepts include: Clouds, MapReduce, key-value stores, Classical precursors, Widely-used algorithms, Classical algorithms, Scalability, Trending areas, And more!

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

Know how these systems work from the inside out. Get your hands dirty using these concepts with provided homework exercises. In the programming assignments, implement some of these concepts in template code (programs) provided in the C++ programming language. Prior experience with C++ is required.
The course also features interviews with leading researchers and managers, from both industry and academia.
This course builds on the material covered in the Cloud Computing Concepts, Part 1 course.
Course 2 of 6 in the Cloud Computing Specialization.

Syllabus

WEEK 1
Course Orientation and Classical Distributed Algorithms Continued
Lesson 1: To coordinate machines in a distributed system, this module first looks at classical algorithms for electing a leader, including the Ring algorithm and Bully algorithm. We also cover how Google’s Chubby and Apache Zookeeper solve leader election. Lesson 2: This module covers solutions to the problem of mutual exclusion, which is important for correctness in distributed systems with shared resources. We cover classical algorithms, including Ricart-Agrawala’s algorithm and Maekawa’s algorithm. We also cover Google’s Chubby support for mutual exclusion.

WEEK 2
Concurrency and Replication Control
Lesson 1: Transactions are an important component of many cloud systems today. This module presents building blocks to ensure transactions work as intended, from Remote Procedure Calls (RPCs), to serial equivalence for transactions, to optimistic and pessimistic approaches to concurrency control, to deadlock avoidance/prevention. Lesson 2: This module covers how replication – maintaining copies of the same data at different locations – is used to provide many nines of availability in distributed systems, as well as different techniques for replication and for ensuring transactions commit correctly in spite of replication.

WEEK 3
Emerging Paradigms
Lesson 1: We study the emerging area of stream processing, touching on key design aspects of Apache Storm. Lesson 2: We study how enormous graphs can be processed in clouds. Lesson 3: We study various types of networks/graphs that are both natural and artificial, and their surprising commonalities. Lesson 4: This module presents classical scheduling algorithms that have been used in operating systems since the inception of computers. We then cover two popular scheduling algorithms for Hadoop.

WEEK 4
Classical Systems
Lesson 1: When files and directories are stored/accessed over the network, it is called a distributed file system. This module covers the working of distributed file systems like NFS and AFS. Lesson 2: This module covers Distributed Shared Memory systems, their techniques, and pros/cons. Lesson 3: This module looks at the area of sensor networks, starting from what’s inside a sensor mote and how networks of them work.

WEEK 5
Real-Life Behaviors
Lesson 1: This module is a primer on basic security concepts, not just applied to distributed systems, but also more generally. We study various policies and mechanisms, including encryption, authentication, and authorization. Lesson 2: This module presents case studies of real datacenter outages, and attempts to draw lessons on how to prevent them and how to better prepare for them.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Cloud Computing Security (Coursera) Coursera
University of Colorado System

Cloud Computing Security (Coursera)

In this MOOC, we will learn Cloud Computing basics using AWS as an example, We will guide you to create AWS account, planning AWS resources for your cloud systems, create AWS EC2 instances, access them and configure the popular LAMP web services with MySQL database. We will guide you to create user accounts for your programmer or operators using AWS Identify and Access management GUI, Register your domain name and setup DNS entry for your servers using AWS Route 53 in 22 mintues! and show you how to use AWS Command Line interface to create and managing instances and services programmatically.

Oct 5th 2026
4 Weeks
The Fundamental of Data-Driven Investment (Coursera) Coursera
Sungkyunkwan University - SKKU

The Fundamental of Data-Driven Investment (Coursera)

In this course, the instructor will discuss the fundamental analysis of investment using R programming. The course will cover investment analysis topics, but at the same time, make you practice it using R programming. This course's focus is to train you to do the elemental analysis for investment management that you might need to do in your job every day. Additionally, the study note to do using Python programming will be provided.

Oct 5th 2026
4 Weeks
Information Theory (Coursera) Coursera
The Chinese University of Hong Kong

Information Theory (Coursera)

At the completion of this course, the student should be able to: demonstrate knowledge and understanding of the fundamentals of information theory; appreciate the notion of fundamental limits in communication systems and more generally all systems; develop deeper understanding of communication systems; apply the concepts of information theory to various disciplines in information science.

Oct 5th 2026
13-24 Weeks
Principles of Computing (Part 2) (Coursera) Coursera
Rice University

Principles of Computing (Part 2) (Coursera)

This two-part course introduces the basic mathematical and programming principles that underlie much of Computer Science. Understanding these principles is crucial to the process of creating efficient and well-structured solutions for computational problems. To get hands-on experience working with these concepts, we will use the Python programming language. The main focus of the class will be weekly mini-projects that build upon the mathematical and programming principles that are taught in the class.

Oct 5th 2026
4 Weeks
Algorithmic Thinking (Part 2) (Coursera) Coursera
Rice University

Algorithmic Thinking (Part 2) (Coursera)

Experienced Computer Scientists analyze and solve computational problems at a level of abstraction that is beyond that of any particular programming language. This two-part class is designed to train students in the mathematical concepts and process of "Algorithmic Thinking", allowing them to build simpler, more efficient solutions to computational problems.

Oct 5th 2026
4 Weeks
IBM z/OS Rexx Programming (Coursera) Coursera
IBM

IBM z/OS Rexx Programming (Coursera)

This course is designed to teach you the basic skills required to write programs using the REXX language in z/OS. The course covers the TSO extensions to REXX and interaction with other environments such as the MVS console, running REXX in batch jobs, and compiling REXX. A total of 11 hands-on labs on an IBM Z server (via remote Skytap access) are part of this course.

Oct 5th 2026
5-12 Weeks
Computer Science: Programming with a Purpose (Coursera) Coursera
Princeton University

Computer Science: Programming with a Purpose (Coursera)

The basis for education in the last millennium was “reading, writing, and arithmetic;” now it is reading, writing, and computing. Learning to program is an essential part of the education of every student, not just in the sciences and engineering, but in the arts, social sciences, and humanities, as well. Beyond direct applications, it is the first step in understanding the nature of computer science’s undeniable impact on the modern world.

Oct 5th 2026
5-12 Weeks
Introducción a la programación en Python I: Aprendiendo a programar con Python (Coursera) Coursera
Pontificia Universidad Católica de Chile

Introducción a la programación en Python I: Aprendiendo a programar con Python (Coursera)

Decía Steve Jobs que “todo el mundo debería aprender a programar un ordenador porque esto te ayuda a pensar”. Hoy en día la programación es una herramienta fundamental para el desarrollo de la tecnología moderna. Este curso te introduce en el mundo de la programación en el lenguaje Python.

Oct 5th 2026
5-12 Weeks
The Finite Element Method for Problems in Physics (Coursera) Coursera
University of Michigan

The Finite Element Method for Problems in Physics (Coursera)

This course is an introduction to the finite element method as applicable to a range of problems in physics and engineering sciences. The treatment is mathematical, but only for the purpose of clarifying the formulation. The emphasis is on coding up the formulations in a modern, open-source environment that can be expanded to other applications, subsequently.

Oct 5th 2026
13-24 Weeks
Introdução ao Desenvolvimento de Aplicativos Android (Coursera) Coursera
Universidade Estadual de Campinas - UNICAMP

Introdução ao Desenvolvimento de Aplicativos Android (Coursera)

Este curso tem como objetivo propiciar um primeiro contato com a Programação para Dispositivos Móveis que operam na plataforma Android. O Android Studio será utilizado como ambiente de desenvolvimento desde o início do curso e você receberá dicas de como obter ajuda quando alguma tarefa estiver consumindo mais tempo do que o necessário. Ao solucionar problemas por conta própria, você irá adquirir a autonomia necessária para concluir projetos de programação.

Oct 5th 2026
5-12 Weeks