Problem Solving Steps (Section 4.6)
Problem specification (understanding the problem).
Solution (designing an algorithm).
Consider specific cases
Use top-down design
Try imitating
Write pseudocode
Coding the algorithm.
Testing and debugging.