Read the problem at least three times (or however many makes you feel comfortable) Work through the problem manually with at least three sets of sample data. Simplify and optimize your steps. Write pseudocode. Translate pseudocode into code and debug.