https://www.amazon.com/review/R10BQY15VU79GT/ref=cm_cr_srp_d_rdp_perm?ie=UTF8&ASIN=0691158193
An algorithm is a well defined procedure for performing a task. A household example of an algorithm is a recipe -- for example, the list of ingredients together with the sequence of instructions needed to bake a pie. In order for a computer to perform a task, it needs ingredients -- the data -- and instructions -- the algorithm.
Author John MacCormick, currently Professor of Computer Science at Dickinson College, has chosen nine important tasks performed by computers and explained the algorithms that are used. In a chapter devoted to each, he explains:
- The development of search engines -- how to find information on the internet.
- The PageRank process used by Google to produce highly relevant search results.
- Public-key cryptography, enabling secure transmission of secret messages -- such as your credit card number -- over open communication channels.
- Methods for detecting errors in data transmission and automatically correcting them.
- Several pattern recognition techniques, illustrated by classifying handwritten numbers, facial recognition, and decision trees.
- Data compression. Storing text, music, and images efficiently.
- Databases. Storing and retrieving information efficiently. Techniques for modifying databases reliably, even when computers crash while the modification is in progress.
- Digital signatures. How to be certain data is trustworthy.
- Deciding what is computable.
Even though the techniques that enable these algorithms are complex, Dr. MacCormick explains them in a clear and interesting manner using well constructed examples.