This document provides an introduction to distributed computing, including definitions, history, goals, characteristics, examples of applications, and scenarios. It discusses advantages like improved performance and reliability, as well as challenges like complexity, network problems, security, and heterogeneity. Key issues addressed are transparency, openness, scalability, and the need to handle differences across hardware, software, and developers when designing distributed systems.