Computations are deliberate for processing information. Computability theory was discovered in the 1930s, and extended in the 1950s and 1960s. Its basic ideas have become part of the foundation that any computer scientist is expected to know. The study of computation intended for providing an insight into the characteristics of computations. Such an insight may be used for predicting the difficulty of desired computations, for selecting the approaches they should take, and for developing tools that facilitate their design. Study of computation also provides tools for identifying problems that can possibly be solved, as well as tools for designing such solutions that is the field of computer sciences deals with the development of methodologies for designing programs and with the development of computers for the implementation of programs.
The study of computability also develops precise and well-defined language for communicating perceptive thoughts about computations. It reveals that there are problems that cannot be solved. And of the problems that can be solved, there are some that require infeasible amount of resources (e.g., millions of years of computation time). These revelations might seem discouraging, but they have the benefit of warning against trying to solve such problems. The study of computation provides approaches for identifying such problems are also provided by the study of computation.
Computation should be studied through medium of programs because programs are descriptions of computations. The clear understanding of computation and programs requires clear discussion of the following concepts
• "Alphabets, Strings, and Representation
• Formal languages and grammar
• Programs
• Problems
• Reducibility among problems"