In today's technology-based society, computers are virtually everywhere. From our smartphones and smartwatches, to our tablets and laptops, our computers go everywhere that we do. Furthermore, embedded computers are in our cars enabling satellite navigation and antilock brakes; they are in our homes, controlling the thermostat and video doorbell; they are in a wide variety of devices that we use every day. The omnipresence of computing makes our lives simpler and puts a massive amount of information at our fingertips, as well as connecting people like never before.

Computer Science: Concepts & Explorations (2nd edition) represents a unique but proven approach to understanding computers, their workings and impact on our lives, and the methods that computer scientists use to solve real-world problems using technology. It takes a balanced approach, recognizing that students need not only the concepts behind computers and their uses, but also to experience the creativity of programming and computational thinking. By exploring programming and applied problem solving, students can better understand what computer scientist do and how the tools they use are built.

The book is divided into two sections, focusing on the computer science concepts (the what and why of computer science) and explorations (the how). While separated, these sections complement each other, and it is expected that any course using this book would integrate the chapters to mix learning styles.

Computer Science Concepts

  • The chapters in the first part of the book, numbered C1-C12, focus on concepts that are most relevant to a beginning student (e.g., What is a computer? How does the Internet work?).
  • The chapters are written in an engaging, easy-to-read style, with illustrations and photographs used throughout to illuminate key points.
  • Web-based visualization tools are provided to complement the text in many of the chapters and to support active learning.
  • Each chapter ends with a Chapter Summary and Review Questions that encourage reflection and the integration of content from that chapter.

Computer Science Explorations

  • The chapters in the second part of the book, numbered X1-X9, are focused on the application of computational thinking methods to solving interesting problems.
  • Tutorial exercises follow an incremental approach, allowing students to master programming concepts by first studying and modifying existing programs before designing and implementing independent projects.
  • All examples from the book are accompanied by screen shots to help visualize their behavior, and all examples are available for downloading.
  • Program design and debugging advice is provided in special sections called Designer Secrets... and Common Errors to Avoid..., and each chapter ends with a Chapter Summary that identifies key concepts.

David Reed is Professor and Chair of the Department of Computer Science, Design & Journalism at Creighton University in Omaha, Nebraska. He received his M.S. and Ph.D. in computer science from Duke University in 1992, and subsequently taught and conducted research at Duke University and Dickinson College before joining the faculty at Creighton in 2000. His primary interests are in artificial intelligence, programming languages, and computer science education, where he has published extensively on topics such as apprentice-based learning, Web-based programming, and innovative instructional methods in introductory computer science. He authored the introductory text, A Balanced Introduction to Computer Science, which was published by Prentice Hall and is currently in its third edition.