This course will give students a deep exposure to cloud computing enabling technologies, its main building blocks, the design strategies behind scalable and fault tolerant cloud architectures, and an in-depth understanding through homeworks projects and exams. We learn about data center networks and their topologies, cloud transport layer, file systems, handling big data, enabling consistent data store, virtualization, and the softwarization trends in cloud computing.