What is cloud computing? How do we build cloud-scale systems and components that are secure against malicious attacks, and scale to millions of users? Many of today’s services run inside the cloud – a set of geographically distributed data centers running heterogeneous software stacks. Cloud systems must scale across tens of thousands of machines, support millions of concurrent requests, and they must do so with high security guarantees. This course will start with the fundamentals of cloud computing, introduce key techniques in building scalable and secure systems, and expose students to state-of-the-art research advances as well as emerging security threats and defenses in today’s cloud systems.