Read more about How to Think Like a Computer Scientist: C++ Version

How to Think Like a Computer Scientist: C++ Version

(0 reviews)

No ratings

Allen B. Downey

Copyright Year: 2012

Publisher: Green Tea Press

Language: English

Formats Available

Conditions of Use

Attribution-NonCommercial Attribution-NonCommercial

Table of Contents

  • Chapter 1: The way of the program
  • Chapter 2: Variables and types
  • Chapter 3: Function
  • Chapter 4: Conditionals and recursion
  • Chapter 5: Fruitful functions
  • Chapter 6: Iteration
  • Chapter 7: Strings and things
  • Chapter 8: Structures
  • Chapter 9: More structures
  • Chapter 10: Vectors
  • Chapter 11: Member functions
  • Chapter 12: Vectors of Objects
  • Chapter 13: Objects of Vectors
  • Chapter 14: Classes and invariants
  • Chapter 15: File Input/Output and apmatrixes

Ancillary Material

About the Book

The goal of this book is to teach you to think like a computer scientist. I like the way computer scientists think because they combine some of the best features of Mathematics, Engineering, and Natural Science. Like mathematicians,computer scientists use formal languages to denote ideas (specifically computations). Like engineers, they design things, assembling components into systems and evaluating trade offs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions.The single most important skill for a computer scientist is problem-solving. By that I mean the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. As it turns out, the process of learning to program is an excellent opportunity to practice problem-solving skills. That’s why this chapter is called “The way of the program.”

About the Contributors


Allen B. Downey is an American computer scientist, professor of computer science at the Franklin W. Olin College of Engineering and writer of free textbooks.

Downey received in 1989 his BS and in 1990 his MA, both in Civil Engineering from the Massachusetts Institute of Technology, and his PhD in Computer Science from the University of California at Berkeley in 1997.

He started his career as Research Fellow in the San Diego Supercomputer Center in 1995. In 1997 he became Assistant Professor of Computer Science at Colby College, and in 2000 at Wellesley College. He was Research Fellow at Boston University in 2002 and Professor of Computer Science at the Franklin W. Olin College of Engineering since 2003. In 2009-2010 he was also Visiting Scientist at Google Inc.