The “Cloud” is many things. To businesses, it can be a way to scale their information systems without needing to buy a huge number of servers. To Wall Street, it is the next Big Thing in tech. To a scientist, it can be the way to analyze their terabytes of data. To the average person, it can be a way to store and access their information from any device at any time.


In this class, we will investigate Cloud Computing from all of these perspectives. In short, we are interested both in how these cloud systems are designed/built and how they are used. The goals for the class are:

· Investigate virtualization, as it is an essential underpinning of cloud platforms.

· Investigate the  architectural foundations of the various cloud platforms — i.e., Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS), and Infrastructure-as-a-Service (IaaS)

· Investigate current state of the art of cloud research, particularly as it pertains to major open-source cloud frameworks such as Eucalyptus and OpenStack.

· Investigate the architectures of major cloud-based systems such as Facebook.

· Gain first-hand experience using major cloud platforms including Amazon EC2, Google App Engine, Microsoft Windows Azure, Heroku, and/or others.

· Gain first-hand experience with major cloud data frameworks (“Big Data”!) including Hadoop.


This class will emphasize hands-on experience via programming assignments. It is anticipated that assignment will be using Java, C#, Python, and/or Ruby.


Coursework (subject to change before Jan 15 2013)

More Details

· It is highly recommended, but not mandatory, that students attend every class.

· Assignments are due at the beginning of class on the day that the assignment is due. For each 24 hours that your assignment is late, 10% will be deducted. For example, if an assignment is due Fri at 5pm, and you submit it to Collab at 7pm Sat, 20 points will be deducted. No assignment will be accepted more than 72 hours (3 days) after the due date.

· The course will be conducted according to the UVA honor system. Homeworks and exams are to be completed by the individual. I expect a signed honor pledge on all homework, quizzes, and exams; more importantly, I expect you to adhere to the intent of the pledge. Cooperative efforts at understanding the material and the assignments of the course are encouraged. For the programming projects, the algorithms and programs submitted by a group must be fully developed and written by the group submitting them. Each written homework must be developed and written only by the student submitting it.

· Do NOT wait until the last minute to do the readings and / or the project. In any software project, you must anticipate and plan for unexpected events (such as a machine crashing at an inopportune time).

· If you are having difficulty with a particular concept of the class, please let me know. If you don’t understanding something, there's a good chance that others in the class are confused as well.

· It is required (out of courtesy for your fellow classmates) that cell phones be turned off before entering class. This requirement is based on a resolution passed by the student council. Laptops are permitted in class but I retain the right to ask you to turn it off and put it away, particularly if (a) they’re being used for non-CS4501 purposes or (b) they’re distracting other students.

Last modified:  10/26/2012 9:48 AM

Text Box: UVa Spring 2013 CS4501: Cloud Computing


Marty Humphrey


Rice Hall 307


Humphrey at

Class meeting time

Mon/Wed 3:30-4:45pm in Olsson Hall 120

My office hours

To be determined



CS 2150 (Program and Data Representation)




When / How many


Readings (Web)

Every class


Class participation

Every class


Programming Assignments #1-#4


30% (7.5% each)

Programming Assignment #5




Midpoint of class


Final Exam

During exam week — day/time to be set by Registrar