This document defines context-free grammars (CFGs) and context-free languages (CFLs). A CFG is defined by a 4-tuple specifying variables, terminals, productions, and a start variable. Derivations in a CFG involve replacing variables according to productions. A language is context-free if some CFG generates it. Examples of CFGs that generate canonical CFLs like {anbn} are given. Parse trees illustrate derivations, and leftmost/rightmost derivations are defined. Ambiguous grammars that generate the same string in different ways are discussed.