This is a revised edition of McEliece's classic. It is a self-contained introduction to all basic results in the theory of information and coding (invented by Claude Shannon in 1948). This theory was developed to deal with the fundamental problem of communication, that of reproducing at one point, either exactly or approximately, a message selected at another point. There is a short and elementary overview introducing the reader to the concept of coding. Then, following the main results, the channel and source coding theorems, there is a study of specific coding schemes which can be used for channel and source coding. This volume can be used either for self-study, or for a graduate/undergraduate level course at university. It includes dozens of worked examples and several hundred problems for solution. The exposition will be easily comprehensible to readers with some prior knowledge of probability and linear algebra.