Cloud Computing

The course covers all aspects of the cloud architecture stack, from Software as a Service (large-scale biology and graphics applications), Platform as a Service (MapReduce (Hadoop), Iterative MapReduce (Twister) and NoSQL (HBase)), to Infrastructure as a Service (low-level virtualization technologies).

Class Summary

In this course you will learn basic concepts in Cloud Computing, including how to write your own software using key cloud programming models and tools to support data mining and data analysis applications.

Course Organization

This course uses MOOC technology (Google Course Builder) but is conducted in a more structured fashion with a mix of recorded lectures, programming labs and forum discussions. Each week we will post on Oncourse the instructions as to work to be done. Note all grading and forum discussion will use Oncourse.

Register Now!

What Should I Know?

B649 Cloud Computing online is a programming intensive course. It has similar requirements to the CS graduate level residential version. Students are expected to have weekly (or biweekly) programming homework. General programming experience with Windows or Linux using Java (2-3 years) and scripts is required. A background in parallel and cluster computing is a plus, although not necessary.

What Will I Learn?

At the end of this course, you will have learned key concepts in cloud computing and enough programming to be able to solve data analysis problems on your own.

Class Projects

The class has several projects that will allow students to get firsthand experience with the technologies taught here. Projects are performed on VirtualBox Appliances or academic clouds like FutureGrid.

Course Schedule

Welcome Survey
Unit 1 - Cloud Computing Fundamentals
Unit 2 - How to Run VMs (IaaS)
Unit 3 - How to Run MapReduce (PaaS)
Unit 4 - How to Run Iterative MapReduce (PaaS)
Mid-course assessment
Unit 5 - How to Store Data (NoSQL)
Unit 6 - Internet of Things
Unit 7 - How to Build a Search Engine (SaaS)
Post-course assessment
Post-course Survey
Test-course assessment


Judy Qiu

Judy Qiu is an Associate Professor in the School of Informatics and Computing at Indiana University. Her research interests focus on data-intensive computing at the intersection of cloud and multicore technologies, with an emphasis on life science applications using MapReduce as well as traditional parallel and distributed computing approaches.

Associate Instructors

Hyungro Lee

Ethan Li

Yiming Zou

Anand Karandikar

Mayank Jaglan

Gowtham Ayna Raveendran

Vishwas Vijaya Kuma

Class Progress Distribution

The course progress is the percentage of mandatory items completed for the course.

Participation (10%)
Exams (50%) - Midterm (20%), Final (30%)
Written Assignments (10%)
Projects (30%) - 8 Projects: [Hadoop Statistics (5), Hadoop PageRank (10), Hadoop Blast (10), HBase WordCount (5), Building an Inverted Index (10), Build a Search Engine (20), Harp PageRank (20), Harp Mini-batch K-Means (20)]

Device Adaptable

This site has been constructed with all manner of digital media in mind. Whether you use a laptop, PC, or portable device, you're free to take your courses without any difficulty. The site will adapt its look and features accordingly with no additional effort on your part. Log in on the go or at your leisure.


Lesson Order

Lessons in this course will be uploaded on a weekly basis. The difficulty of the topics covered in these online lectures is demonstrated by way of a color coding system. 'Green' is basic, 'Yellow' is intermediate, and 'Red' is advanced. We will build up to more difficult concepts as the class progresses.


Course Projects

Take part in online assignments that will teach you the course material in hands-on examples. You will apply actual code designed to calculate website page ranking, word count, and even build your own search engine. More than a dry tutorial, this is your chance to find out how some of the most widely used applications on the Internet work on a fundamental level.