Donald E. Knuth has been making foundational contributions to the field of computer science for as long as computer science has been a field. His award-winning textbooks are often given credit for shaping the field, and his scientific papers are widely referenced and stand as milestones of development for a wide variety of topics. The present volume, the seventh in a series of his collected papers, is devoted to his work on the design of new algorithms. Nearly thirty of Knuth's classic papers are collected in this book and brought up to date with extensive revisions and notes on subsequent developments. The papers cover numerous discrete problems, such as assorting, searching, data compression, theorem proving, and cryptography, as well as methods for controlling errors in numerical computations.