Abstract
Quantum computing is a reality that presents challenges to computer engineering students and practitioners. It has been claimed that it is possible to effectively teach quantum computing to undergraduate students without a physics background by means of computer programming. With this statement in mind, this study starts with a comparison and tests of different quantum programming environments: Qiskit from IBM, Cirq from Rigetti, PyQuil from Google, Q# from Microsoft and ProjectQ from ETH. A qualitative and quantitative analysis has been performed, focusing on cross-platform parameters such as qubits, circuit depth, number of gates and code design effort, and using three different adders as a testbench. Vedral and Cuccaro adders are quantum addition circuits based on linear depth and ripple carry, while the Draper adder is a QFT based on quantum carry lookahead. By taking this analysis into account, a methodology for teaching quantum computing is proposed which includes (1) using classical OOP to program a basic quantum simulator; (2) a quantum circuit test with a graphical interface; (3) the programming of real quantum computers with a programming language; and (4) a deep exploration of known quantum algorithms.

Source: own compilation

Source: own compilation

Source: own compilation

Source: own compilation

Source: own compilation

Source: own compilation

Source: own compilation


Source: own compilation

Source: own compilation

Source: own compilation


Source: own compilation

Source: own compilation

Source: own elaboration
Explore related subjects
Discover the latest articles and news from researchers in related subjects, suggested using machine learning.References
Griffiths RB (2003) Consistent quantum theory. Cambridge University Press, Cambridge
Quantum Mechanics, Interpretations of|Internet Encyclopedia of Philosophy. https://www.iep.utm.edu/int-qm/. Accessed Apr 18 2020
Nielsen MA, Chuang IL (2010) Quantum computation and quantum information: 10th anniversary edition. Cambridge University Press, Cambridge
IBM unveils world’s first integrated quantum computing system for commercial use—Jan 8, 2019. https://newsroom.ibm.com/2019-01-08-IBM-Unveils-Worlds-First-Integrated-Quantum-Computing-System-for-Commercial-Use. Accessed 26 Jan 2020
Association for Computing Machinery [ACM]/Institute of Electrical and Electronics Engineers [IEEE] (2016) Computer engineering curricula 2016. In: Computer Engineering Curricula 2016. CE2016. Curriculum Guidelines for Undergraduate Degree Programs in Computer Engineering, IEEE, ACM, Nuev York, Estados Unidos
Smith L (2018) H.R.6227–115th congress (2017–2018): national quantum initiative act. Dec 21, 2018. https://www.congress.gov/bill/115th-congress/house-bill/6227. Accessed 26 Jan 2020
Finke D (2019) Quantum computing report. Universities. Quantum computing report. https://quantumcomputingreport.com/players/universities/. Accessed 26 Jan 2020
Kernighan BW, Ritchie DM (1978) The C programming language. Prentice-Hall, Englewood Cliffs
Teaching quantum computing with Q#, Q# Blog, Dec. 05, 2019. https://devblogs.microsoft.com/qsharp/teaching-quantum-computing-with-q/. Accessed 30 Jan 2020
Bell JS (1966) On the problem of hidden variables in quantum mechanics. Rev Mod Phys 38:447–452. https://doi.org/10.1103/RevModPhys.38.447
Liu B-Y, Dai H-Y, Zhang M (2017) Playing distributed two-party quantum games on quantum networks. Quantum Inf Process 16(12):290. https://doi.org/10.1007/s11128-017-1738-0
Wootters WK, Zurek WH (1982) A single quantum cannot be cloned. Nature 299(5886):802–803. https://doi.org/10.1038/299802a0
Beals R et al (2013) Efficient distributed quantum computing. Proc R Soc A Math Phys Eng Sci 469(2153):20120686. https://doi.org/10.1098/rspa.2012.0686
Ahsan M, Kim J (2015) Optimization of quantum computer architecture using a resource-performance simulator. In: Proceedings of the 2015 Design, Automation & Test in Europe Conference & Exhibition, Grenoble, France, Mar 2015, pp 1108–1113. Accessed 18 Apr 2020 (Online)
Sukachev DD et al (2017) Silicon-vacancy spin Qubit in diamond: a quantum memory exceeding 10 ms with single-shot state readout. Phys Rev Lett 119(22):223602. https://doi.org/10.1103/PhysRevLett.119.223602
Google’s new chip is a stepping stone to quantum computing supremacy. MIT technology review. https://www.technologyreview.com/2017/04/21/152393/googles-new-chip-is-a-stepping-stone-to-quantum-computing-supremacy/. Accessed 18 Apr 2020
IBM builds its most powerful universal quantum computing processors. https://phys.org/news/2017-05-ibm-powerful-universal-quantum-processors.html. Accessed 18 Apr 2020
R. Computing (2018) Unsupervised machine learning on Rigetti 19Q with forest 1.2. Medium, Apr 24, 2018. https://medium.com/rigetti/unsupervised-machine-learning-on-rigetti-19q-with-forest-1-2-39021339699. Accessed 18 Apr 2020
Ghosh A, Mukherjee S (2020) Quantum annealing and computation: a brief documentary note. arXiv:1310.1339 [physics, physics:quant-ph], Nov 2013, Accessed 18 Apr 2020 [Online]. http://arxiv.org/abs/1310.1339
IBM Opens Quantum Computing Center; Announces 53-Qubit Machine, HPCwire, Sep 19, 2019. https://www.hpcwire.com/2019/09/19/ibm-opens-quantum-computing-center-announces-53-qubit-machine/. Accessed 18 Apr 2020
Arute F et al (2019) Quantum supremacy using a programmable superconducting processor. Nature 574(7779):505–510. https://doi.org/10.1038/s41586-019-1666-5
IonQ. IonQ. https://ionq.com/. Accessed 18 Apr 2020
Ion-based commercial quantum computer is a first. Physics world. Dec 17, 2018. https://physicsworld.com/a/ion-based-commercial-quantum-computer-is-a-first/. Accessed 18 Apr 2020
ChoMar A (2020) Chance discovery brings quantum computing using standard microchips a step closer. Science|AAAS. https://www.sciencemag.org/news/2020/03/chance-discovery-brings-quantum-computing-using-standard-microchips-step-closer. Accessed 19 Apr 2020
Smith-Goodson P (2020) Quantum volume: a yardstick to measure the performance of quantum computers. Forbes. https://www.forbes.com/sites/moorinsights/2019/11/23/quantum-volume-a-yardstick-to-measure-the-power-of-quantum-computers/. Accessed 18 Apr 2020
Quantum takes flight: moving from laboratory demonstrations to building systems. IBM Research Blog, Jan 08, 2020. https://www.ibm.com/blogs/research/2020/01/quantum-volume-32/. Accessed 18 Apr 2020
Quantumlib/Cirq—running the quantum volume algorithm. GitHub. https://github.com/quantumlib/Cirq/blob/master/examples/advanced/quantum_volume.ipynb. Accessed 18 Apr 2020
Qiskit. https://qiskit.org/. Accessed 28 Jan 2020
Announcing Cirq: an open source framework for NISQ algorithms. Google AI Blog. http://ai.googleblog.com/2018/07/announcing-cirq-open-source-framework.html. Accessed 28 Jan 2020
Welcome to the docs for the forest SDK!—pyQuil 2.16.0 documentation. http://docs.rigetti.com/en/stable/#. Accessed 28 Jan 2020
Quantum Development Kit|Microsoft. Microsoft quantum—US (English). https://www.microsoft.com/en-us/quantum/development-kit. Accessed 28 Jan 2020
damian_projectq, ProjectQ, ProjectQ. https://projectq.ch/. Accessed 28 Jan 2020
IBM quantum experience. IBM quantum experience. https://quantum-computing.ibm.com. Accessed 28 Jan 2020
Qiskit Terra|A solid foundation for quantum computing. https://qiskit.org/terra/. Accessed 30 Jan 2020
Cross AW, Bishop LS, Smolin JA, Gambetta JM (2020) Open quantum assembly language. arXiv:1707.03429 [quant-ph], Jul 2017, Accessed: 30 Jan 2020. [Online]. http://arxiv.org/abs/1707.03429
Qiskit Ignis|Understanding and mitigating noise in quantum systems. https://qiskit.org/ignis. Accessed 30 Jan 2020
Qiskit Aer|A high performance simulator framework for quantum circuits. https://qiskit.org/aer. Accessed 30 Jan 2020
IBM Q Account|Access to world-leading quantum systems and simulators. https://qiskit.org/ibmqaccount. Accessed 30 Jan 2020
Qiskit Aqua|Algorithms for quantum computing applications. https://qiskit.org/aqua. Accessed 30 Jan 2020
Rigetti Computing. Rigetti computing. https://www.rigetti.com/systems. Accessed 30 Jan 2020
Qiskit—Write once, target multiple architectures. IBM Research Blog, Nov. 05, 2019. https://www.ibm.com/blogs/research/2019/11/qiskit-for-multiple-architectures/. Accessed 18 Apr 2020
Varghese B, Subba LT, Thai L, Barker A (2016) Container-based cloud virtual machine benchmarking. In: 2016 IEEE International Conference on Cloud Engineering (IC2E), Apr 2016, pp 192–201. https://doi.org/10.1109/ic2e.2016.28
Boettiger C (2015) An introduction to Docker for reproducible research, with examples from the R environment. SIGOPS Oper Syst Rev 49(1):71–79. https://doi.org/10.1145/2723872.2723882
Rad BB, Bhatti HJ, Ahmadi M (2017) An introduction to docker and analysis of its performance, p 8
Project Jupyter. https://www.jupyter.org. Accessed 04 Mar 2020
Vedral V, Barenco A, Ekert A (1996) Quantum networks for elementary arithmetic operations. Phys Rev A 54(1):147–153. https://doi.org/10.1103/PhysRevA.54.147
Cuccaro S, Draper T, Kutin S, Moulton D (2004) A new quantum ripple-carry addition circuit. Nov 2004
Draper TG, Kutin SA, Rains EM, Svore KM (2020) A logarithmic-depth quantum carry-lookahead adder. arXiv:quant-ph/0406142, Jun 2004, Accessed 18 Apr 2020. [Online]. http://arxiv.org/abs/quant-ph/0406142
Chang Z, Song R, Sun Y (2018) Validating halstead metrics for scratch program using process data. In: 2018 IEEE International Conference on Consumer Electronics-Taiwan (ICCE-TW), May 2018, pp 1–5. https://doi.org/10.1109/icce-china.2018.8448607
Dutoit AH, Bruegge B (1998) Communication metrics for software development. IEEE Trans Softw Eng 24(8):615–628. https://doi.org/10.1109/32.707697
Bernabé S, García C, Igual FD, Botella G, Prieto-Matias M, Plaza A (2019) Portability study of an OpenCL algorithm for automatic target detection in hyperspectral images. IEEE Trans Geosci Remote Sens 57(11):9499–9511. https://doi.org/10.1109/TGRS.2019.2927077
Deutsch D, Jozsa R (1992) Rapid solution of problems by quantum computation. Proc R Soc Lond Ser A 439:553–558. https://doi.org/10.1098/rspa.1992.0167
Bernstein E, Vazirani U (1997) Quantum complexity theory. SIAM J Comput 26(5):1411–1473. https://doi.org/10.1137/s0097539796300921
Simon DR (1994) On the power of quantum computation. SIAM J Comput 26:116–123
Coppersmith D (2002) An approximate Fourier transform useful in quantum factoring
Grover LK (1996) A fast quantum mechanical algorithm for database search. arXiv:quant-ph/9605043, Nov 1996. Accessed 30 Jan 2020. [Online]. http://arxiv.org/abs/quant-ph/9605043
Shor PW (1994)Algorithms for quantum computation: discrete logarithms and factoring. In: Proceedings 35th Annual Symposium on Foundations of Computer Science, Nov. 1994, pp 124–134. https://doi.org/10.1109/sfcs.1994.365700
LaRose R (2019) Teaching quantum computing through programming. Medium, May 02, 2019. https://medium.com/@rlarose_26759/teaching-quantum-computing-through-programming-799283c9769a. Accessed 25 Jan 2020
Acknowledgements
This paper has been supported by the UCM–Banco Santander under Grant PR26/16-20B-1.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Carrascal, G., del Barrio, A.A. & Botella, G. First experiences of teaching quantum computing. J Supercomput 77, 2770–2799 (2021). https://doi.org/10.1007/s11227-020-03376-x
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-020-03376-x