The two-level system and the harmonic oscillator are among the simplest analyzed with quantum mechanics, yet they display a rich set of behaviors. Quantum information science is based on manipulating the states of two-level systems, called quantum bits or qubits. Coupling two-level systems to harmonic oscillators allows the generation of interesting motional states. When isolated from the environment, trapped atomic ions can take on both of these behaviors. The two-level system is formed from a pair of internal states, which lasers efficiently prepare, manipulate, and read-out. The ions’ motion in the trap is well described as a harmonic oscillator and can be cooled to the quantum ground state. In this lecture, I will describe a complete set of methods for scalable ion trap quantum information processing and their use in a programmable two-qubit quantum processor. The qubits are stored in two beryllium hyperfine states that are insensitive to magnetic field fluctuations. They have coherence times hundreds of times longer than a typical experiment lasts. Two beryllium ions are stored simultaneously with two magnesium ions, which allow recooling the ions’ motion without destroying any quantum information. Segmented trap electrodes allow separation of parts of the ion chain for quantum information transport and for individual laser-addressing for single-qubit gates. An arbitrary quantum operation on two qubits can be described with 15 real numbers, and we implement a quantum circuit composed of one and two-qubit gates with sufficient input parameters that it can be programmed to implement any operation. Along the way, we use some of the above techniques to entangle spatially separated mechanical oscillators, consisting of the vibrational states of two pairs of ions held in different locations.