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

University of Illinois at Urbana-Champaign

Cloud Computing Concepts, Part 1

University of Illinois at Urbana-Champaign via 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/NoSQL stores, classical distributed algorithms, widely-used distributed algorithms, scalability, trending areas, and much, much more! 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.


  • Week 1: Orientation, Introduction to Clouds, MapReduce
    • This course is oriented towards learners with similar backgrounds as juniors and seniors in a CS undergraduate curriculum. Since learners come from various backgrounds, it is critical you view this lecture AND pass the prerequisite test. This will ensure you have many of the assumed prerequisite pieces of knowledge required to enjoy this course.
  • Week 2: Gossip, Membership, and Grids
    • Lesson 1: This module teaches how the multicast problem is solved by using epidemic/gossip protocols. It also teaches analysis of such protocols. Lesson 2: This module covers the design of failure detectors, a key component in any distributed system. Membership protocols, which use failure detectors as components, are also covered. Lesson 3: This module covers Grid computing, an important precursor to cloud computing.
  • Week 3: P2P Systems
    • P2P systems: This module teaches the detailed design of two classes of peer to peer systems: (a) popular ones including Napster, Gnutella, FastTrack, and BitTorrent; and (b) efficient ones including distributed hash tables (Chord, Pastry, and Kelips). Besides focusing on design, the module also analyzes these systems in detail.
  • Week 4: Key-Value Stores, Time, and Ordering
    • Lesson 1: This module motivates and teaches the design of key-value/NoSQL storage/database systems. We cover the design of two major industry systems: Apache Cassandra and HBase. We also cover the famous CAP theorem. Lesson 2: Distributed systems are asynchronous, which makes clocks at different machines hard to synchronize. This module first covers various clock synchronization algorithms, and then covers ways of tagging events with causal timestamps that avoid synchronizing clocks. These classical algorithms were invented decades ago, yet are used widely in today’s cloud systems.
  • Week 5: Classical Distributed Algorithms
    • Lesson 1: This module covers how to calculate a distributed snapshot, leveraging causality again to circumvent the synchronization problem. Lesson 2: This lecture teaches how to order multicasts in any distributed system. Algorithms for assigning timestamp tags to multicasts using various flavors of ordering – FIFO, Causal, and Total – are covered. The module also covers virtual synchrony, a paradigm that combines reliable multicasts with membership views. Lesson 3: Consensus is one of the most important problems in a distributed system, enabling multiple machines to agree. This module uses Paxos, one of the most popular consensus solutions used in the industry today. Paxos is not perfect because consensus cannot be solved completely – an optional lecture presents the famous FLP proof of impossibility of consensus.

Taught by

Indranil Gupta


2.6 rating, based on 21 Class Central reviews

4.3 rating at Coursera based on 1054 ratings

Start your review of Cloud Computing Concepts, Part 1

  • Date: 27th February 2016 Background: I have completed 4 courses in the Coursera + Uni of Illinois Urbana-Champaign Cloud Computing Specialization -- Cloud Computing Concepts (1 & 2), CC Applications, Cloud Networking. I enrolled for the Capstone,…
  • This course is worthwhile to take as it's one of the only distributed computing courses I found that gives overview of cloud technology. However the delivery can use an improvement. It's just slides with the instructor reading through them. The qui…
  • I thought it would be a very interesting topic, but actually, it's the worst course I have taken on Coursera.

    The professor go through the topic very quickly and fails to give you the insights of each algorithm. After finishing the videos and homework, I feel like I am a calculator: I can give you the right results based on the steps of each algorithms, but I don't know what exactly problems you are going to solve.

    My suggestion would be taking the course like a basic guideline of distributed system algorithm. If you want to know deeper of each algorithm (like how these algorithms are used in real project), you may better read technical articles instead.
  • Anonymous
    First of all, I've followed the first 4 weeks and done all the homework without any problem.
    But, I have to say that very poor delivery takes this interesting subject into a boring course. Is that the quality of Illinois University ?
    Even with that, breaking the norm, there is not "honor code" diploma available, you have to pay some bucks for a "verified" diploma (which for me has the same value as the honor code).
  • It is worth taking it if you are really interested in core concepts that runs cloud computing. Course is heavy and stimulating but worth (Not for weak hearted). Compare to other courses that i've taken on coursera lecture time is more (almost 1.7 times). And as this course is really very vast and so the ground being covered is really huge in a limited time availability. It is not hello world programming tuts in cloud so please don't expect it to be one. I've just completed first part successfully and enjoying learning in second part. All the best guys. :-)
  • Anonymous
    Worst course I have ever took. Assignment are very complex and no clear instruction. You need to know C++ very well for MP and HW assignment is too difficult. Instructor is just giving very simple examples in video, you have to spend lot hours outside to understand and do the homework. Finally I have decided to drop the coarse!
  • Anonymous
    The course was almost rushed over, The instructor seems to not understand how to teach over this platform. Avoid this course if it is purely for interest, or waste lot of time trying to understand on your own.
  • Arash Pourhabibi
    Course materials were good and coherent. The programming assignment was not prepared well. After all I find it very informative.
  • Though plain narrated tone and a little out-dated resource, this course is by far the most accessible online course. Programming assignment is very fun as well, which require enough effort to finish.
  • Anonymous
  • Basil Rormose
  • Bayu Prasetyo
  • Profile image for Kirill Soloviev
    Kirill Soloviev
  • Profile image for Hadrien Zalek
    Hadrien Zalek
  • Anonymous

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.