Problem-Solving Techniques
Ask questions.
Look for things that are familiar.
Solve by analogy.
Identify the inputs and outputs.
Divide and conquer.
Use building blocks (new or existing).
Merge solutions.