This is a mini textbook I’m writing about algorithms. At Duke (where I am currently a graduate student), the undergraduate algorithms course in the computer science department is known as CPS 330 (hence the title).

This document is 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; more details can be found in the preface of my document.

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

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.