Bibliography
Textbooks
-
Cormen, T.H., Leiserson, C.E., Rivest, R.L., and Stein, C. Introduction to Algorithms, 4th edition. MIT Press, 2022. The comprehensive reference for algorithm design and analysis, commonly known as CLRS. Our curriculum and many proofs follow its presentation.
-
Kleinberg, J. and Tardos, E. Algorithm Design. Addison-Wesley, 2005. An excellent treatment of algorithm design techniques, particularly dynamic programming, greedy algorithms, and network flow.
-
Sedgewick, R. and Wayne, K. Algorithms, 4th edition. Addison-Wesley, 2011. A practically oriented textbook with Java implementations. Its approach to presenting algorithms alongside working code influenced the style of this book.
-
Skiena, S. The Algorithm Design Manual, 3rd edition. Springer, 2020. A unique combination of algorithm design techniques and a catalogue of algorithmic problems, useful as both a textbook and a reference.
-
Wirth, N. Algorithms + Data Structures = Programs. Prentice Hall, 1976. Also available at https://people.inf.ethz.ch/wirth/AD.pdf. A classic that pioneered the idea of teaching algorithms through a real programming language (Pascal). The title captures a philosophy this book shares.
-
Knuth, D.E. The Art of Computer Programming, Volumes 1--4A. Addison-Wesley, 1997--2011. The definitive, encyclopedic treatment of algorithms and their analysis. An invaluable reference for the mathematically inclined reader.
-
Aho, A.V., Hopcroft, J.E., and Ullman, J.D. The Design and Analysis of Computer Algorithms. Addison-Wesley, 1974. A foundational textbook that established many of the standard approaches to algorithm analysis.
-
Dasgupta, S., Papadimitriou, C.H., and Vazirani, U.V. Algorithms. McGraw-Hill, 2006. A concise and elegant textbook that is freely available from the authors. Particularly strong on number theory and NP-completeness.
-
Sipser, M. Introduction to the Theory of Computation, 3rd edition. Cengage Learning, 2012. The standard reference for computational complexity theory, NP-completeness, and the theory of computation.
Online resources
-
MIT OpenCourseWare. 6.006 Introduction to Algorithms. https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/. Lecture videos, notes, and problem sets covering the material in Parts I--IV of this book.
-
MIT OpenCourseWare. 6.046J Design and Analysis of Algorithms. https://ocw.mit.edu/courses/6-046j-design-and-analysis-of-algorithms-spring-2015/. The follow-on course covering advanced algorithm design techniques, network flow, and computational complexity.
Note on authorship and licensing
A substantial part of this book was created with the assistance of Zenflow, using Claude Code and Claude Opus 4.6.
This book is available under the MIT License and is provided as is, without any explicit guarantees of fitness for a given purpose or correctness.
Bugs and errors should be reported at https://github.com/amoilanen/Algorithms-with-TypeScript.