preface acknowledgments there are number of individuals would like to thank for helping to make this book possible firsti must acknowledge two individuals who served as mentors in the early part of my career mary dayne gregg (university of southern mississippi)who was the best computer science teacher have ever knownshared her love of teaching and provided great role model in academia richard prosl (professor emerituscollege of william and maryserved not only as my graduate advisor but also shared great insight into teaching and helped me to become good teacher special thanks to the many students have taught over the yearsespecially those at washington and lee universitywho during the past five years used draft versions of the manuscript and provided helpful suggestions would also like to thank some of my colleagues who provided great advice and the encouragement to complete the projectsara sprenkle (washington and lee university)debbie noonan (college of william and mary)and robert noonan (college of william and maryi am also grateful to the following individuals who served as outside reviewers and provided valuable feedback and helpful suggestionsesmail bonakdarian (franklin university)david dubin (university of illinois at urbana-champaignmark fenner (norwich university)robert franks (central college)charles leska (randolph-macon college)fernando martincic (wayne state university)joseph sloan (wofford college)david sykes (wofford college)and stan thomas (wake forest universityfinallyi would like to thank everyone at john wiley sons who helped make this book possible would especially like to thank beth golubmike berlinand amy weintraubwith whom worked closely throughout the process and who helped to make this first book an enjoyable experience rance necaise