The Essentials of Problem Solving