Thanks for your question. I decided I wanted to write this book when I learned about the outfielder problem: the question of how the human mind can immediately know where to run to catch a ball when it's thrown (or batted) from hundreds of feet away. It turns out that there's an algorithm that all of us know - without knowing that we know - that tells us how to play outfield. This made me think about how fundamental algorithms are to life and how we think. More importantly, it made me realize that people think of algorithms as advanced and intimidating, but anyone who can catch a ball has already mastered at least one complex algorithm, so algorithms can be fun and intuitive instead of complicated and boring. I decided that explaining algorithms in this intuitive, joyful way could be an improvement on the many dry approaches to algorithms in other books. The outfielder problem, my inspiration, became Chapter 1 and served as an introduction to the idea of algorithms and the rest of the book.
After Chapter 1, I had a few criteria in mind when choosing topics. I wanted to cover many "classic" important algorithms, like the sorting algorithms in Chapter 4 and the optimization in Chapters 3 and 6, since a knowledge of the basic/classic algorithms will be important to any learner. I wanted to show that algorithms can cover a wide range of topics, like language and geometry, so I put those in Chapters 7 and 8. I wanted to show that algorithms can be advanced and powerful, hence the machine learning and artificial intelligence chapters in 9 and 10. Besides those criteria, I included things that I myself find interesting, thinking that others might find them interesting too. That explains the history in Chapter 2, the continued fractions in Chapter 5, and the chess puzzle in Chapter 11. I wanted the book to provide a quick but deep tour of some interesting and educational ideas, or a "dive" into the algorithm world. Best regards,
The fastest and most reliable components of any system are those that are not there. Tiny ad: