To examine, analyze, and manipulate a problem to the point of designing an algorithm for solving it is an exercise of fundamental value in many fields. With so many everyday activities governed by algorithmic principles, the power, precision, reliability and speed of execution demanded by users have transformed the design and construction of algorithms from a creative, artisanal activity into a full-fledged science in its own right. This book is aimed at all those who exploit the results of this new science, as designers and as consumers. The first chapter is an overview of the related history, demonstrating the long development of ideas such as recursion and more recent formalizations such as computability. The second chapter shows how the design of algorithms requires appropriate techniques and sophisticated organization of data. In the subsequent chapters the contributing authors present examples from diverse areas – such as routing and networking problems, Web search, information security, auctions and games, complexity and randomness, and the life sciences – that show how algorithmic thinking offers practical solutions and also deepens domain knowledge. The contributing authors are top-class researchers with considerable academic and industrial experience; they are also excellent educators and communicators and they draw on this experience with enthusiasm and humor. This book is an excellent introduction to an intriguing domain and it will be enjoyed by undergraduate and postgraduate students in computer science, engineering, and mathematics, and more broadly by all those engaged with algorithmic thinking.
The Power of Algorithms is the English translation of L'informatica invisibile. Come gli algoritmi regolano la nostra vita... e tutto il resto (Mondadori Università 2010). Written as an anthology by a group of internationally recognised researchers, it aims to highlight the role played by various algorithms that we encounter, perhaps unwitting, in daily life.
The book can be seen as an Italian pendant to the German Taschenbuch Der Algorithmen from 2008, which also appears in English translation (Algorithms Unplugged). That book, too, is written by some of its nation’s leading algorithms researchers, aiming to present the basics and gems of algorithms to a lay audience. It’s great to see large groups of academics to collectively make a serious effort at popularising this area.
Where the Taschenbuch covers basic algorithms and methods, together with a few choice gems, Power focuses on the algorithms that govern our daily lives. For instance, there is an extensive chapter on the web, covering search engines, page rank, web crawling, etc. Other chapters explain the basics of cryptography and its applications, the information-scientific view of molecular biology, or algorithmic auctions and mechanism design. I think this is a splendid conception.
The anthology model leads to large discrepancies in tone, depth, narrative flair, and required mathematical prerequisites between each chapter. A handful of chapters are downright splendid. But Power is not an easy book. In fact, while the book’s authors seem to know what the book is about (namely algorithms in real life), it is much less clear who the intended readership is. For me, as an active researcher in algorithms well acquainted with most of the material (and, indeed, some of the authors!), the book is a pleasant read. Computer science undergraduates should absorb most of the material (and in fact know a lot of it already), but everybody from high school teachers in search of inspiration to researchers in related areas will get a lot out of this book.
However, I imagine that for many readers, most of the book will be on exactly the wrong level of abstraction: The book isn’t consistently precise enough to reward a close reading, and there are no exercises. (Copious bibliographic notes and references ameliorate this to some extent.) On the other hand, not is much gleaned from a superficial reading either, for that there is too much notation and too high requirements on the mathematical (and, in fact, algorithmic) maturity of the reader. I can easily imagine using this book as recommended inspirational reading alongside an algorithms course, but that would be preaching to the choir, largely wasting the book’s splendid premise if “daily life”, “invisible” algorithms per tutti.