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 Books


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. Distributed systems are common. Computer scientists and engineers need to understand how the principles and paradigms underlying distributed systems software and be familiar with several real world examples. No other book systematically examines the underlying principles and how they are applied to a wide variety of distributed systems with the depth and clarity of this presentation. *First part of the book dedicates one chapter to each of seven key principles of all distributed systems -Communication, processes, naming, synchronization, consistency and replication, fault tolerance, and security, provides students with an understanding of the key principles, paradigms, and models on which all distributed systems are based. *Second part of the book devoted to real-world distributed case studies - Includes examples of object-based, document-based, file-based, and coordination-based systems including Corba, DCOM, Globe, NFS v4, Coda, WWW, and Jini. *Numerous end-of-ch