Has there been any attempt to systematically categorize programming puzzles?
I notice that some problems are similar to one another, or have analogous methods of solution. I would think there must be some way to categorize them, so that you could in a sense look up methods of solution if you knew what category it was in. For example, some problems reduce to finding one string in another.
The closest thing I have seen to this is in Garey and Johnson (1975) in which book there is a list of known NP-complete problems. So, if you can reduce a problem to one of the 200 or so examples they give, you know the problem is NP-complete. I have not seen a general attempt to classify all problems however, except maybe Skiena's book, The Algorithm Design Manual.