Algorithmic Thinking, 2nd Edition Homepage for the book Algorithmic Thinking, 2nd Edition

The 2nd Edition of Algorithmic Thinking

Hello, readers,

Welcome to the website for Algorithmic Thinking, 2nd Edition.

Update: we finalized the book and it is now being printed. Thank you to everyone for your ongoing support during Early Access!

I posted this on LinkedIn but wanted to share with my readers here as well.

The old book website for the first edition is still available because there are a bunch of blog posts there that I think will still be useful to readers.

Three years ago, I published a book called Algorithmic Thinking to help programmers solve challenging problems using algorithms and data structures.

My five rules were

  1. No pseudocode allowed
  2. No math
  3. No proofs (OK OK I may have sneaked one or two in there but maybe no one will notice?)
  4. Examples examples examples
  5. Explain everything that we use before just using it

It’s an honour to have been able to engage with so many readers through this project.

I thought that the first edition contained everything I could teach.

My readers and students have shown and encouraged me that I was wrong. :)

I’m happy to announce that a second edition of the book is available in Early Access now.

I added some new spicy dynamic programming problems. (My former Algorithms students may be happy that now I can’t use these as homeworks anymore :P ) I also added lots of material on trying to solve dynamic programming problems both backwards and forwards, in case one of them isn’t working out (I hope I’ve done justice to this one… I spent like my whole summer last year until I was happy with my teaching approach :D). I really worked on helping readers identify the subproblems, and what to do when the subproblems aren’t good enough. (I know how challenging this topic is to learn so I really went for it!)

I added a doozie of a hash tables problem.

I added a whole chapter on using randomization (yep, just random numbers) to solve some really tough programming challenges in easier ways.

I fixed small errors that got past me in the first edition. (I always strive for no errors but wow – I have a new respect whenever I find an error in someone else’s book now.)

I improved explanations based on my discussions with readers.

I worked with a wonderful Developmental Editor and Technical Reviewer.

The first edition is genuinely the best I could do in 2020. This second edition is genuinely the best I can do right now.

I hope any reader who trusts me with their valuable time will be successful with this book.