Many reviewers (and, truth be told, this reviewer most of the time) tend to write reviews completely out of context. This leaves the reader to wonder whether the reviewer is an expert on the subject of the book they are reviewing or whether they are coming to it with fresh eyes, whether it is a subject near and dear to the reviewers' heart or a subject that they would happily have left behind in graduate school, whether they read the book in tiny chunks between grading exams or whether they downed it in one sitting on a beach with margarita in hand.
Now, I don't plan to be like Harry Knowles of Aint It Cool News who often reports on what he ate before seeing the movie he is reviewing and what traffic was like on the way to the theater, but I do think this review deserves a little bit of context: I am an arithmetic geometer by training, and some of my recent research projects have moved into the realm of coding theory and algebraic geometric codes. Like most of us do when our research takes us into new worlds, I have picked up some of the basics of the field by reading research papers and talking to colleagues and trusting their advice, but I had never taken the time to sit down and work through a book on coding theory to make sure I really understood the area that I was trying to apply my results to. So when your intrepid MAA Reviews editor sent out an email looking for someone to review a new monograph from the AMS entitled Algebraic Geometric Codes: Basic Notions, I leapt at the chance, figuring that I could be of service to the MAA while also learning something that would have immediate impact on my research.
Before I continue with this review, I should say a few words about what coding theory is (and in particular point out that it is not the same thing as cryptography). In the 21st century there are many reasons why people want to transmit information electronically, a process which can easily get corrupted due to noisy phonelines or faulty wires or bugs in programming. Thus, we would like ways to correct the errors and discern what the intended message was. One naive way to do this would be to repeat the transmission several times and hopefully the errors will be evident. For example, if you received the message "HELLP HILLO HELMO" you could most likely figure out that the intended message was "HELLO". This process works pretty well, but increases the length of the message threefold, something which we most likely want to avoid. Among other things, coding theory uses different areas of mathematics and computer science in order to find ways of 'encoding' messages so that one can detect and correct any errors without significantly increasing the size of the messages. While the roots of this field date back to Claude Shannon's work at Bell Labs in the 1940s, it is an area which has seen much growth in recent years for several reasons, one of which was the discovery of a connection with algebraic geometry.
The book under review, written by Michael Tsfasman, Serge Vlăduț, and Dmitry Nogin, has the very noble goal of introducing algebraic geometers to coding theory as well as introducing coding theorists to algebraic geometry with the hope that the cross-fertilization of these two areas will lead to fruitful results in both. There are four chapters. The first is devoted to the basics of coding theory; while the authors clearly let the chapters to come influence their choice of material and examples, algebraic geometry is barely mentioned at all. Instead, the authors define codes in the sense of coding theory and the various parameters which one would want to minimize and maximize in order to design optimal codes. They go on to prove some elementary results about bounds on these parameters and give a variety of examples before asking some of the main open questions in the field. In particular, they focus on asymptotic problems about what happens as one lets the length of a code get arbitrarily large.
The second chapter is the opposite of the first, as it serves as a crash course in algebraic geometry while ignoring the coding theory that motivates the choice of topics. The authors quickly run through definitions and basic theorems about algebraic curves, the Riemann-Roch Theorem, the Hurwitz formula, and elliptic curves. Most of this chapter is dedicated to what happens when you are working over an algebraically closed field. In contrast, the third chapter covers the situation where one wishes to work over finite fields, which is the most common case in coding theory. This involves a careful look at methods of counting the number of points on a curve defined over a finite field, an area which uses zeta functions and exponential sums. Both chapters contain a good number of examples to illustrate the underlying theory.
Despite taking up less than a third of the books pages, the fourth chapter is really the meat of the book as it finally introduces the notion of algebraic geometric codes (or AG-codes for short). The authors carefully define how these codes work — essentially they are codes consisting of the values of functions at a prescribed collections of points on an algebraic curve. They give a number of examples and show how if the curve is of genus zero these are (essentially) just the Reed-Solomon curves defined earlier. However, for higher genus curves a variety of interesting things start to happen, and the authors discuss these in greater detail. In particular, the authors look at various notions of the duality of codes, and consider what one can say about self-dual codes. They also look at some of the bounds which one can prove if one restricts one's interest to AG-codes, as well as considering the class of more general codes which can be said to be equivalent to AG-codes. There is an entire section dedicated to examples — completely classifying what happens for low genera, for example — and another dedicated to asymptotic questions in the case of AG-codes. They also discuss several variations on AG-codes, such as Partial AG-codes (which avoid some of the tricky details of computing bases for Riemann-Roch spaces) and Elkies codes (which are nonlinear and essentially allow the functions to have poles at some of the prescribed collection of points).
So that's what the book covers, but does it cover it well? I have mixed feelings.
As mentioned above, I seem to be in the target audience for the first chapter, and I certainly learned a good deal from it, but in many ways the presentation was lacking. Coding theory seems to inherently have a large number of definitions and parameters that a reader needs to keep track of, but the exposition in this book did not help the authors' case much. They largely push historical and bibliographic information off to appendices and endnotes, and the density of equations and symbols approaches 1 at various points. There are a large number of examples throughout the book; they help give life to the theorems, but it is often unclear if there is something special about the examples that the authors are presenting or if they represent the generic situation.
In the first chapter the authors present full proofs of most of the results, but as the algebraic geometry gets more serious they tend to state many results without proof or leave the proof as one of the exercises. This makes for a faster and smoother read for those of us who have seen the proofs at some point, but I imagine might be frustrating to a reader who is confronting the subtleties of Riemann-Roch for the first time.
It also feels like a shame that a book about an area of mathematics with such concrete applications would treat issues of implementation and algorithms as such an afterthought. I understand the authors' inclination to focus on the theoretical side of the picture, but it would have been interesting to have some discussion of the real-world (or quasi-real-world) questions motivating the theory.
As I read the book, I had many thoughts and criticisms along these lines. I do not think the book lived up to its potential, but in some ways I am just picking nits — I walked away from the book knowing quite a bit more than I did when I picked it up, and any book about which you can say that is in some sense a success. The authors have written a solid book that develops quite a bit of interesting mathematics from the ground up in a relatively short number of pages, but I think a better book on the field could be written and I look forward to reading such a book.
Darren Glass is an Assistant Professor of Mathematics at Gettysburg College. He can be reached at firstname.lastname@example.org.