Preface Computations are designed to solve problems.
Programs are descriptions of computations written for execution on computers.
The field of computer science is concerned with the development of methodologies for designing programs, and with the development of computers for executing programs. It is therefore of central importance for those involved in the field that the characteristics of programs, computers, problems, and computation be fully understood. Moreover, to clearly and accurately communicate intuitive thoughts about these subjects, a precise and well-defined terminology is required. This book explores some of the more important terminologies and questions concerning programs, computers, problems, and computation. These theories provide abstract models that are easier to explore, because their formalisms avoid irrelevant details.