# Circuit Composer concepts¶

The concepts described here provide a consistent and common language for using Circuit Composer.

Circuit Composer lets you create quantum circuits by dragging and
dropping *quantum instructions* onto *quantum wires*. You can send *jobs* to various
*backends* with a specified number of *shots*. Your circuit is automatically *transpiled* to run optimally on your choice of backend.

Table of contents

## Quantum circuit¶

A *quantum circuit* is a visual representation of a quantum computation
in Circuit Composer. The editor allows you to add *quantum instructions* (or simply
*instructions*) selected from the *quantum instruction palette* representing elementary
operations in quantum computing. Elementary operations include Hadamard,
Pauli-X, and measurement instructions. Instructions are dropped onto *quantum wires*
to visually construct computations. A quantum wire represents a single qubit.
Measurements are read onto *classical wires*, the wire at the bottom of the
circuit.

## Quantum instructions¶

A quantum instruction is a basic computation construct of Circuit Composer. You add instances of the instructions from the built-in quantum instruction palette to perform specific operations. All instructions have input signals and output signals. Some instructions have parameters that you use to specify their behavior. Whether an instruction has parameters and the nature of those parameters is specific to each instruction. To learn more about each built-in instruction, refer to the instruction glossary.

## Quantum wires¶

The lines from left to right are called *quantum wires*. A quantum wire
represents a single qubit. The term “wire” and the way it’s drawn looks like the
qubit is moving through space. But it’s often helpful to instead think of
left-to-right as representing the passage of time.

## Parameters¶

Some instructions have parameters that you use to specify its behavior, such
as the `U3`

instruction. Whether an instruction has parameters and the
nature of those parameters is specific to each instruction. To specify quantum
instruction parameters, drag an instruction from the palette, drop it on a quantum
wire, and then either double-click the instruction or select the pencil icon
that appears directly to the right of the instruction upon dropping it.

## Transpilation¶

Transpilation is the process where a quantum circuit is translated into a new
quantum circuit that performs the same task, but is restructured to be
compatible with the physical layout of a particular *quantum system* (quantum
computer) and, where possible, optimize its performance.

## Backend¶

The term *backend* can refer to either a quantum system or a high-performance
classical simulator of a quantum system.

## Shots¶

Because the measurement of a qubit in a superposition state seems random —
the outcome is sometimes 0 and sometimes 1 — you must repeat the measurement
multiple times to determine the likelihood that a qubit is in a particular
state. When performing the experiment, you will be asked how many *shots*
(executions) to run in order to determine the qubit state probabilities.

## Job¶

A *job* ties together all of the relevant information about a computation on IBM
Quantum Experience: a quantum circuit, choice of backend, the choice of how many
shots to execute on the backend, and the results upon executing the quantum
circuit on the backend.