  These are the notes for two lectures delivered at the Les Houches summer
school Mathematical Statistical Mechanics, held in July 2005.
  I review some basic notions on sparse graph error correcting codes with
emphasis on `modern' aspects, such as, iterative belief propagation decoding.
Relations with statistical mechanics, inference and random combinatorial
optimization are stressed, as well as some general mathematical ideas and open
problems.
