A detailed strategy for solving a problem, which can be implemented and tested before committing to a final answer.