Algorithmic Thinking: A Problem-Based Introduction Homepage for the book Algorithmic Thinking: A Problem-Based Introduction

Book Review: Guide to Competitive Programming

Hi everyone,

Readers who’ve worked through the material in Algorithmic Thinking might be interested to know what’s out there to read next. In the book, I offer some pointers to more traditional algorithms textbooks that you might consider if you’d like to dig deeper into the theory of algorithms.

But if I’ve managed to whet your appetite for competitive programming, then you might consider wrestling with one of the advanced competitive programming books that are available.

In this post, I review the book Guide to Competitive Programming by Antti Laaksonen. (There’s a free version that contains much of what’s in the sale version, if you want to get a taste before deciding whether to buy.) I think it pairs well with Algorithmic Thinking. If you’re getting stuck in Dr. Laaksonen’s book, you might consider reading through Algorithmic Thinking again, and I’ll point out below where Algorithmic Thinking might be particularly helpful. Make no mistake, though: there’s a lot here. The book can be terse. And there are sections in Dr. Laaksonen’s book that are particularly hard core. I need to work through some of it again myself! But if you have the patience and desire to up your competitive programming game, this book can bring it.

Chapters

The book has 15 chapters. I’ll note here what might be of most interest to those who’ve read my Algorithmic Thinking book as background.

There’s a lot in those first nine chapters. Still, here we reach what I think of as a natural split point in the book, with the subsequent material still more advanced than what came before.

Summary

As I hope I’ve made clear, you’ll need considerable background, time, and persistence in order to work through the material in the book. If you’re ready to commit, though, then your time with this book will be well spent. Dr. Laaksonen has concisely and expertly condensed a great deal of competitive programming material into this book. The progression is logical, tradeoffs are illustrated, and sample code fragments are provided.