George Polya suggested 4 important steps:
Understand the problem
Devise a plan
Carry out the plan
Review/extend
Second principle: Devise a plan
There are many useful technics to solve different problems. Some of them are:
Logical reasoning
Pattern recognition
Reduction - transform the problem into a solved problem
Solve a simpler related problem
Reformulate the problem- adopt a different point of view
Intelligent guessing and testing
Work backward
Consider special cases
Organize the data
Divide and conquer
Make a visual representation
“Shake the box”