From the dawn of computer science the field has benefited from
abstractions which simulate actual computing devices. Between the
Turing machine and the Church-Turing Thesis a strong foundation was
made for study of the computable and uncomputable. Complexity
analysis provides a way to distinguish classes of problems based on
their runtime characteristics, and the rough grouping of problems of
polynomial runtime as tractable and others as intractable combined
with the presumed correctness of the Complexity-Theoretic
Church-Turing hypothesis suggest whether or not a problem is tractable
is not depended on the model of computation used.

Through the principle of superposition in quantum systems we can
create useful memory components that are on the scale of an atom or
smaller. These quantum memory registers may be able to facilitate
exponential computational speed increases in algorithms that can take
advantage of quantum parallelism.

Peter Shor has shown an algorithm which makes factoring large numbers
tractable for a quantum computer, where no such algorithm is published
for a classical computer. In doing so has drawn great attention to the
field of quantum computing. Due to Shor's algorithm, we may someday
have to turn to other means of encrypting data than are today
typically employed. L. K. Grover's database search algorithm shows
another noteworthy task that a quantum computer can perform faster
than any classical computer.(Brassard)

The efforts to build a real quantum memory register that functions are
in the most preliminary stages. As of the original time of writing
this paper, 3-qubit registers had been built. In 2001 Shor's
Algorithm was applied to the number 15 at IBM's Almaden Research
Center and Stanford University. In 2005 the first qubyte (g. 8-bit
quantum register) was created at The Institute of Quantum Optics and
Quantum Information at the University of Innsbruck in Austria. In 2009
NIST reads and writes individual qubits, and demonstrates some
computing operations on qubits. (Timeline of quantum computing)

Operational quantum computers are by no means an inevitable
consequence of this research. It may be that the problems surrounding
keeping a quantum memory register isolated from any disturbance long
enough for a calculation to take place will be insurmountable. In any
case, quantum computing will remain an exciting topic for
experimentalists and theorists alike for years to come. Hopefully
this paper, and the simulation of Shor's algorithm have been as
enlightening and fun for the reader as they were for the author.