I thank my agent, Laura Fillmore, and friends and students, Paul Musgrave, Bill Bloch, Dru Jarrett, Jeff Jarrett, Raja Thiagarajan, Steve Ryner, and Stewart Howard, for help far above and way beyond. I thank Mike Dunn, Andy Hanson, and Andrew Lumsdaine 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 near the end of its gestation.
I also thank Lori Agan, Breanne Anderson, Emily Anderson, Ricardo Baeza-Yates, Lucy Battersby, Lindsay Biegel, Katy Boerner, T. C. Bradley, Willow Brugh, Libby Bulloff, Rebecca Burns, Ashley Callahan, Ben Campbell, Tracy Canfield, Sarah Canfield-Fuller, Sean Counceller, Joe Culberson, Abe Dashiell, Bryan Dawson, Andrea Donderi, Russell Duhon, Sean Ellis, Julie England, Justin Eylander, Matt Farrellee, Jerry Fenner, 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, Dan Lash, Megan Lewis, Sarah Loos, Melissa Lorenzen, Kate Malloy, Nina Mazkoori, Suzanne Menzel, Karen Miller, 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, Will Stubbs, Claire Sullivan, Damien Sullivan, Mike Sullivan, Sarah Taylor, Tracey Theriault, Thiagi Thiagarajan, Levy Thomas, Fernando Tohmé, Ana Viglizzo, Ignacio Viglizzo, Laura Watkins, Gordon Weil, Steven Wennerberg, Dedaimia Whitney, Larry Yaeger, and the Indiana University informatics and 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; and I308 Fall 2010.