Learning Outcomes
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 opensource software development kit for IBM Q quantum processors.
Syllabus
 Classical computational models, computability and complexity
 Principles of quantum computation and programming
 Quantum algorithms
 Programming in Qiskit
 Overview of quantum programming languages and quantum lambdacalculus
Summaries (201819)
T Lectures
P Lectures
Bibliography
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.
Bedtime readings

N. S. Yanofsky. The Outer Limits of Reason. MIT Press, 2013.
 S. Aaronson. Quantum Computing since Democritus. Cambridge
University Press, 2013.
Links
Pragmantics
Lecturers
Assessment
 Training assignment (40%): 10 June
(with intermediate ckeckpoints)
 Written test (60%): 27 May: Results!
 FINAL MARKS available HERE!
Contact
 Appointments: Wed, 911 (please send an email the day before)
 Email: lsb at di dot uminho dot pt
 Last update: 2019.07.01