This document provides an introduction to distributed systems. It defines a distributed system as a network of autonomous computers cooperating to accomplish a task by sharing resources. Examples given include the Internet, intranets, grids, and mobile computing systems. The document then outlines some fundamental terms related to distributed systems and discusses advances in client-side technologies, communication networks, middleware concepts, and server-side technologies. It provides summaries of concepts like protocols, services, APIs, SDKs and more.