a text listing of commands in a high level programming language to be compiled, interpreted or assembled into an executable computer program.
consists of human-readable computer language that can be collected and compiled into a computer program, library, or application
a program in a high-level language before being compiled and has a .java extension