This book presents an overview of the theory, applications, challenges and future directions of network coding. Starting with basic concepts, models and theory, it then covers a core subset of results with full proofs. For graduate students and researchers in electronic and computer engineering, and practitioners in the communications industry