  Fifty years of developments in nuclear magnetic resonance (NMR) have resulted
in an unrivaled degree of control of the dynamics of coupled two-level quantum
systems. This coherent control of nuclear spin dynamics has recently been taken
to a new level, motivated by the interest in quantum information processing.
NMR has been the workhorse for the experimental implementation of quantum
protocols, allowing exquisite control of systems up to seven qubits in size.
Here, we survey and summarize a broad variety of pulse control and tomographic
techniques which have been developed for and used in NMR quantum computation.
Many of these will be useful in other quantum systems now being considered for
implementation of quantum information processing tasks.
