<<

Coding

Syllabus for Proposed Summer Tutorial Nathan Kaplan: [email protected]

Overview

Coding theory is a rather young area of having really been started only around 1948, but it has become an area of extensive research among both pure and applied mathe- maticians. The main idea is as follows. Suppose two parties want to exchange a message, a sequence of ones and zeros, over a noisy channel. That is, there is some probability p such that for each bit of the message the bit received does not match the bit sent. The sender and receiver must build redundancy into their messages to make sure that errors can be detected and hopefully corrected.

n A C is just a subset of Fq , for some finite field Fq (feel free to think of this as Z/pZ where p is a prime for now). We want the code to be as large as possible but we want to make sure that the between two codewords is not too small. How well can we accomplish n these goals? What if we also impose the condition that C is a linear subspace of Fq ? This is one of the major questions of coding theory.

In this course we will focus on algebraic questions, but will talk a little about the more practical side of as well. One of the amazing things about the subject is the extensive connections to other areas of math. In this course we will see links to combinatorial designs, lattices and sphere packings in Euclidean Space, some amazing finite simple groups, orthog- onal polynomials and linear programming, and (maybe) algebraic geometry. We hope to incorporate some computational elements into the course, showing the amazing things that a algebra system (like SAGE), can do with codes.

Linear algebra will be helpful for this course, as will a semester of , but we will not assume much background at all. We will go over necessary facts about finite fields and also any probability or that come into play. Absolutely no experience with codes will be assumed.

1 Topics

• Basics of Coding Theory Finite Fields, Linear Codes, Generator and Parity Check Matrices Maximum Likelihood Decoding and Shannon’s Noisy Channel Coding Theorem

• Some Interesting Codes and Their Properties Repetition Codes, Hamming Codes Cyclic Codes: Reed-Solomon Codes, BCH Codes, Quadratic Residue Codes Binary and Ternary Golay Codes

• Weight Enumerators and the MacWilliams Theorem Self-Dual Codes and Gleason’s Theorem. Counting and classifying self-dual codes

• Bounds on Codes- The Gilbert-Varshamov Bound, Hamming and Griesmer Bounds Orthogonal Polynomials and the Linear Programming Bound

• Lloyd’s Theorem and the Existence of Perfect Codes

• Codes and Designs- The Assmus-Mattson Theorem

• Connections between Lattices and Codes

• Practical Coding Theory Codes on Graphs, LDPC Codes, Iterative Decoding

Textbooks

There will be no official textbook, but there are two that I like quite a lot that cover most of the material.

1. MacWilliams, F. J. and Sloane, N. J. A. The theory of error-correcting codes. North- Holland Mathematical Library, Vol. 16. North-Holland Publishing Co., New York, 1977.

2. van Lint, J. H. Introduction to coding theory, Third edition. Graduate Texts in Math- ematics, 86. Springer-Verlag, Berlin, 1999.

2 There are many other references on coding theory which will be useful for different parts of the course.

1. Huffman, W. C. and Pless, V. Fundamentals of error-correcting codes. Cambridge University Press, Cambridge, 2003.

2. MacKay, D. theory: inference and learning . Cambridge Uni- versity Press, New York, 2003.

3. Walker, J. Codes and curves, Student Mathematical Library, 7. IAS/Park City Mathe- matical Subseries. American Mathematical Society, Providence; Institute for Advanced Study, Princeton, 2000.

4. Cameron, P. J. and van Lint, J. H. Designs, graphs, codes and their links. London Mathematical Society Students Texts, 22. Cambridge University Press, Cambridge, 1991.

The books of MacKay and Walker are both available for free online. For students projects, some more specialized references will be helpful. We also note that there are many course notes online from coding theory courses, including Madhu Sudan’s course at MIT.

Possible Student Projects/Further Topics

• More about the Golay Code. Different Constructions, the ‘Miracle Octad Generator’, the Automorphism and Connections to Mathieu Groups, Connections to the Leech Lattice.

• The Finnish Football Pool Problem (Why the was first published by gamblers)

• More on the connection between codes, designs and certain graphs.

• The BMS decoding . Gr¨obnerBases and Coding Theory.

• List Decoding of Codes, the Sudan-Guruswami algorithm

• Codes and Matroids

3 • Expander Graphs and Codes

• Codes over Z/4Z and other rings, the Gray Map and the Nordstrom-Robinson Code • Extensions of Gleason’s Theorem

• Coding Theory in History- How have codes been used for practical purposes over the last 50 years in space travel, CD’s and other areas?

• The Binary Erasure Channel and Other Models of Error

• More Practical Coding Theory: Turbo codes, Tornado Codes, Raptor Codes

• More Linear Programming Techniques in Coding Theory. Semidefinite Programming

• Quantum Codes

For someone with some programming experience:

• Coding Theory in Systems. Discuss/compare the different algo- rithms that SAGE or MAGMA uses (and possibly implement something new!).

These next two are better for students who have already taken an Algebraic Geometry course:

• Goppa Codes/Algebraic Geometry Codes

• Tsfasman-Vladut-Zink Theorem, Curves with many points over finite fields.

4