Many authors have used their knowledge and skills to write a book that should make mathematics more interesting for students who think mathematics is boring, difficult, and a completely useless pass-time to annoy them and make life difficult for them. This kind of books appears in all possible forms and at all possible levels. Some emphasize the fun of mathematics and they may fo example discuss puzzles, geometric issues, and often elementary number theoretical pleasantries. Some stress the everyday applications where the mathematics can be clearly pointed out. Sometimes they are presented as a kind of coffee table book, sometimes they take the form of a textbook with exercises that may stand alone or may need an accompanying analysis of numerics course or require computer programming.
In this case the authors have chosen to work out five `projects' for which they explain the mathematics at a level that is accessible for first year university students at a science or engineering faculty. The topics are real life applications and they are explored to a remarkable depth. Some are a bit more demanding than others, but the diversity of mathematics that is covered is probably a pleasant surprise and may serve as an eye opener that these 'rather abstract' mathematics can have very practical applications. To make this more concrete, let me quickly go through the five topics covered in this book.
1 - The pocket calculator
It introduces the binary number system, BCD encoding, and the representation of negative numbers, Boole algebra and binary arithmetic with logic circuits for binary adders and the circuit to represent digits on familiar seven-segment led displays. Floating point numbers are not considered.
2 - Data compression
This is another practical thing everybody uses without realizing. This is about coding theory: binary codes, prefix-free codes, and optimal codes. It introduces the notion of entropy and culminates in a general algorithm to realize Huffman codes.
3 - The JPEG standard
The JPEG standard is a pretty complex set of very detailed specifications on how to compress digital images. The 1992 JPEG version is based on the discrete cosine transform (DCT) performed on blocks of 8 x 8 pixels, which in very low resolution gives the well known block effects. The JPEG 2000 standard is intended to overcome this kind of artifact and includes wavelets, regions of interest, and many other gimmicks. What is considered here is basically the role of the DCT in this context and the quantization afterwards. This is at the core of the old JPEG compression standard, but it is not really the standard itself. The latter is a more general technical specification of the codec which prescribes how the image should be compressed into a stream of bytes and conversely how it can be decompressed to recover the (lossy approximation of the) image. The mathematics and properties of the DCT and for example the orthogonality of the DCT matrix are given at the end of the chapter as a kind of a mathematical 'encore'.
4 - The GPS system
Many topics work together in this application. The first principle is that your position is fixed as the intersection of three balls with their center at three satellites and whose radius is the distance from the satellite to your GPS receiver. So one has to find the distance to three satellites. This distance is based on the travel time of the signal with the speed of light. This in turn requires some matching of the cheap receiver clock and the expensive atomic clock of the satellite, a problem solved using a fourth satellite. Another problem is to identify the satellites. Therefore satellites send a signal generated using linear feedback shift registers (LFSR). To explain that, the authors start by introducing modular arithmetic, groups, fields, and polynomials over finite (Galois) fields. The purpose of this theory is to arrange that eventually a cyclic repetitive pattern with maximal cycle length will be transmitted by the satellite and by correlation analysis, possible errors can be corrected by the receiver so that the correct satellite can be identified and the receiver can synchronize with the satellite. Again, this is clearly not the complete picture. For example synchonization needs to take general relativity issues into account. But that would lead too far away from the relatively simple mathematics needed in this chapter so far.
5 - Face recognition
The RGB values for color images are mentioned but the treatment is reduced to handling grey-scale images. A first problem is to frame the faces in a smaller sub-rectangle of the general picture and it may need rotating and rescaling to align with other faces. Rotating a rectangle will need to enlarge the rectangle in the original axes, in order not to loose pixels from the rotated rectangle, and one will have to recompute the grey-level of the pixels with respect to the original axes. Here seven landmarks are identified in a face: left and right ends of both eyes, the nostrils, the left and right end of the mouth. The rotation point will be the centroid of these landmarks. The best fit is then obtained by solving a least squares problem. The mathematical analysis of the latter leads to a solution by normal equations, which is numerically certainly not the best thing to do, but given the fact that only principles are illustrated here, and not the actual implementation, the authors may be forgiven. The actual face recognition is then by using the closest fit to eigenfaces. In fact using the eigenvalues and eigenvectors of a matrix $A^TA$, what is done here, is actually deriving the singular value decomposition without explicitly naming it. That is practically identical to a more general principle of principal component analysis. Given the amount of mathematics included in the previous topic, I think it is a missed opportunity to introduce in this chapter the notion and the many nice properties of the singular value decomposition (possibly in some disguised form). Perhaps in a next edition the authors can think of another topic (earthquake, eigenmodes of a building, Google's pagerank,...) to introduce eigenvalues and reserve the face recognition topic for the singular values.
In each chapter, the problem is briefly sketched and it is explained why it is important, and then some short survey is given of what mathematics will be used. When later in the chapter it comes down to the mathematics, this is presented in a classic style with, where appropriate, definitions, lemmas, and theorems with proofs. The theory is however restricted to what is actually needed. Most mathematically elaborated are the polynomials over finite fields of coding theory (chap. 4) and the DCT (chap. 3). There the mathematics go somewhat further than what is strictly needed for the application. Personally I appreciated topics 4 and 5 the most because they illustrate best how different mathematical issues can work together to achieve the result. Unfortunately I think they are also the most complicated topics. In general, the complexity level seems to increase as one advances in the book. For each chapter a few references (usually only 2 or 3 books) are added for who wants to read more about that particular topic. There are not many illustrations, but the ones that would be expected are all there. The text is typeset in LaTeX, which gives a nice result, but I would advise the authors to use ⟨⋅,⋅⟩ (i.e., $\verb|\langle,\rangle|$) for the inner product instead of < and >. The latter are binary operators in LaTeX and hence are typeset by the system as binary operators with glue inserted before and after. Another minor flaw that caught my eye is on page 46 where the term `internal leaves' (in a binary tree) is used but I believe that a leaf is always an end-node in a graph, which means it cannot be internal. Thus I think `internal node' is the correct term to use here. Pardon me my nitpicking on an otherwise marvelous booklet.
It's all somewhat biassed towards computers and computer science and its applications. It mainly deals with mathematics that are needed to write the software to make the application work. Moreover it is all rather elementary, and I do mean this in a positive sense. It is perhaps not that simple for the students for whom the book is intended, but it is too much simplified in case one wants to comes down to the practical realization of these ideas. Nevertheless it is good enough to catch the basic principles. Instructors could easily set up some very nice projects with these topics, or some parts can be inspirational to illustrate their mathematics courses.