Folding a protein from only a knowledge of its amino acid sequence is a formidable many-body problem. Since it is computationally impossible to test all possible atomic conformations to determine the global minimum representing the compact state, methods need to be developed to sample only a small part of the configurational space and yet delineate the free energy optimum (or nearly so). This article largely reviews such techniques as applied by the authors and their colleagues.