PRograms that Solve Problems