Instructor: Mary Wootters
TA: Noah Shutty
When and where? M/W 4:305:50pm, Sapp Center for Science Teaching and Learning (STLC), Room 118.
Course Description: Introduction to the theory of error correcting codes, emphasizing algebraic constructions and diverse applications throughout computer science and engineering. Topics include basic bounds on error correcting codes; ReedSolomon and ReedMuller codes; listdecoding, listrecovery and locality. Applications may include communication, storage, complexity theory, pseudorandomness, cryptography, streaming algorithms, group testing, and compressed sensing.
Prerequisites: Linear algebra, basic probability (at the level of, say, CS109, CME106 or EE178) and "mathematical maturity" (students will be asked to write proofs). Familiarity with finite fields will be helpful but not required.
What do I need to do? Four homework assignments and a final project.
The following is a tentative schedule. It is subject to change, especially the lectures that have not happened yet. Lectures that have not happened yet have broken links. If a lecture that has happened has broken links, please alert marykw.
Monday  Wednesday 

1/7. Lecture 1: Logistics and the basics of coding theory.  1/9. Lecture 2: Intro to finite fields and linear codes.
Optional reading: Forney's introduction to finite fields. Homework 1 released. 
1/14. Lecture 3: More linear codes. Application: McEliece Cryptosystem; Asymptotics, Hamming and GV bounds.  1/16. Lecture 4: Singleton and Plotkin bounds; ReedSolomon Codes!!!
Homework 1 due. Homework 2 released. 
1/21. MLK Day. No Class.  1/23. Lecture 5: More ReedSolomon Codes! WelchBerlekamp and BerlekampMassey algorithms 
1/28. Lecture 6: Binary codes! BCH codes, code concatenation.

1/30. Lecture 7: More Concatenated Codes and the Zyablov bound
Homework 2 due. Homework 3 released. 
2/4. Lecture 8: Algorithmic applications of RS codes: streaming, compressed sensing, group testing  2/6. Lecture 9: Random errors and efficiently achieving capacity on the BSC
Homework 3 due. Homework 4 released. 
2/11. Lecture 10: ListDecoding! (Listdecoding capacity theorem and the Johnson bound)
Relevant reading: Extensions to the Johnson Bound (Guruswami and Sudan 2001) 
2/13. Lecture 11: GuruswamiSudan Algorithm
Homework 4 due. Start thinking about your projects! 
2/18. President's Day: No Class  2/20. Lecture 12: List recovery and applications
I'm counting this as lectures 12 and 13 together since we missed on on President's day...(either I'll talk double speed or we will skip things, depending on demand :P) Project proposals due. 
2/25. Lecture 14: Folded ReedSolomon Codes

2/27. Lecture 15: ReedMuller Codes and Locality 
3/4. Lecture 16: Local listdecoding and applications (GoldreichLevin, KushilevitzMansour)  3/6. Lecture 17: Applications in storage: Regenerating codes from RS codes 
3/11. Project Presentations  3/13. Project Presentations 
3/18.   3/20. Final projects due, 11:59pm. (by email to marykw) 
Please follow the instructions on the homework sets for doing and submitting your homework, and note the grading policies below.
Homework:
Project: