notation provides some needed background, if the reader feels de cient in basic mathematical notations. Linear data structures are reviewed with de nitions of stacks, queues, linked lists, and similar structures. Interpolating asymptotic behavior is brie y discussed, which is followed by random walks in di-graphs and elementary probability theory. Examples of message-passing interface code are added to assist the reader in understanding distributed system message passing. The nal appendix helps describe the pseudo code nomenclature. Opinion Overall, I think this book has some really good components. Software engineers need to have a wide array of weapons in their arsenal, and everything in this book should be part of that arsenal. A good software engineer needs to be at least familiar with all techniques described in this book. I think that grouping the book into these ve parts was advantageous; readers needing a speci c refresher may only need to read the appropriate part. Also, the inclusion of parallel and distributed algorithms is necessary in a world where the system of systems architecture is becoming more pronounced, and it is a technique all software engineers should be aware of. My biggest complaint about this book is the pseudo
/lp/association-for-computing-machinery/review-of-algebraic-complexity-theory-by-peter-b-rgisser-michael-vkObnGH6p7