Thinking Strategies for Solving Problems