This document provides an overview of cloud computing concepts and technologies. It begins with an introduction to distributed system models including centralized computing, parallel computing, distributed computing, and cloud computing. It then discusses enabling technologies for scalable computing including virtualization, clusters, grids, peer-to-peer networks, and different cloud service models. The remainder of the document outlines the course objectives, units of study, textbooks, and outcomes for a cloud computing course.