As software developers we are in the business of solving problems. A problem can be described using multiple representations such as text, diagrams and equations. If you understand the relationship between different representations of a given problem, you will be able to translate one representation to the other. If you are dominant in one representation and when you are given a problem to solve in your weaker representation you can translate into your dominant representation and solve the problem.
1. Understand the Problem
- What do you need to find?
- What are the unknowns?
- What information do you obtain from the problem?
- What information, if any, is missing or not needed?
2. Devise a Plan
- Look for a pattern
- Make a table
- Draw a diagram
- Write an equation
- Work backwards
- Identify a subgoal
- Examine related problems and determine if the same technique can be applied
- Examine a special case of the problem to gain insight into the solution of the original problem.
3. Carry Out the Plan
- Implement the strategies from the plan and perform the computations.
- Check each step of the plan as you proceed.
4. Look Back
- Determine whether there is another method of finding the solution
- Determine if there are more general problems for which the techniques will work.
References:
1. Billstein, Libeskind and Lott have adopted these problem solving steps in their book "A Problem Solving Approach to Mathematics for Elementary School Teachers (The Benjamin/Cummings Publishing Co.).
2. Technically Speaking: Making Complex Matters Simple by Steven Rudich