On successful completion of the course students should be able
To understand basic concepts of computability, computational complexity, and underlying mathematical structures.
To master the principles and main techniques of quantum programming.
To design and analyse quantum algorithms.
To understand the basic elements of quantum programming languages and current implementations.
To implement and run quantum algorithms in the Qiskit open-source software development kit for IBM Q quantum processors.
- Classical computational models, computability and complexity
- Principles of quantum computation and programming
- Quantum algorithms
- Programming in Qiskit
- Overview of quantum programming languages and quantum lambda-calculus
Computability and Computational Complexity
H. R. Lewis and C. H. Papadimitriou. Elements of the Theory of Computation. Prentice
Hall (2nd Ed), 1997.
S. Arora and B. Barak. Computational Complexity: A Modern Approach. Cambridge
University Press, 2009.
Quantum Computation, Algorithms and Programming
M. A. Nielsen and I. L. Chuang. Quantum Computation and Quantum Information (10th
Anniversary Edition). Cambridge University Press, 2010
N. S. Yanofsky and M. A. Mannucci. Quantum Computing for Computer Scientists. Cambridge
University Press, 2008.
E. Rieffel and W. Polak. Quantum Computing: A Gentle Introduction. MIT Press, 2011.
R. S. Lipton and K. W. Regan. Quantum Algorithms via Linear Algebra: A Primer. MIT Press, 2014.
M. Ying. Foundations of Quantum Programming. Elsevier, 2016.
N. S. Yanofsky. The Outer Limits of Reason. MIT Press, 2013.
- S. Aaronson. Quantum Computing since Democritus. Cambridge
University Press, 2013.
- Training assignment (40%): 10 June
(with intermediate ckeckpoints)
- Written test (60%): 27 May: Results!
- FINAL MARKS available HERE!
- Appointments: Wed, 9-11 (please send an email the day before)
- Email: lsb at di dot uminho dot pt
- Last update: 2019.07.01