An algorithm is a systematic set of instructions that need to be followed in order to complete a given process. Examples of algorithms include cooking recipes, computer programs, instruction manuals or mathematical formulas. Algorithms are designed to be automatic solutions to a given constraint, they can be encoded within a well-defined formal language and automatically processes by a computer; indeed algorithms form the foundations of what computers do.