I am grateful to Nima Hoda, who spent a summer tirelessly proofreading
many of the chapters in this book, and to the students in the Fall 2011
offering of COMP2402/2002, who put up with the first draft of this book
and spotted many typographic, grammatical, and factual errors in the
first draft.