1. Distributed systems allow components located on networked computers to work together. This includes applications with components located across geographical locations. 2. Key advantages of distributed systems include increased reliability through redundancy, improved scalability, and ability to share resources. Challenges include coordinating components across the network and ensuring consistency. 3. Algorithmic challenges in distributed systems include designing frameworks for dynamic distributed graphs, distributed routing algorithms, synchronization across components, and fault tolerance.