Resources, homework, etc. for the Math Behind Error Correction camp in January 2026.
- How to convert numbers from base-10 to base-2
- How to write a number in a different base (ex.
$10110_2$ ) - How to add numbers in different bases
- Finding the parity of a base-2 string of bits
- Why we need to detect and correct errors
- What the difference is between error detecting and error correcting codes
Resources
- In general, what codes allow you to detect if an error's occurred
- Repetition code, and why it's inefficient
- Parity and parity in chunks codes, and why you can detect transmission errors but not correct them
- Brainstorm how you could possibly expand these to an error correcting code
- Parity check method used for credit cards (Luhn algorithm)
Resources
- 2-dimensional error detection / correction method
- Discuss problems with all the methods we've discussed - we have to assume that there's only been one error
- Brainstorm ideas to detect / correct more than one error
- Begin talking about vectors, and what notation we'll use to describe them
- What are vectors?
- Describe "hops" on the number line (of real numbers), how to visualize addition as adding "hops" and multiplication as making them longer
- Now use the coordinate plane, kind of a 2d number line, and how vectors are essentially the 2d version of the "hops"
- Introduce notation for writing vectors (ex.
$\vec{v} = \langle 1, 2 \rangle$ ) - Introduce notation for vector spaces, what vector spaces are, and the ones we'll be using for the rest of the class (
$\mathbb{Z}_2^n$ )
- Note: vectors themselves are fascinating but addition and multiplication by integers are all the arithmetic we need to know for Hamming codes (no dot products or anything complicated like that)
Resources
- 2-dimensional error detection / longitudinal redundancy check
- Vectors (lots of notation)
- Vectors (less notation)
- Vector spaces (lots of notation)
- Vector spaces (slightly less notation, a bit easier to understand)
- Vector spaces are all possible vectors of a certain length and in a certain base, subspaces are subsets of those. How to define a more restrictive vector subspace as a combination of basis vectors.
- Visual representations of vector spaces and subspaces (squares, cubes, tesseracts, etc.)
- How to tell whether a vector is within a subspace, and why or why not
- Hamming codes - vectors within a subspace are an acceptable message, ones that are just within the space are not.
- Hamming distance between two vectors determines how to correct a message with a transmission error
Resources
- Vector subspaces (lots of notation)
- Hamming distance / minimum Hamming distance
- Hamming space (Wikipedia, couldn't find another source that explains it well)
- There's some extra slides about modular arithmetic, finite fields, and set notation that were kind of a deviation from the topic of the class. If there's extra time, that's something we could potentially look at.