This book explains the fundamentals of graph theory for students in computer or information sciences, highlighting its practical applications in network science. It addresses the common intimidation students feel towards mathematics by focusing on mathematical notations and proof techniques in the early chapters. The aim is to show that the notations often pose a greater challenge than the underlying concepts. This foundational approach prepares students to utilize graph theory in analyzing complex networks. In the second part, topics such as random networks, small worlds, Internet structure, peer-to-peer systems, and social networks are introduced at an elementary level. By the end, students will feel confident in three key areas: their ability to read and understand basic mathematics related to graph theory, their understanding of how graph theory applies to optimization problems like routing in communication networks, and their knowledge of small worlds and random networks. An accompanying website provides access to the book, supplementary materials, exercises, Mathematica notebooks, graph analysis data, and complex network generators.
Maarten van Steen Book order (chronological)


For courses on Distributed Systems, Distributed Operating Systems, and Advanced Operating Systems focusing on distributed systems, found in departments of Computer Science, Computer Engineering and Electrical Engineering. Very few textbooks today explore distributed systems in a manner appropriate for university students. In this unique text, esteemed authors Tanenbaum and van Steen provide full coverage of the field in a systematic way that can be readily used for teaching. No other text examines the underlying principles - and their applications to a wide variety of practical distributed systems - with this level of depth and clarity.