Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My university is organizing a project for college students (age around 17) around the subject of encoding (not encypting! See also As a student of this university, I was asked to help organize this project.

We have made some teaching material, in which we explain the concept of encoding and decoding. The college students will get an understanding of Hamming codes and the Golay code, among other things.

One key piece is missing however: we would like to come up with a fun project based on encoding and decoding.

The project will have to take them about 4 to 8 hours. A few ideas we already came up with, but are not fully satisfied with:

  1. Split the college students in a few groups. Let each group choose a mp3 file with some well-known music. Let them encode the (binary representation of the) mp3. We add some noise to this encoding and let some other group try to decode it, based on a bit of information given by the first group (eg. part of the generator matrix used or some part of the decoding).

  2. We make a message consisting of some images or text, encode it, add some noise, and send it to the first group. They will have to decode it (based on some information given by us) and try to find the message that we sent. They encode it, we add some noise, and send it to the second group, and so on... Then we hope the message that the last group decodes still somehow resembles the message we sent (or not).

TL;DR. Do you have an idea for a fun project based on encoding and decoding for college students, taking about 4 to 8 hours?

Thanks in advance!

EDIT 2012-01-12 11:26

Before these college students start the project, they will have an understanding of basic lineair algebra (matrix multiplication) and binary arithmetics. The project is meant for 'excellent' (or smart) students, that have a passion for math.

share|cite|improve this question
4 to 8 hours is about enough time to get your head around most of the complexities of mp3. It's nowhere near enough time to actually decode a file and re-encode it. – Peter Taylor Jan 12 '12 at 11:45
@PeterTaylor: Sorry, maybe I didn't really explain it that well. We will translate the mp3 to binary representation and give that tot the students. They will just have to come up with a way to encode it (eg. Hamming or Golay). We will implement that encoding and apply some noise to it. Then another group will have to decode it, based on some information that the first group gave them. – Thanaton Jan 12 '12 at 15:38
Ah, so the fact that it's an mp3 is irrelevant to what they're doing with it? If you're looking for something vaguely applicable, are you going to get as far as Reed-Solomon codes? If so, you could get them decoding QR codes, which they're probably used to seeing on just about everything nowadays. – Peter Taylor Jan 12 '12 at 15:44
@PeterTaylor: No, we aren't going to explain Reed-Solomon codes. The Golay code is the most extensive one we will be using. Repairing bursts is outside the scope this project. However, thanks for your suggestion about QR-codes! – Thanaton Jan 12 '12 at 18:58
You might have gotten more suggestions, if you had added the <tag: coding-theory>! For example, I only saw your question today! :-(. If the students only have 4 to 8 hours I would not expect them to be able to implement anything more advanced decoding than, say, Hamming decoder or a decoder for a repetition code. Golay code is already tougher without a bit more sophisticated algebra. Viterbi decoding (if you covered convolutional coding) would be easier to do in classroom setting. But I'm a bit curious! How did it go? What did you end up doing? – Jyrki Lahtonen Aug 28 '12 at 19:28

You might look at various error-tolerant ways of putting data on paper and scanning it back in. In particular, the Twibright Optar system for printing music on paper uses Golay codes.

MP3 is pretty complex, unless you're just treating it as a raw opaque binary blob. Perhaps it would simplify things to use a simpler representation of music, perhaps a series of raw uncompressed 16-bit integers (as stored on music CDs or inside WAV files) or MIDI files.

Perhaps you could implement some variation of the "telephone game"? Perhaps something involving manual typewriters to type out messages (attempting to make them "error-resistant"), and hole-punches to knock out a dozen "critical" letters, and then try to recover the original message from the sheet of paper riddled with holes?

share|cite|improve this answer
Thanks for your suggestions. Although the project has already passed, we will take these ideas in consideration for next years project! – Thanaton Jun 22 '12 at 6:40
I second the opinion that MP3 is very complex. It requires implementation of the STFT (…). I just wrote my own analysis-synthesis version of the STFT, and it took about two weeks of work to properly debug and test the algorithms. – Nicholas Kinar Nov 11 '12 at 2:13

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.