Computational projects on quantum computing suitable for students in a junior-level quantum mechanics course are described. In these projects students write their own programs to simulate quantum computers. Knowledge is assumed of introductory quantum mechanics through the properties of spin 1/2. Initial, more easily programmed projects treat the basics of quantum computation, quantum gates, and Grover's quantum search algorithm. These are followed by more advanced projects to increase the number of qubits and implement Shor's quantum factoring algorithm. The projects can be run on a typical laptop or desktop computer, using most programming languages. Supplementing resources available elsewhere, the projects are presented here in a self-contained format especially suitable for a short computational module for physics students.
Computational projects on quantum computing suitable for students in a junior-level quantum mechanics course are described. In these projects students write their own programs to simulate quantum computers. Knowledge is assumed of introductory quantum mechanics through the properties of spin 1/2. Initial, more easily programmed projects treat the basics of quantum computation, quantum gates, and Grover's quantum search algorithm. These are followed by more advanced projects to increase the number of qubits and implement Shor's quantum factoring algorithm. The projects can be run on a typical laptop or desktop computer, using most programming languages. Supplementing resources available elsewhere, the projects are presented here in a self-contained format especially suitable for a short computational module for physics students.
As quantum computers are becoming available for experiments, their enormous potential is being recognized among college communities. The goal of introducing quantum computing in college level computer science programs is becoming attractive. However, this goal comes with opportunities and challenges. of the challenges is that quantum computing appears to require substantial background in physics as well as in computer science. However, it is hard to convince students to major in these two fields. Computer Science students with a minor in physics can also be considered. Several alternative curriculum structures are possible. A non-consecutive two-course framework is proposed here. A course on Introduction to Quantum Computing may be offered to sophomore level students. This introductory course may teach fundamental ideas about quantum computing with basic concepts behind BQP (Bounded Error Quantum Polynomial) and related topics. This introductory course may be followed up by some physics courses (on related topics such as quantum mechanics) and some computer science courses. Then, a senior level course on Advanced Quantum Computing may be offered that may include some well-known algorithms (such as Shor's Algorithm for Quantum Factorization and Grover's Algorithm for Quantum Search) and their implementation and practices on some simulators (such as QuIDE from http://www.quide.eu/) or some prototype quantum processors (such as IBM's prototype quantum processors). For advanced level courses, some course materials are available from various sources (such as MIT OpenCourseWare). The greater challenge would be in teaching the introductory course mentioned earlier that motivates students towards investing time and efforts in learning quantum computing and related physics, math and computational topics. The challenges of teaching the introductory course should not be underestimated. Some flexible strategies can be suggested for this course so that the biggest challenges can be overcome. Some initial assessments of the students may help adjusting the introduction strategies with student's preparation. What is recommended is that the instructor should be able to adjust the coverage of topics, rigor and depth of treatment. That is, the introductory course should not be rigidly defined. It should be recognized that the main emphasis of the introductory course is actually instilling motivations and curiosity in student's mind about potentials of quantum computing through adaptive teaching of some selected topics where traditional digital computers do not provide tractable solutions. Ideally a balance could be achieved among aspects of depth of treatment, rigor, inspiration, motivation and coverage of topics. Students should be able to realize that the emerging quantum computing technology would be able to provide elegant solutions to some of the classical intractable problems combining ideas from physics, math and computer science in an innovative way. One size fits all is not a good approach and discussion of issues may help us face the challenges better by pragmatically considering a range of possible alternatives. Resources that are currently available may also need to be reviewed for the purpose of introducing quantum computing adequately.
This paper presents the experience of a Quantum Computer course addressed for the first time for undergraduate engineering students. Students’ levels varied from year two to five of their careers and had previous knowledge on Calculus, Linear Algebra and Programming, but not on Quantum Mechanics or on Modern Physics. The main objective of the course was that students acquire programming skills in Quantum Computing, so it had a practical approach. Instead of beginning by introducing the physical phenomenology under the field, the course started directly with presenting the logic of quantum computing from an abstract point of view. The language used was Q#. The curricula was based on the one available for the Microsoft Quantum Network.
Quantum computing is based on the exploitation of quantum effects to perform some important computations more efficiently than ever possible on classical computers. Well known quantum algorithms are Shors polynomial time factoring algorithm and Grovers data base search scheme. Their potential is due to the parallelism of a quantum computation increasing exponentially with the size of the computing device. IBM has succeeded in building a first working quantum computing device with up to 7 qubits based on NMR technology, however, the construction of large multi-qubit systems appears to become extremely difficult due to the loss of coherence of the quantum states. Like the design process of modern microprocessors which is carried out by means of sophisticated software, modelling and simulation of the entire QC device is even more relevant. Simulation is required in order to understand the functioning of quantum algorithms, to construct novel quantum algorithms, to write quantum programs, to teach quantum computing, to construct real quantum computers, to understand and fight de-coherence and to understand and control the influence of the environment. Since quantum parallelism increases exponentially with the size of the quantum computer, parallel supercomputers are required for realistic simulations. I intend to give an introduction into the simulation of quantum computers using conventional computers. The simulation is based on a generic physical model of quantum computer hardware. Issues like parallel gate level simulators, modelling of QCs, simulators for physical quantum computers are addressed.
In this paper, we present the Quantum Information Software Developer Kit - Qiskit, for teaching quantum computing to undergraduate students, with basic knowledge of quantum mechanics postulates. We focus on presenting the construction of the programs on any common laptop or desktop computer and their execution on real quantum processors through the remote access to the quantum hardware available on the IBM Quantum Experience platform. The codes are made available throughout the text so that readers, even with little experience in scientific computing, can reproduce them and adopt the methods discussed in this paper to address their own quantum computing projects. The results presented are in agreement with theoretical predictions and show the effectiveness of the Qiskit package as a robust classroom working tool for the introduction of applied concepts of quantum computing and quantum information theory.
In the 1990's it was realized that quantum physics has some spectacular applications in computer science. This book is a concise introduction to quantum computation, developing the basic elements of this new branch of computational theory without assuming any background in physics. It begins with an introduction to the quantum theory from a computer-science perspective. It illustrates the quantum-computational approach with several elementary examples of quantum speed-up, before moving to the major applications: Shor's factoring algorithm, Grover's search algorithm, and quantum error correction. The book is intended primarily for computer scientists who know nothing about quantum theory, but will also be of interest to physicists who want to learn the theory of quantum computation, and philosophers of science interested in quantum foundational issues. It evolved during six years of teaching the subject to undergraduates and graduate students in computer science, mathematics, engineering, and physics, at Cornell University.
Quantum Information and Quantum Computation are rapidly evolving domains in their theoretical foundations, implementations and applications. The main scope of the present book is to give the basic ideas of this field to undergraduate students in Physics. A rigorous approach is used to provide the key concepts and methods. Many examples are discussed. To be self-contained, the principles of Quantum Mechanics are reviewed. The discussion is aimed to the specific, but paradigmatic, factorization problem of integers, dealt by the Quantum Shor’s Algorithm. Thus, notions of the Number Theory are given in the first Chapter, while the exposition of the algorithm and its implementation is reserved to the last Section.