I'm trying to find a good real-world analogy (or even good visualization) for teaching about error correcting codes and erasure encodings. The most natural way to talk about it really is in terms of the lower-order polynomials.
The examples / analogies that I have heard:
- Take a piece of information, split it into a bunch of puzzle pieces including some extra ones. That way, even if someone loses a piece, you can still put the puzzle back together.
- I find this one a bit weak, as it doesn't really get across the point that the split is generic. You can use any subset that is large enough to get all the information back.
- Think about if you wanted to tell someone else about a line. Two points define a line, so you could just send them 4 points on the line. That way, even if some points got lost, you could figure out which points were missing.
- I really like this one, but I find some students have a hard time extending their intuition on lines to polynomials immediately. It definitely does a good job of being precise, as it is exactly what is going on.
- It's like a checksum. Imagine you have a bunch of data in binary form, and at the end you put two digits. Both of them are the same, and are 0 if the number of 1s in the binary is even, and 1 if it is odd. That way, if exactly one binary digit changes in transit, you can always notice it. This example then goes into the process of checking the cases of no errors, error in data, and error in check-data.
- This one is also pretty nice, but then at the end you still have to say "but imagine you could do that but more". Also, it's very data-oriented.
Are there better analogies that can be used to teach this concept?