This course provides an introduction into the technologies behind cloud computing. A combination of lectures and hands-on programming assignments expose the student to the leading cloud computing paradigms and programming interfaces (e.g., EC2, Azure, App Engine). In addition, lectures provide an overview of the underlying technological concepts that make cloud computing possible (e.g., virtualization, scalability, fault tolerance, security).