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 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.
"This is a valuable book that introduces the reader into the history, developments, and methodology of algorithms. It is a good source for teachers giving algorithm course to students majoring in fields other than computer science or mathematics. Its language, style and outlook is appealing also for any non-academic person who want to obtain some inspiration for the age of computers." (Péter Hajnal, Acta Scientiarum Mathematicarum, Vol. 81 (3-4), 2015)
"The book starts with the ancient and medieval history of algorithms, and finishes with a dialog on randomness in problem solving. For each topic, the key problems are presented and the accepted algorithms are described. ... this book belongs in all college libraries and CS faculty may like a copy beside their classic algorithms texts." (Richard Botting, Computing Reviews, April, 2014)
"The book starts with the ancient and medieval history of algorithms, and finishes with a dialog on randomness in problem solving. For each topic, the key problems are presented and the accepted algorithms are described. ... this book belongs in all college libraries and CS faculty may like a copy beside their classic algorithms texts." (Richard Botting, Computing Reviews, April, 2014)