An algorithm is a step-by-step procedure to solve a problem using a finite number of instructions. To create an algorithm, it must have clear inputs and outputs, unambiguous steps that terminate in a finite number of steps, and each step must be feasible to carry out using paper and pencil. Algorithms use conditional patterns and comments to help with modifications. A flowchart provides a visual representation of an algorithm using blocks like start, stop, assignment, processing, input, output, and conditional statements to depict the sequencing and repetition of instructions.