Algorithms--their concepts, theory, and methods--are not limitedto computer science. My recipe for making chili for dinner is analgorithm, as are my lesson plans for my courses, and the Internal Revenue Service (IRS) tax return forms I file every April. Even my method for writing book reviews follows an algorithm. Of course, algorithms pervadeall of computing; it could be said that computing itself is essentiallya collection of algorithms. Look for a definition of the term andyou will find many general and specific examples, for example, “a setof instructions for solving a problem or accomplishing a task.”According to Knuth [1]--and I’m paraphrasing here--an algorithm is an effective,finite series of well-defined steps using specified inputs, producingoutputs related to the inputs.

The computing literature on this subject is varied and extensive,including Sedgewick and Wayne’s classic *Algorithms* [2] and Cormen et al.’s *Introductionto algorithms* [3], to name just two prominent examples. AuthorBradford Tuckfield adds to this collection with *Diveinto algorithms*, an introduction to the topic using Python that iswritten for a wide audience of students, developers, andgeneral readers. Tuckfield, a technical writer and data scientistat Kmbara, has also written about machine learning andnatural language processing.

The book’s first two chapters introduce the basic ideas and historyof algorithms using physical and mathematical examples, and beginright away with Python code modeling and visualizing the requiredsteps. Some assumptions are made about the level of programmingand mathematical knowledge needed, although they are reasonablybasic.

The remaining chapters of the book cover some traditional algorithmictopics such as min/max methods, sorting and searching, geometry,language, and a bit of machine learning and artificial intelligence (AI).The first technical chapter on min/max algorithms discusses anddemonstrates gradient ascent. The accompanying Python code isgenerally sparse yet readable, and the author includes the requiredsetup instructions for Windows, MacOS, and Linux in the book’sintroduction.

The chapter on sorting and searching begins a discussion ofalgorithmic performance and efficiency that continues in severalof the subsequent chapters, such as the chapter on the travelingsalesman problem. The chapter on AI presents an entertaininganalysis of the dots-and-boxes game, including algorithms forscoring and for finding winning moves.

The author concludes with a (very) brief chapter on the problem ofchecking the results of algorithms and the related P=NP question.However, the value of the book lies in the variety of applicationareas presented: math functions, geometry, language, and decisiontrees. Some of the more complex algorithms presented includePython code that might be a bit challenging for beginners, but theexplanations of the required steps are generally pretty clear. Thebook is certainly a worthy addition to the literature on algorithms.

More reviews about this item: Amazon