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.