This easy-to-follow introduction to computer science reveals how familiar stories like Hansel
and Gretel Sherlock Holmes and Harry Potter illustrate the concepts and everyday relevance of
computing. Picture a computer scientist staring at a screen and clicking away frantically on a
keyboard hacking into a system or perhaps developing an app. Now delete that picture. In Once
Upon an Algorithm Martin Erwig explains computation as something that takes place beyond
electronic computers and computer science as the study of systematic problem solving. Erwig
points out that many daily activities involve problem solving. Getting up in the morning for
example: You get up take a shower get dressed eat breakfast. This simple daily routine
solves a recurring problem through a series of well-defined steps. In computer science such a
routine is called an algorithm. Erwig illustrates a series of concepts in computing with
examples from daily life and familiar stories. Hansel and Gretel for example execute an
algorithm to get home from the forest. The movie Groundhog Day illustrates the problem of
unsolvability Sherlock Holmes manipulates data structures when solving a crime the magic in
Harry Potter’s world is understood through types and abstraction and Indiana Jones
demonstrates the complexity of searching. Along the way Erwig also discusses representations
and different ways to organize data intractable” problems language syntax and ambiguity
control structures loops and the halting problem different forms of recursion and rules for
finding errors in algorithms. This engaging book explains computation accessibly and shows its
relevance to daily life. Something to think about next time we execute the algorithm of getting
up in the morning.