Plus vident oculi quam oculus. ([Many] eyes see what one cannot.)

I thank my agent, Laura Fillmore, and friends and students, Bill Bloch, Stewart Howard, Dru Jarrett, Jeff Jarrett, Charles McFee, Paul Musgrave, Jerry Fenner, Steve Ryner, Mike Sullivan, Raja Thiagarajan, and Dedaimia Whitney, for help far above and way beyond. I thank Mike Dunn, Andy Hanson, Andrew Lumsdaine, Steve Johnson, Chris Raphael, and Amr Sabry here at IU, and John Holland at Michigan, for helping to make this book possible. And I thank Rob Henderson and Bruce Shei, who kept my systems functioning through all the years I took to write it. Special thanks to my father, Malcolm Rawlins, and my supervisor, Derick Wood, both of whom died during its long gestation.

I also thank Lori Agan, Breanne Anderson, Emily Anderson, Ricardo Baeza-Yates, Lucy Battersby, Randy Beer, Lindsay Biegel, Katy Boerner, T. C. Bradley, Willow Brugh, Libby Bulloff, Rebecca Burns, Ashley Callahan, Ben Campbell, Tracy Canfield, Sarah Canfield-Fuller, Charles Connor, Sean Counceller, Joe Culberson, Abe Dashiell, Bryan Dawson, Chris Donaldson, Andrea Donderi, Russell Duhon, Sean Ellis, Julie England, Justin Eylander, Matt Farrellee, Mary Field, Melanie Foust, Elizabeth Foz, John Gallman, Rob Goldstone, Edward Grant, Melissa Harrold, Laura Hayden, Allison Hendricks, Lisa Herrmann, Laura Hopkins, Matt Hottell, Jamia Houston, Erin Huberty, Terry Jones, Kristy Kallback, Eric Kisling, Nick Krabbenhoeft, Cosmos Krejci, Paul Kusisto, Dan Lash, Megan Lewis, Sarah Loos, Melissa Lorenzen, Kate Malloy, Nina Mazkoori, Suzanne Menzel, Karen Miller, Steve Mosier, Sue O’Rourke, Priscilla Parris, Anne Prieto, Donna Raskin, Jayna Reichers, Adam Reynolds, Stephen Rowe, Doug Rusch, Amr Sabry, Clay Shannon, Steve Simms, Alek Slominski, Olaf Sporns, Andrea Spray, Christine Stanley, Tom Stanley, Will Stubbs, Claire Sullivan, Damien Sullivan, Sarah Taylor, Tracey Theriault, Thiagi Thiagarajan, Levy Thomas, Fernando Tohmé, Ana Viglizzo, Ignacio Viglizzo, Laura Watkins, Gordon Weil, Steven Wennerberg, Larry Yaeger, Jason Yoder, and the Indiana University Informatics and also Computer Science classes: I101, Spring 2000; I400, Spring 2003, Fall 2003, Spring 2006, Spring 2007; C102 Spring 2006 and Spring 2007; B490 Spring 2008; I356 Spring 2008 and Spring 2009; I308 Fall 2010; I400 Spring 2012.

For the book’s notes, see: