a list of commands typed into one or more text files, using a high-level language.
the program instructions you enter using a text editor
the actual written code of a program before it is translated into machine code.