Graduate Algorithms at Georgia Tech covers many key algorithms, design techniques and analysis. Each algorithm covered in class is well documented elsewhere, so instead of walking through them, this is a hub of resources I found useful while taking the class.

Questions, corrections, additions? @kirk on slack or connect with me on LinkedIn


Advice:

  • Prepare early. Make a habit of working through as many problems as you can.
  • A large exposure to many problem types is more useful than completely solving a smaller set of problems.
  • If an idea doesn't click with one resource, use a different resource.

General Resources:

Lectures:

This MIT OCW course is an excellent add on resource.

I've created YouTube playlists for most of the GT lectures:

I'll add the rest here if time permits.

Notes and Flash cards:


Topics:

Dynamic Programming:

Dynamic programming is a general algorithm design approach used on many problems. Recursive (top down) and tabular (bottom up) are the two types of approaches, but this class exclusively uses the tabular approach. Practicing many DP problems is key.

NP Completeness:

Graph of some NP reductions

Others:


Runtime Complexity Cheat Sheet:


I should also point out that this class is a good start to preparing for technical interviews. Solving problems in interview format isn't covered, but Pramp is an excellent way to practice your interview skills. If you'd like to practice, join me here on Pramp.

Questions, corrections, additions? @kirk on slack or connect with me on LinkedIn