About Algorithmic Thinking
Write better, faster code. I wrote Algorithmic Thinking, 2nd Edition to teach algorithms and data structures in the context of solving programming competition problems.
The 2nd Edition is ready.
Learn how to use recursion and why you’d want to.
Demystify dynamic programming and use it to turbocharge your code. (NEW chapter on advanced dynamic programming tricks)
Learn all about graphs and how to use them to model and solve problems that seemingly have nothing to do with graphs.
What’s a data structure, anyway? You’ll find out! You’ll also learn about hash tables, heaps, segment trees, and union-find data structures, and when to use them to make your code super efficient.
Use random numbers to solve next-level algorithmic challenges. (NEW chapter)
No pseudocode. No math. I wrote this book for anyone who wants to become a better programmer, anyone who wants to improve their algorithmic thinking, anyone who wants to understand what makes code fast. I hope I can help you learn.
Ask your local bookshop, or buy online:
Here’s what expert algorithmists and programmers say about the book:
- “I wish every algorithms textbook included a companion online judge that readers could use to check their understanding of each topic. For reasons known only to technical book authors, that practice hasn’t caught on. Fortunately, we have Algorithmic Thinking, which provides the mix of instruction and hands-on coding practice we need to learn fundamental algorithms and data structures. … Although large language models are gaining on us, we human programmers still need to understand how to solve problems using algorithms.” - Review by Duncan Smith
- “Problem solving is a raw, real journey, and this book captures its spirit perfectly.” - Review by Ava Pun
- “With Zingaro as a tutor by your side, you’ll learn, through practice on challenging competition problems, a repeatable process for figuring out and deftly applying the right algorithmic tools for the job. And you’ll learn it all from a book that exudes clarity, humor, and just the right dose of Canadian pride. Happy problem-solving!” - Review by Dr. Tim Roughgarden
- “Overall, the book is clearly written, the topics are well-chosen, and the book is a good introduction to some important competitive programming techniques.” - Review by Dr. Antti Laaksonen
- UTM professor draws on past struggles to write witty, hands-on programming book
- Featured on Awesome Competitive Programming, “A curated list of awesome Competitive Programming, Algorithm and Data Structure resources”