Skip to main content
Log in

First experiences of teaching quantum computing

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1

Source: own compilation

Fig. 2

Source: own compilation

Fig. 3

Source: own compilation

Fig. 4

Source: own compilation

Fig. 5

Source: own compilation

Fig. 6

Source: own compilation

Fig. 7

Source: own compilation

Fig. 8
Fig. 9

Source: own compilation

Fig. 10

Source: own compilation

Fig. 11

Source: own compilation

Fig. 12
Fig. 13

Source: own compilation

Fig. 14

Source: own compilation

Fig. 15

Source: own elaboration

References

  1. Griffiths RB (2003) Consistent quantum theory. Cambridge University Press, Cambridge

    Google Scholar 

  2. Quantum Mechanics, Interpretations of|Internet Encyclopedia of Philosophy. https://www.iep.utm.edu/int-qm/. Accessed Apr 18 2020

  3. Nielsen MA, Chuang IL (2010) Quantum computation and quantum information: 10th anniversary edition. Cambridge University Press, Cambridge

    Book  Google Scholar 

  4. 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

  5. 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

  6. 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

  7. Finke D (2019) Quantum computing report. Universities. Quantum computing report. https://quantumcomputingreport.com/players/universities/. Accessed 26 Jan 2020

  8. Kernighan BW, Ritchie DM (1978) The C programming language. Prentice-Hall, Englewood Cliffs

    MATH  Google Scholar 

  9. Teaching quantum computing with Q#, Q# Blog, Dec. 05, 2019. https://devblogs.microsoft.com/qsharp/teaching-quantum-computing-with-q/. Accessed 30 Jan 2020

  10. 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

    Article  MathSciNet  MATH  Google Scholar 

  11. 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

    Article  MathSciNet  MATH  Google Scholar 

  12. Wootters WK, Zurek WH (1982) A single quantum cannot be cloned. Nature 299(5886):802–803. https://doi.org/10.1038/299802a0

    Article  MATH  Google Scholar 

  13. 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

    Article  MathSciNet  MATH  Google Scholar 

  14. 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)

  15. 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

    Article  Google Scholar 

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

    Article  Google Scholar 

  22. IonQ. IonQ. https://ionq.com/. Accessed 18 Apr 2020

  23. 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

  24. 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

  25. 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

  26. 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

  27. Quantumlib/Cirq—running the quantum volume algorithm. GitHub. https://github.com/quantumlib/Cirq/blob/master/examples/advanced/quantum_volume.ipynb. Accessed 18 Apr 2020

  28. Qiskit. https://qiskit.org/. Accessed 28 Jan 2020

  29. 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

  30. Welcome to the docs for the forest SDK!—pyQuil 2.16.0 documentation. http://docs.rigetti.com/en/stable/#. Accessed 28 Jan 2020

  31. Quantum Development Kit|Microsoft. Microsoft quantum—US (English). https://www.microsoft.com/en-us/quantum/development-kit. Accessed 28 Jan 2020

  32. damian_projectq, ProjectQ, ProjectQ. https://projectq.ch/. Accessed 28 Jan 2020

  33. IBM quantum experience. IBM quantum experience. https://quantum-computing.ibm.com. Accessed 28 Jan 2020

  34. Qiskit Terra|A solid foundation for quantum computing. https://qiskit.org/terra/. Accessed 30 Jan 2020

  35. 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

  36. Qiskit Ignis|Understanding and mitigating noise in quantum systems. https://qiskit.org/ignis. Accessed 30 Jan 2020

  37. Qiskit Aer|A high performance simulator framework for quantum circuits. https://qiskit.org/aer. Accessed 30 Jan 2020

  38. IBM Q Account|Access to world-leading quantum systems and simulators. https://qiskit.org/ibmqaccount. Accessed 30 Jan 2020

  39. Qiskit Aqua|Algorithms for quantum computing applications. https://qiskit.org/aqua. Accessed 30 Jan 2020

  40. Rigetti Computing. Rigetti computing. https://www.rigetti.com/systems. Accessed 30 Jan 2020

  41. 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

  42. 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

  43. 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

    Article  Google Scholar 

  44. Rad BB, Bhatti HJ, Ahmadi M (2017) An introduction to docker and analysis of its performance, p 8

  45. Project Jupyter. https://www.jupyter.org. Accessed 04 Mar 2020

  46. 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

    Article  MathSciNet  Google Scholar 

  47. Cuccaro S, Draper T, Kutin S, Moulton D (2004) A new quantum ripple-carry addition circuit. Nov 2004

  48. 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

  49. 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

  50. 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

    Article  Google Scholar 

  51. 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

    Article  Google Scholar 

  52. 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

    Article  MathSciNet  MATH  Google Scholar 

  53. Bernstein E, Vazirani U (1997) Quantum complexity theory. SIAM J Comput 26(5):1411–1473. https://doi.org/10.1137/s0097539796300921

    Article  MathSciNet  MATH  Google Scholar 

  54. Simon DR (1994) On the power of quantum computation. SIAM J Comput 26:116–123

    MathSciNet  Google Scholar 

  55. Coppersmith D (2002) An approximate Fourier transform useful in quantum factoring

  56. 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

  57. 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

  58. 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

Download references

Acknowledgements

This paper has been supported by the UCM–Banco Santander under Grant PR26/16-20B-1.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Guillermo Botella.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-020-03376-x

Keywords

Navigation