  The discovery of an algorithm for factoring which runs in polynomial time on
a quantum computer has given rise to a concerted effort to understand the
principles, advantages, and limitations of quantum computing. At the same time,
many different quantum systems are being explored for their suitability to
serve as a physical substrate for the quantum computer of the future. I discuss
some of the theoretical foundations of quantum computer science, including
algorithms and error correction, and present a few physical systems that have
shown promise as a quantum computing platform. Finally, we discuss a spin-off
of the quantum computing revolution: quantum technologies.
