How do you send data through a noisy channel and still get it back exactly? I spent a summer at Wolfram Research building the answer from scratch, from simple block codes up to Turbo codes.
Every time data moves, through a cable, a phone signal or a scratched disc, some bits can flip. Error-correcting codes add a few carefully chosen extra bits so the receiver can find and fix those errors without asking for the data again.
At the program I also looked at cellular automata before focusing on channel codes.
Four message bits become seven by adding three parity bits. Click a message bit to change the message, then click any received bit to corrupt it and watch the decoder find it.
Each column is its position written in binary. The syndrome you get from the received bits is the column of the bit that flipped.
Working with Prof. Lyman Hurd, I started from first principles and built up, writing Wolfram Language functions that encode and decode data under noise for each family.
Published on Wolfram Community as part of the Wolfram High School Summer Research Program, mentored by Prof. Lyman Hurd. It has more than 6,400 views.
I'm looking for software engineering internships for Summer 2027, and I'm always happy to talk about projects.