Taxonomy of Problem-Solving Techniques

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