Typos found so far in the text Section 0.1.3: In Fact 0.1.9, "C" should be replaced with "F". Section 0.1.6: In Proposition 0.1.12, "h o (g o h)" should be replaced with "h o (g o f)". Section 0.6.2: On p. 33, there is a missing right parenthesis after "(which happens with probability 1/3". Section 0.8: Program code preceding Problem 0.8.6 uses a variable name myList that should instead be L. Section 1.4.1: In the proof of the formula for the square of |z|, "textreal" should be "real". Beginning of Chapter 2: Spurious capital I in "His". Section 2.4.2: Question 2.4.5 is based on representing n-vectors by n-element tuples but should use n-element lists instead of tuples. In the answer, the outermost parentheses in the return expression should be replaced with square brackets: "return [v[i]+w[i] for i in range(len(v))]" Section 2.4.9: The set at the bottom of p. 71 requires that alpha beta is in R but should require that alpha is in R and beta is in R. Section 2.5.1: "For each plaintext c" should be "For each plaintext p". Section 2.5.3: The second and third photos of Lights Out are in the incorrect order. Section 2.6: In Example 2.6.2, the top-right "0" in the table should be a "1". Section 2.6.1: The value vector has the numbers from the quantity vector, and value * quantity uses the numbers from cost * quantity. Section 2.6.1: Missing space after "rate". Section 2.6.5: Spurious 1 after u in beginning of proof of Proposition 2.6.16. Section 2.6.6: The addition in Example 2.6.17 is wrong. Section 2.8: In Problem 2.8.3, G(1) should be replaced with 1 but remember the vectors are over GF(2). Section 2.8: In the Problem 2.8.6 ( "A vector class"), the phrase "inner product" should be replaced with "dot product". Section 3.4.2: ?? in place of example number and chapter number. Section 3.4.3: Example 3.4.5 is incorrectly solved. The correct solution is x1=3, x2 = -19, x3 = 17.6666, x4 = -66.83333. Section 3.7.6: Problem 3.7.13 has ?? in place of 3.7.12. Section 3.12: The hint in part 2 of Problem 3.12.1 is not necessary; I've hacked Vec so that sum(..) works without the hint. Section 3.12: Problem 3.12.5 should read "Express the line segment ... as a set of linear combinations." Section 3.12: The table for Problems 3.12.16 and 3.12.17 is missing. Get it from the assignment page. Section 4.1.2: At the end, "c in R" should be "c in C". Section 4.1.2: In Example 4.1.1, the rows of the matrix are given but the word Vec was inadvertantly omitted. Section 4.2.4: In Definition 4.2.6, the sum should be over "r in R", not "r in C". Section 4.4.1: An "n" was left off the word "column". Section 4.4.1: In Example 4.4.1, the text should be corrected to read "Rotating the point [1,0] by ninety degrees about the origin yields [0,1]" Also, the matrix M should be 0 -1 1 0 Section 4.4.3: A dot was missing in one place and superfluous in another. A left parenthesis was superfluous. Section 4.4.3: In the definition of linear functions, a function must satisfy Equations 4.3. and 4.4. Section 4.5: In Definition 4.5.2 (The matrix-vector definition of matrix-matrix multiplication) should be: for each p in P, row p of AB is (row p of A) times B. Problem 4.6.11: The procedure identity_matrix should take two arguments: identity_matrix(D, one_elt) should return the diagonal matrix whose diagonal elements are all one_elt. Problem 4.6.2: A "linear transformation" just means "linear function". Some mixed-up parentheses/brackets.