These lectures mainly are directed towards doctoral students in coding theory: 1) Open problems in \lq\lq classical" coding theory, for example, minimum distance problems for block and convolutional codes, relations to sequence construction, Z4-codes, structural descriptions of codes such as weight hierarchies and trellis structure. Algebraic geometry codes will be mentioned too but just references to some of the other lectures will be given. 2) An overview of information theoretic aspects of coding for communications, and the recent solutions to the coding problem: Iterative decoding to overcome the complexity problem, applied to parallel concatenated codes (\lq\lq turbocodes"), serially concatenated codes, and related constructions, as well as Low-parity density codes 3) Applications, and the requirements they impose on the coding systems. Examples can include magnetic and optical recording, mobile communications. Other applications might include modems, semiconductor memories, deep space channels...