Course: Cloud Computing and Storage (UF)

Project ID
Project Categories

EEL 6935: Cloud Computing and Storage (Fall 2013)

Course Objective and Description:

Using large-scale computing systems to solve data-intensive realworld problems has become indispensable for many scientific and engineering disciplines. This course provides a broad introduction to the fundamentals in cloud computing and storage, focusing on system architecture, programming models, algorithmic design, and application development. Selected scientific applications will be used as case studies. 

Prerequisite: introduction to programming or data structures and algorithms (EEL4834 or equivalent), computer architecture (EEL5764 or equivalent), proficiency in Java, or instructor approval. 


  • Hadoop: The Definitive Guide (3rd Edition), Tom White, O'Reilly Media, 2012.

Other References: 

  • Many recent papers in leading conferences/journals will be discussed.
  • Data-Intensive Text Processing with MapReduce, Jimmy Lin and Chris Dyer, 2010. (PDF version available online)
  • Engineering Software as a Service: An Agile Approach Using Cloud Computing, Armando Fox and David Patterson, Strawberry Canyon, 2013.
  • The Way To Go: A Thorough Introduction To The Go Programming Language, Ivo Balbaert, iUniverse, 2012.
  • Programming Amazon EC2, Jurg van Vliet and Flavia Paganelli, O'Reilly Media, 2011.
  • Programming Google App Engine, Dan Sanderson, O'Reilly, 2012.
  • Distributed and Cloud Computing: From Parallel Processing to the Internet of Things by Kai Hwang, Jack Dongarra & Geoffrey C. Fox, Morgan Kaufmann, 2011.
  • The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines, Luiz Andre Barros and Urs Hoelzle, Morgan and Claypool Publishers, 2009.
  • The Grid: Blueprint for a New Computing Infrastructure (2nd Edition), Ian Foster, Carl Kesselman, Morgan Kaufmann/Elsevier, 2004.
  • The Fourth Paradigm: Data-Intensive Scientific Discovery, Tony Hey, Stewart Tansley, and Kristine Tolle, Microsoft Research, 2009. (PDF version available online)

Course Homepage:

Course Outline (tentative):

  1. Introduction and Overview
  2. Programming Paradigms
  3. Introduction to Hadoop 
  4. MapReduce Runtime Management
  5. Algorithm Design and Implementation in MapReduce 
  6. Consistency and Coordination
  7. Key-Value Structured Storage
  8. Enhancements to Hadoop/MapReduce
  9. Distributed File Systems
  10. Case Study
Use of FutureSystems
We plan to use FutureGrid for students course projects: (1) programming, mainly Hadoop/MapReduce; (2) systems, mainly openstack (3) potentially GPU.
Scale of Use
We have near 80 students, roughly in 16 teams. Pretty light programming assignments will be on FutureGrid, and compare performance on FutureGrid with AWS EC2.