Preface

This book is designed for a senior undergraduate-level course or an introductory graduate-level course on concurrent and distributed computing. This book grew out of my dissatisfaction with books on distributed systems (including books authored by me) that included pseudocode for distributed algorithms. There were two problems with pseudocode. First, pseudocode had many assumptions hidden in it making it more succinct but only at the expense of precision. Second, translating pseudocode into actual code requires effort and time, resulting in students never actually running the algorithm. Seeing the code run lends an extra level of confidence in one’s understanding of the algorithms.

It must be emphasized that all of the Java code provided in this book is for educational purposes only. I have deliberately avoided error checking and other software engineering principles to keep the size of the code small. In the majority of cases, this led to Java code, that kept the concepts of the algorithm transparent.

Several examples and exercise problems are included in each chapter to facilitate classroom teaching. I have made an effort to include some programming exercises with each chapter.

I would like to thank the following people for working with me on various projects discussed in this book: Craig Chase (weak predicates), Om Damani (message logging), Eddy Fromentin (predicate detection), Joydeep Ghosh (global computation), Richard Kilgore (channel predicates), Roger Mitchell (channel ...

Get Concurrent and Distributed Computing in Java now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.