this book grew out of set of lecture notes that prepared while teaching an undergraduate course at mit the courseand therefore this bookbenefited from suggestions from faculty colleagues (especially eric grimsonsrinivas devadasand fredo durand)teaching assistantsand the students who took the course the process of transforming my lecture notes into book proved far more onerous than had expected fortunatelythis misguided optimism lasted long enough to keep me from giving up the encouragement of colleagues and family also helped keep me going eric grimsonchris termanand david guttag provided vital help ericwho is mit' chancellormanaged to find the time to read almost the entire book with great care he found numerous errors (including an embarrassingto menumber of technical errorsand pointed out places where necessary explanations were missing chris also read parts of the manuscript and discovered errors he also helped me battle microsoft wordwhich we eventually persuaded to do most of what we wanted david overcame his aversion to computer scienceand proofread multiple preliminary versions of this book were used in the mit course and the mitx course number of students in these courses pointed out errors one studentj cabrejaswas particularly helpful he found large number of typosand more than few technical errors like all successful professorsi owe great deal to my graduate students the photo on the back cover of this book depicts me supporting some of my current students in the labhoweverit is they who support me in addition to doing great research (and letting me take some of the credit for it)guha balakrishnanjoel brooksganeshapillai gartheebanjen gongyun liuanima singhjenna wiensand amy zhao all provided useful comments on this manuscript owe special debt of gratitude to julie sussmanp until started working with juliei had no idea how much difference an editor could make had worked with capable copy editors on previous booksand thought that was what needed for this book was wrong needed collaborator who could read the book with the eyes of studentand tell me what needed to be donewhat should be doneand what could be done if had the time and energy to do it julie buried me in "suggestionsthat were too good to ignore her combined command of both the english language and programming is quite remarkable finallythanks to my wifeolgafor pushing me to finish and for pitching in at critical times