The Art of Computer Programming

***The Art of Computer Programming*** adalah buku yang ditulis oleh Donald Knuth mengenai berbagai algoritme dan analisis pemrograman komputer. Knuth mulai menulis buku ini pada 1962. Tiga volume pertama diterbitkan pada 1968, 1969, dan 1973. Volume 4 rencananya akan diterbitkan pada awal 2007.

Knuth dianggap sebagai pakar dalam bidang compiler. Pada saat menulis buku ini ia membutuhkan perangkat lunak untuk typesetting dan kemudian mengembangkannya sendiri dan memberinya nama TeX.

Semua contoh program dalam buku ini ditulis dalam "MIX assembly language" yang ditulisnya sendiri. Pada saat ini komputer MIX telah digantikan oleh MMIX, yaitu versi RISC. Beberapa perangkat lunak MIX emulator tersedia, misalnya GNU MDK.

Knuth menawarkan $2.56 ("one hexadecimal dollar") untuk setiap kesalahan yang ditemukan pembacanya. Kesalahan-kesalahan ini diperbaiki dalam edisi-edisi berikutnya dan menjadikan buku ini tetap aktual dan sangat lengkap.

*[[American Scientist]]* memasukkan buku ini dalam 12 karya ilmu terbaik dalam abad XX. Bill Gates mengatakan "If you think you're a really good programmer... read (Knuth's) Art of Computer Programming...You should definitely send me a resume if you can read the whole thing."

## Chapter outline
* Volume 1 - Fundamental Algorithms
** Chapter 1 - Basic concepts
** Chapter 2 - Information structures
* Volume 2 - Seminumerical Algorithms
** Chapter 3 - Random numbers
** Chapter 4 - Arithmetic
* Volume 3 - Sorting and Searching
** Chapter 5 - Sorting
** Chapter 6 - Searching
* Volume 4 - Combinatorial Algorithms, in preparation (three fascicles have been published as of February 2006, and alpha-test versions of additional fascicles are downloadable from Knuth's page below).
** Volume 4A, Enumeration and Backtracking
*** Chapter 7 - Combinatorial searching
** Volume 4B, Graph and Network Algorithms
*** Chapter 7 continued
** Volume 4C and possibly 4D, Optimization and Recursion
*** Chapter 7 continued
*** Chapter 8 - Recursion
* Volume 5 - Syntactic Algorithms, planned (as of August 2006, *estimated* in 2015).
** Chapter 9 - Lexical scanning
** Chapter 10 - Parsing techniques
* Volume 6 - Theory of Context-Free Languages, planned.
* Volume 7 - Compiler Techniques, planned.

## Outline of Volume 4A Enumeration and Backtracking
* 7. - Introduction
** 7.1 - Zeros and ones
*** 7.1.1 - Boolean basics (83 pp)
*** 7.1.2 - Boolean evaluation (62 pp)
*** 7.1.3 - Bitwise tricks and techniques
*** 7.1.4 - Representation of Boolean functions
** 7.2 - Generating all possibilities
*** 7.2.1 - Combinatorial generators (397 pp)
**** 7.2.1.1 - Generating all n-tuples - published in Volume 4, Fascicle 2
**** 7.2.1.2 - Generating all permutations - published in Volume 4, Fascicle 2
**** 7.2.1.3 - Generating all combinations - published in Volume 4, Fascicle 3
**** 7.2.1.4 - Generating all partitions - published in Volume 4, Fascicle 3
**** 7.2.1.5 - Generating all set partitions - published in Volume 4, Fascicle 3
**** 7.2.1.6 - Generating all trees - published in Volume 4, Fascicle 4
**** 7.2.1.7 - History and further references - published in Volume 4, Fascicle 4
*** 7.2.2 - Basic backtrack
*** 7.2.3 - Efficient backtracking
** 7.3 - Shortest paths

## Edisi bahasa Inggris
### Edisi terbaru
Diurutkan sesuai nomor volume:
* *Volume 1: Fundamental [[Algorithm]]s*. Third Edition (Reading, Massachusetts: Addison-Wesley, 1997), xx+650pp. ISBN 0-201-89683-4
* *Volume 1, [[Fascicle]] 1: [[MMIX]] -- A [[RISC]] Computer for the New Millennium*. (Addison-Wesley, February 14, 2005) ISBN 0-201-85392-2 (will be in the fourth edition of volume 1)
* *Volume 2: Seminumerical Algorithms*. Third Edition (Reading, Massachusetts: Addison-Wesley, 1997), xiv+762pp. ISBN 0-201-89684-2
* *Volume 3: [[Sorting algorithm|Sorting]] and [[Search algorithms|Searching]]*. Second Edition (Reading, Massachusetts: Addison-Wesley, 1998), xiv+780pp.+foldout. ISBN 0-201-89685-0
* *Volume 4, Fascicle 0: [[Boolean]] basics* (partial preview available, publication planned in early 2007)
* *Volume 4, Fascicle 2: Generating All [[Tuple]]s and [[Permutation]]s*, (Addison-Wesley, February 14, 2005) v+127pp, ISBN 0-201-85393-0
* *Volume 4, Fascicle 3: Generating All [[Combination]]s and [[Partition]]s*. (Addison-Wesley, July 26, 2005) vi+150pp, ISBN 0-201-85394-9
* *Volume 4, Fascicle 4: Generating all [[Tree (graph theory)|Trees]] -- History of Combinatorial Generation*, (Addison-Wesley, February 6, 2006) vi+120pp, ISBN 0-321-33570-8
### Edisi sebelumnya
Diurutkan sesuai tanggal penerbitan:
* *Volume 1*, first edition, 1968. 634pp, ISBN 0-201-03801-3.
* *Volume 2*, first edition, 1969, xi+624pp, ISBN 0-201-03802-1.
* *Volume 3*, first edition, 1973, xi+723pp+centerfold, ISBN 0-201-03800-X.
* *Volume 1*, second edition, 1973, xiii+634pp, ISBN 0-201-03809-9.
* *Volume 2*, second edition, 1981, xiii+ 688pp. ISBN 0-201-03822-6.