second generation of programming languages; uses symbolic instruction codes
uses short words (mnemonics) for instructions instead of binary numbers  low level language
gives instructions to cpu as fundamental operations written as alphabetic codes