Description: This course will provide a comprehensive presentation of modern design and analysis methods for distributed and decentralized algorithms for signal processing, optimization, control and machine learning applications. The course will focus on mathematical analysis techniques for the iteration, computational and communication complexity of distributed data processing methods over networks, where data is generated, stored or processed by groups of computational units or agents connected via communication channels over networks. The aim is to introduce modern approaches for distributed information processing with a deep understanding on the effects of communication constraints, network topology, computational resources, and robustness. The contents of this course lie in the intersection of network science, optimization and machine learning. Topics will cover the classical literature in distributed decision making, opinion dynamics, distributed optimization, decentralized control, to more recent topics in distributed machine learning, federated learning, and social learning. Recommended Prerequisite(s): Linear Algebra, Probability Theory, Nonlinear Optimization, Numerical Analysis