Kevin Sun


These are some notes I've written about algorithms. They are heavily inspired by multiple textbooks: Algorithms by Dasgupta, Papadimitriou, and Vazirani; Algorithms by Erickson; Algorithm Design by Kleinberg and Tardos; and Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein. I recommend all of them.

You can get the whole thing here, or download individual chapters below. (Some chapters reference each other, but for the most part, every chapter is self-contained.)

Theory of Computation

These notes are primarily written for anyone studying from the book Introduction to the Theory of Computation by Michael Sipser, specifically the third edition. I think the book is excellent, and I strongly recommend it. These notes are not meant to be a substitution for the book. Instead, I think of them as an unofficial companion to the book — they provide only a partial summary of the book. I hope you find them useful.

You can get the whole thing here.

Please feel free to send me any feedback (even if it's only about a typo). My email address is "nusnivek [at] gmail [dot] com". You can also message me anonymously using this form.