A survey of the most important and general techniques in parameterized algorithm design is given. Each technique is explained with a meta-algorithm, its use is illustrated by examples, and it is placed in a taxonomy under the four main headings of Branching, Kernelization, Induction and Win/Win. 1