This textbook unifies the concepts of information, codes and cryptography as first considered by Shannon in his seminal papers on communication and secrecy systems. The book has been the basis of a very popular course in Communication Theory which the author has given over several years to undergraduate mathematicians and computer scientists at Oxford. The first five chapters of the book cover the fundamental ideas of information theory, compact encoding of messages, and an introduction to the theory of error-correcting codes. After a discussion of mathematical models of English, there is an introduction to the classical Shannon model of cryptography. This is followed by a brief survey of those aspects of computational complexity needed for an understanding of modern cryptography, password systems and authentication techniques. Because the aim of the text is to make this exciting branch of modern applied mathematics available to readers with a wide variety of interests and backgrounds, the mathematical prerequisites have been kept to an absolute minimum. In addition to an extensive bibliography there are many exercises (easy) and problems together with solutions.