Study of Cloud Computing is becoming an essential part of computing curriculum with the emergence of new service & deployment models in cloud computing. This course gives students a theoretical foundation and hands-on experience with the various technologies of the cloud computing paradigm. Cloud computing is the delivery of computing as a service, whereby distributed resources are provided by appropriate service suppliers and leased, rather than owned, by an end user as a utility over a network. The course is divided into two parts. First part is designed to give introduction to the cloud computing, architecture, virtualization, design and management of cloud computing. Second part of the course explores advanced research topics in the area of distributed systems, grid and cloud computing.