Hypothesis-Oriented Algorithms