Jessen Havill is a Professor of Computer Science at Denison University. He has been teaching courses across the computer science curriculum for almost thirty years, and was awarded the College's highest teaching honor, the Charles A. Brickman Teaching Excellence Award, in 2013. Although his primary expertise is in the development and analysis of online algorithms, Dr. Havill has spent many years collaborating with colleagues across the curriculum to develop interdisciplinary academic opportunities for students. From 2016-2019, he became the founding Director of Denison University's interdisciplinary Data Analytics program. Dr. Havill earned his bachelor's degree from Bucknell University and his Ph.D. in computer science from The College of William and Mary.
Havill's problem-driven approach introduces algorithmic concepts in context and motivates students with a wide range of interests and backgrounds. -- Janet Davis, Associate Professor and Microsoft Chair of Computer Science, Whitman College This book looks really great and takes exactly the approach I think should be used for a CS 1 course. I think it really fills a need in the textbook landscape. -- Marie desJardins, Dean of the College of Organizational, Computational, and Information Sciences, Simmons University Havill's broad and applications-driven introduction gives students a strong foundation as they begin to explore our field. Topics that students will study in more depth in later courses are introduced in context along a path of discovery for the fundamentals and breadth of computing. Problem solving paradigms and the structures to implement and test their results are presented as intuitive solutions to real-world problems like DNA sequencing and social network analysis, empowering the reader to understand why programming structures exist and how to use them to solve problems effectively and efficiently. Discovering Computer Science is a refreshing departure from introductory programming texts, offering students a much more sincere introduction to the breadth and complexity of this ever-growing field. -- James Deverick, Senior Lecturer, The College of William and Mary Programming is an essential skill of modern problem solving. But students can gain traction on authentic problems only when they have learned to model, decompose, approximate, and recompose real-world systems into a form suited to computing. This unique introduction to the science of computing guides students through broad and universal approaches to problem solving in a variety of contexts and their ultimate implementation as computer programs. -- Daniel Kaplan, DeWitt Wallace Professor, Macalester College