Computer science is essentially the study of computational problems and how solve them using the minimal amount of resources. A *computational problem* is a specification of the relation between input and output. A *solution* to the problem is an executable algorithm that realizes that relation. That is, given a particular input to the algorithm (which is really an *instance* of the problem), the algorithm will process it and produces the required output^{(1)}. Sorting is a typical example of a computation problem. Some problems can be solved quite easily even by people who know very little about computer science, while others may require a tremendous amount of ingenuity and/or experience. Continue reading

Advertisements