 in the classical world of error-correction codes. Calderbank-Shor-Steine (CSS) codes In this section, I describe a new class of quantum error-correction codes referred to as the Calderbank-Shor-Steine (CSS) codes, which have the capability of correcting up to t bit-flip and phase-flip qubit errors. The construction of CSS codes is based on the use of two classical linear block codes, as described in Chapter 11. To recall, a linear block code C is defined as a set (n, ,k) of |C|=2k codewords X of bit length N. It is characterized by:1 (i) A generator matrix G, of dimension n X k, which, for any n-vector Z to be encoded, yields the corresponding codeword x = Gz; (ii) A parity-check matrix H, of dimension n ( x (n - k), which satisfies Hx = 0 for codewords x E C. Let (n,k1) and (n, k2), with k1 > k2 define two linear block codes C1, C2 of sizes |C2|<|C1|. To construct a CSS code, we require the following two conditions: (a) C2 C C1: all codewords of C2 belong to C1; (b) C1 and have a bit-error correction capability of t. In Chapter 11, we used the left vector-matrix multiplication yTU, where yT is a line vector, instead of the right vector-matrix multiplication Uy, where y is a column vector, which is only a matter of convention. Also we previously called x the vectors to be encoded and y the resulting codewords, while in this chapter we shall use x and y to designate codewords from two different linear block codes. Quantum error correction In condition (b), C21 is called the dual of C2. Given a block code with G, H as generator and parity-check matrices, respectively, the dual of C, noted C1, is a unique block code having HT, GT for generator and parity-check matrices, respectively (the matrix UT is the transposed matrix of U). Given two linear block codes C1, C2 satisfying the above conditions, we can construct a CSS code as follows. Let X, y be two n-bit codewords, such that x E C1 and y E C2. It is possible to define a quantum state |x+y), where + indicates here bit-wise addition modulo 2 (or in Boolean logic, 