A Balanced Introduction to Computer Science represents a unique and innovative approach to introductory computer science courses. In contrast with traditional texts that focus almost exclusively on either breadth (a survey of computing concepts) or depth (programming and problem-solving), this text provides a balanced view of computing. Breadth chapters cover concepts and issues in computing that are most relevant to the beginning student, including computer terminology, the Internet and Web, algorithms and software, and technology's impact on society. Mixed among these topics are depth chapters that introduce fundamental programming concepts and skills with hands-on tutorials. Using HTML and the programming language JavaScript, students develop problem-solving skills as they design and implement interactive Web pages.

Breadth Chapters

  • Breadth-based chapters focus on topics that are most relevant to a beginning student, and are written in an engaging, easy-to-read style.
  • Illustrations, photographs, and Web-based visualization tools are used extensively to illuminate key points.
  • Each chapter ends with a Chapter Summary and Review Questions that encourage reflection and the integration of content from that chapter.

Depth Chapters

  • Depth-based chapters are presented as hands-on tutorials, recognizing that the only way to learn programming and problem solving is to actually do it.
  • Tutorial exercises follow an incremental approach, allowing students to master programming concepts by first studying and modifying existing programs before designing and implementing new programs that solve interesting problems.
  • Program design and debugging advice is provided in special sections called Designer Secrets and Common Errors to Avoid
  • Each chapter includes a Chapter Summary that identifies key concepts, and Supplemental Material and Exercises to facilitate further study.

David Reed is Associate Professor of Computer Science at Creighton University in Omaha, Nebraska. He received his M.S. and Ph.D. in computer science from Duke University. He has published extensively on topics such as apprentice-based learning, Web-based programming, and innovative instructional methods in introductory computer science. He is the principal investigator of an NSF grant involving the integration of experimentation and empirical reasoning in computer science, a member of the Liberal Arts Computer Science Consortium, and the Chief Reader for the Advanced Placement Computer Science exam since 2004.