Sources: UCBerkeley, IBM Qiskit Textbook
Consider a n number of qubits (could think of it as n number of hydrogen atoms).
For a classical system, we represent them using a n-bit string, $\{0,1\}^n$.
e.g. n = 3, $\{0,1\}^3 = \{000, 001, 010, 011, 100, 101, 110, 111\}$
Cardinality i.e. $|\{0,1\}^3| = 2^3 = 8$.
Even for moderate values of n e.g. a few hundred, $2^n$ is already larger than the number of particles in the visible universe. Tapping into this exponential power can yield a extremely strong computer.
For a quantum system, we represent them using the state $\ket\psi = \sum_{ \begin{subarray}{l} x\in\{0,1\}^n\\ \end{subarray}} \alpha_x\ket{x}$, where $\alpha_x \in \mathbb{C}$, $\sum_{ \begin{subarray}{l} x \end{subarray}} |\alpha_x|^2 = 1$.
e.g. n = 3, $\ket\psi = \alpha_{000} \ket{000} + \alpha_{001} \ket{001} +...+ \alpha_{110} \ket{110} + \alpha_{111} \ket{111}$


A physical device that we can’t look inside, but we can pass queries and return answers
Goal: determine some property of the oracle using minimal number of queries


A quantum circuit acting on n qubits is described by an $2^n \times 2^n$ unitary operator $U$. Each quantum circuit has an inverse circuit which is the mirror image of the original circuit and which carries out the inverse operator $U^\dagger$.

Compared to classical computation which loses information all the time.
e.g. An AND gate with an output 0; we don't know if the input was 01, 10 or 00. We have lost this information forever.