My thanks for belief in the concept for this book go to Jim Shanahan at McGraw-Hill. I would also like to acknowledge the friendship, education, and advice I've gotten from my colleagues in the computer science department at Princeton over the past several years and several others to whom I owe thanks:
Finally, I'd like to thank Drs. David Longnecker and Lee Fleisher for creating an environment at Penn that encourages projects of this sort.