Notes on coding theory
Introduction

1. Linear codes
1.1. Basic notions
1.2. Decoding
1.3. 
Supplements and problems

2. Metric spaces of coding theory
2.1. Hamming and Johnson spaces
2.2. Ordered Hamming space
2.2. q-Hamming, q-Johnson
2.4. Spheres in R^n and spherical codes
2.3. Grassmann spaces over infinite domains
Supplements and problems.
  1. Poset metrics
  2. Spheres and sphere packing

3. Distance distribution and duality theorems
3.1. Weight distribution of linear codes
3.2. MacWilliams-type theorems
Supplements and problems

4. Random codes
4.1. Averaging arguments: Gilbert-Varshamov-type bounds
4.2. Improvements of the GV bound

5. Combinatorial problems
5.1. Cover-free families, superimposed codes
5.2. Perfect hash functions
5.3. Separating codes
5.4. Covering arrays
5.5. Applications of the uniform distribution:
5.5.1. Designs
5.5.2. Orthogonal arrays, t-resilient functions
5.5.3. TMS nets and codes
Supplements and problems

6. Bounds on codes
6.1. Bounds on the minimum distance
6.2. BSC error exponents
6.2.1. Lower bounds
6.2.2. Upper bounds
6.3. Gaussian channel, error exponents
6.4. Threshold probability of the code
Supplements and problems
1. Method of types
2. Error exponents for the discrete memoryless channel

7. Applications of harmonic analysis I
7.1. Fourier analysis on the Hamming cube
7.2. Upper bounds on codes in the Hamming space
7.3. Influence of variables
Supplements and problems

8. Applications of harmonic analysis II
8.1. Zonal polynomials
8.2. Linear programming bounds
8.3. Levenshtein bounds
Supplements and problems
 
9. Problems with cryptographic motivation
9.1. Secret sharing schemes and linear codes
9.2. Authentication
9.3. Wire-tap channels
9.4. Frameproof, parent-identifying and fingerprinting codes
9.5. Traitor tracing, revocation
Supplements and problems

10. Quantum channels and codes
10.1. Quantum depolarizing channel
10.2. Stabilizer codes
Supplements and problems

11. Code concatenation
11.1. Serial concatenation: Forney's construction
11.2. Parallel concatenation: Codes on graphs.
11.3. Graph expansion
11.4. Distance of graph codes
11.5. LDPC codes
11.6. Flipping algorithm
Supplements and problems
1. Hypergraph codes

12. Reed-Muller codes and their decoding

Appnedix 1. Association schemes
Appendix 2. Orthogonal polynomials
Appendix 3. Oids and their ilk
Appendix 4. Graphs and hypergraphs