This document defines key concepts in object oriented programming including programs, algorithms, pseudo code, and flowcharts. A program is a set of instructions that tells a computer what to do, and is written by a programmer. An algorithm is a step-by-step procedure to solve a problem. Algorithms are written in pseudo code, a language similar to simple English, before being coded. A flowchart uses standard symbols to visually represent an algorithm's logic and steps.