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