Martin Erwig is Professor of Computer Science in the School of Electrical Engineering and Computer Science at Oregon State University. In his recent text, “Once upon an Algorithm”, published for MIT Press, the author proposes an innovative and original approach for introducing computational thinking concepts to general public, while going beyond the strict technical domain.
Through the use of “stories” and popular tales in order to illustrate abstract concepts, Erwig aims at explaining to broader audience what computer science is, starting from the hectic notion on which it rests: algorithm, being also the building block of programming and computation.
Each story therefore elucidates a concept, as a sort of narrative symbol. For instance Hansel and Gretel gives insights on computation and algorithms themselves in the search of the way home, while Sherlock Holmes exemplifies representation and data structures when solving a crime, or Indiana Jones delineates the problem solving model in his complex researches etc.
This brilliant book not only makes computing and informational thinking more accessible, but it also shows the undeniable relevance of those domains to daily life, starting from the indisputable evidence that computation (and its related notions) plays a prominent role in our society, within diverse domains.
From this point of view, it results clear that computing is a domain going far beyond the idea of a PC screen, a keyboard or an app, but it involves cognitive process, thinking patterns and particularly problem solving. The inner foundation of them is, once more, algorithm.
The book is divided in two main parts: algorithms and languages, to precisely indicate the two major poles of computation. Coherently with the idea of providing a widely accessing book about computer science, the text also contains a useful and well-structured Glossary of Terms and a complete Notes apparatus.
“Once upon an Algorithm” shows that there is a third possibility between becoming a computer scientist and passively enjoy the benefit of technology: understanding the basics of computation, as it actually not only relies on hardware and machines, but also occurs outside of them, namely also in our cognitive processes (language, problem solving, abstract thinking etc) and in our daily lives.