About This Book
The goal of this book is to teach you to think like a computer scientist. This way of thinking combines some of the best features of mathematics, engineering, and natural science. Like mathematicians, computer scientists use formal languages to denote ideas (specifical computations). Engineers, they design things, assembling components into systems and evaluating tradeoffs among alternatives. Scientists, they observe the behavior of complex systems, form hypotheses, and
The single most important skill for a computer scientist is problem-solving. Problem-solving means 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.” On one level, you will be learning to program, a useful skill by itself. On another level, you will use programming as a means to an end. As we go along, that end will become clearer.