This document provides an overview of problem solving and algorithms. It discusses different approaches to problem solving including trial and error, analytical, working backwards, and intuitive "Eureka" moments. It explains that to write a computer program, a human problem solver takes a situation, analyzes it, and plans a step-by-step algorithmic solution. Computers are good at solving problems algorithmically through a series of defined steps, while humans are better at heuristic problem solving using past experiences and judgments. The document provides examples to illustrate the differences between algorithmic and heuristic approaches.