This course provides an introduction to programming frameworks and their implementation issues in the Cloud. It explains multiple topics, including: scalable distributed data stores, resource management (for supporting multi-tenancy and elasticity) and virtualization techniques. Optionally, the student will also be guided in the implementation of a basic version of the distributed runtime system for the Map-Reduce programming framework