This undergraduate textbook is a pleasure to read. Coding is just a uniform way of expressing a message with a given set of symbols using a given set of rules. There are three reasons to encode a message, economy, reliability, and security. Each of these three ascpects is discussed in five chapters.
Each section is broken up into rather short sections, so the reader ofteen feels to have accomplished something. The author has a sense of humor, and he is not afraid to use it. The examples are very well chosen. This reviewer is impressed by how little previous knowledge is assumed (not more than first semester calculus).
My only critical remark is that the exercises are placed at the end of the short sections, and there are no exercises at the end of the chapters, or at the end of the three parts (5-chapter units). The problem with this is that in this way, the placement of an exercise immediately hints to the student what method to use, which does not happen often in real-life situations.
I thought that even this critical remark would be tempered when I read that there are additional exercises on the publisher's website. I looked up the web page of the book at www.springer.com, but there were no extra exercises there, just a solutions manual. This is an unfortunate, but easily correctible, problem. This very enjoyable book deserves many readers.
Miklós Bóna is Associate Professor of Mathematics at the University of Florida.
Coding and its uses.- Prefix-free codes.- Economical coding.- Data compression.- Noisy channels.- The problem of reliable communication.- The noisy coding theorems.- Linear codes.- Algebraic coding theory.- Coding natural languages.- The development of cryptography.- Cryptography in theory and practice.- The RSA cryptosystem.- Cryptography and calculation.- Elliptic curve cryptography.- Answers to odd-numbered exercises.- Index.