This document provides an overview of algorithms and problem solving. It defines an algorithm as an explicit step-by-step procedure to solve a problem or achieve a goal. Algorithms can be expressed mathematically but are not necessarily mathematical operations. Effective algorithms have clear initial and terminal conditions. Algorithms are related to mathematical statements by expressing problems as functions and writing step-by-step instructions. Computers require algorithms to apply their calculation abilities to practical tasks, as they are otherwise unable to solve problems without explicit instructions. Pseudocode is introduced as a way to describe algorithms without syntax of a specific programming language.