Cloud Computing Concepts, Part 1

Location type
Logo Coursera
Provider rating: starstarstarstar_borderstar_border 6.3 Coursera has an average rating of 6.3 (out of 4 reviews)

Need more information? Get more details on the site of the provider.

Description

When you enroll for courses through Coursera you get to choose for a paid plan or for a free plan

  • Free plan: No certicification and/or audit only. You will have access to all course materials except graded items.
  • Paid plan: Commit to earning a Certificate—it's a trusted, shareable way to showcase your new skills.

About this course: 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 …

Read the complete description

Frequently asked questions

There are no frequently asked questions yet. Send an Email to info@springest.com

Didn't find what you were looking for? See also: Algorithms, C/C++, Programming, Hour of Code, and Ruby on Rails.

When you enroll for courses through Coursera you get to choose for a paid plan or for a free plan

  • Free plan: No certicification and/or audit only. You will have access to all course materials except graded items.
  • Paid plan: Commit to earning a Certificate—it's a trusted, shareable way to showcase your new skills.

About this course: 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.

Who is this class for: Who this class is for: This course is intended for students with similar backgrounds as junior or senior undergraduates in computer science. This course will teach you basic algorithmic and design concepts for distributed systems, as used in today’s cloud systems. Much of the course, including quizzes, is conceptual and not programming oriented. The programming assignment assumes some knowledge of C++ (if you have only Java experience, you should be able to pick up C++ quickly may suffice), and allow you to write distributed algorithms in an emulated distributed system on your own machine. To ensure you have the necessary prerequisites, you need to take the prerequisite quiz and achieve a high passing score (at least 90%, preferably 100%). Based on prior student experiences, the Linux/Unix environment may work better for the programming assignments than Windows. Who this class is NOT for: This course is NOT intended for those: (1) wishing to get a high level overview of cloud computing (you can use Wikipedia for that); (2) wishing to do detailed programming in a real cloud (the Cloud Capstone and Cloud Applications MOOCs provide you that); (3) who are averse to theoretical and algorithmic concepts; (4) with little or no prior programming experience in C++ or Java; (5) who expect to see industry-quality code in programming assignments (these are play programming assignments focused on allowing you to implement concepts you learn from lectures, and are not intended for immediate deployment); (6) those not familiar with setting up IDEs/compilers, etc., especially for C++; or (7) those who want to rush through lectures and/or videos and attempt quizzes in haste (quizzes are hard, so make sure you view lectures completely and comprehensively before attempting quizzes).

Created by:  University of Illinois at Urbana-Champaign
  • Taught by:  Indranil Gupta, Associate Professor

    Department of Computer Science
Basic Info Course 1 of 6 in the Cloud Computing Specialization Level Beginner Commitment 5 weeks of study, 5 - 10 hours/week Language English How To Pass Pass all graded assignments to complete the course. User Ratings 4.5 stars Average User Rating 4.5See what learners said Coursework

Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.

Help from your peers

Connect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.

Certificates

Earn official recognition for your work, and share your success with friends, colleagues, and employers.

University of Illinois at Urbana-Champaign The University of Illinois at Urbana-Champaign is a world leader in research, teaching and public engagement, distinguished by the breadth of its programs, broad academic excellence, and internationally renowned faculty and alumni. Illinois serves the world by creating knowledge, preparing students for lives of impact, and finding solutions to critical societal needs.

Syllabus


WEEK 1


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.


16 videos, 8 readings, 2 practice quizzes expand


  1. Reading: Orientation Overview
  2. Video: Introduction to Cloud Computing Concepts, Part 1
  3. Reading: Syllabus
  4. Reading: About the Discussion Forums
  5. Practice Quiz: Orientation Quiz
  6. Video: Orientation Towards Cloud Computing Concepts: Some Basic Computer Science Fundamentals
  7. Reading: Instructions for Taking the Prerequisite Quiz
  8. Practice Quiz: Prerequisite Quiz
  9. Discussion Prompt: Getting to Know Your Classmates
  10. Reading: Course Learning Community and Social Media
  11. Reading: Week 1 Overview
  12. Video: Week 1 Introduction
  13. Video: 1.1. Why Clouds?
  14. Video: 1.2. What is a Cloud?
  15. Video: 1.3. Introduction to Clouds: History
  16. Video: 1.4. Introduction to Clouds: What's New in Today's Clouds
  17. Video: 1.5. Introduction to Clouds: New Aspects of Clouds
  18. Video: 1.6. Introduction to Clouds: Economics of Clouds
  19. Video: 2.1. A cloud IS a distributed system
  20. Video: 2.2. What is a distributed system?
  21. Video: 3.1. MapReduce Paradigm
  22. Video: 3.2. MapReduce Examples
  23. Video: 3.3. MapReduce Scheduling
  24. Video: 3.4. MapReduce Fault-Tolerance
  25. Video: Interview with Sumeet Singh
  26. Reading: Homework 1 Instructions
  27. Discussion Prompt: Homework 1 Discussion
  28. Reading: Programming Assignment Instructions

Graded: Homework 1

WEEK 2


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.


14 videos, 2 readings expand


  1. Reading: Week 2 Overview
  2. Video: Week 2 Introduction
  3. Video: 1.1. Multicast Problem
  4. Video: 1.2. The Gossip Protocol
  5. Video: 1.3. Gossip Analysis
  6. Video: 1.4. Gossip Implementations
  7. Video: 2.1. What is Group Membership List?
  8. Video: 2.2. Failure Detectors
  9. Video: 2.3. Gossip-Style Membership
  10. Video: 2.4. Which is the best failure detector?
  11. Video: 2.5. Another Probabilistic Failure Detector
  12. Video: 2.6. Dissemination and suspicion
  13. Video: 3.1. Grid Applications
  14. Video: 3.2. Grid Infrastucture
  15. Video: Interview with William Gropp
  16. Reading: Homework 2 Instructions
  17. Discussion Prompt: Homework 2 Discussion

Graded: Homework 2

WEEK 3


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.


10 videos, 2 readings expand


  1. Reading: Week 3 Overview
  2. Video: Week 3 Introduction
  3. Video: 1. P2P Systems Introduction
  4. Video: 2. Napster
  5. Video: 3. Gnutella
  6. Video: 4. FastTrack and BitTorrent
  7. Video: 5. Chord
  8. Video: 6. Failures in Chord
  9. Video: 7. Pastry
  10. Video: 8. Kelips
  11. Video: Blue Waters Supercomputer
  12. Reading: Homework 3 Instructions
  13. Discussion Prompt: Homework 3 Discussion

Graded: Homework 3

WEEK 4


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.


12 videos, 3 readings expand


  1. Reading: Week 4 Overview
  2. Video: Week 4 Introduction
  3. Video: 1.1. Why Key-Value/NOSQL?
  4. Video: 1.2. Cassandra
  5. Video: 1.3. The Mystery of X-The Cap Theorem
  6. Video: 1.4. The Consistency Spectrum
  7. Video: 1.5. HBase
  8. Video: 2.1. Introduction and Basics
  9. Video: 2.2. Cristian's Algorithm
  10. Video: 2.3. NTP
  11. Video: 2.4. Lamport Timestamps
  12. Video: 2.5. Vector Clocks
  13. Video: Interview with Marcos Aguilera
  14. Reading: Optional: Lamport Timestamps (Ukulele Version)
  15. Reading: Homework 4 Instructions
  16. Discussion Prompt: Homework 4 Discussion

Graded: Homework 4

WEEK 5


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.


16 videos, 3 readings expand


  1. Reading: Week 5 Overview
  2. Video: Week 5 Introduction
  3. Video: 1.1. What is Global Snapshot?
  4. Video: 1.2. Global Snapshot Algorithm
  5. Video: 1.3. Consistent Cuts
  6. Video: 1.4. Safety and Liveness
  7. Video: 2.1. Multicast Ordering
  8. Video: 2.2. Implementing Multicast Ordering 1
  9. Video: 2.3. Implementing Multicast Ordering 2
  10. Video: 2.4. Reliable Multicast
  11. Video: 2.5. Virtual Synchrony
  12. Video: 3.1. The Consensus Problem
  13. Video: 3.2. Consensus In Synchronous Systems
  14. Video: 3.3. Paxos, Simply
  15. Video: 3.4. The FLP Proof [OPTIONAL]
  16. Video: Interview with Tushar Chandra
  17. Reading: Homework 5 Instructions
  18. Discussion Prompt: Homework 5 Discussion
  19. Video: Conclusion to Cloud Computing Concepts, Part 1
  20. Reading: Final Exam Instructions
  21. Discussion Prompt: Final Exam Discussion
  22. Discussion Prompt: Final Reflection

Graded: Homework 5
Graded: Gossip Protocol
Graded: Final Exam
There are no reviews yet.

Share your review

Do you have experience with this course? Submit your review and help other people make the right choice. As a thank you for your effort we will donate $1.- to Stichting Edukans.

There are no frequently asked questions yet. Send an Email to info@springest.com