This document discusses algorithms, including what they are, common design techniques, and the problem solving process. It defines an algorithm as a step-by-step method for solving a problem using a computer. The document outlines what will be covered, such as algorithm design techniques like brute force, divide-and-conquer, and iterative improvement. It also describes the typical problem solving process of identifying a problem, devising a strategy, designing the algorithm, analyzing it, implementing it, and verifying the solution.