  In the quest to build a practical quantum computer, it is important to use
efficient schemes for enacting the elementary quantum operations from which
quantum computer programs are constructed. The opposing requirements of
well-protected quantum data and fast quantum operations must be balanced to
maintain the integrity of the quantum information throughout the computation.
One important approach to quantum operations is to use an extra quantum system
- an ancilla - to interact with the quantum data register. Ancillas can mediate
interactions between separated quantum registers, and by using fresh ancillas
for each quantum operation, data integrity can be preserved for longer. This
review provides an overview of the basic concepts of the gate model quantum
computer architecture, including the different possible forms of information
encodings - from base two up to continuous variables - and a more detailed
description of how the main types of ancilla-mediated quantum operations
provide efficient quantum gates.
