Quantum and Post-Quantum Computing
A.Y. 2026/2027
Learning objectives
The course introduces the foundations of quantum computing and post-quantum cryptography from a computer science perspective. After a brief historical overview of the emergence of quantum mechanics and the crisis of classical physics, the course presents essential concepts such as qubits, superposition, interference, entanglement, measurement, unitary operators, and Hilbert spaces.
The quantum circuit model is then introduced, together with the main quantum gates and simple examples of circuit construction and interpretation. The course also discusses the role of decoherence, quantum error correction, Bell inequalities, and selected topics in quantum optics that are relevant to quantum information and quantum communication.
The course covers fundamental quantum algorithms, including Deutsch-Jozsa, Grover, and Shor, with particular attention to their computational significance and their impact on classical cryptography. Quantum key distribution and the main families of post-quantum cryptographic schemes are introduced, including lattice-based, code-based, hash-based, and multivariate schemes.
The course also provides an overview of applications of quantum computing beyond cryptography, including quantum simulation, optimization, hybrid quantum-classical models, and quantum machine learning. Finally, both the Qiskit/Python and Q# development environments will be presented, with hands-on sessions devoted to the construction, simulation, and analysis of simple quantum circuits and algorithms.
The quantum circuit model is then introduced, together with the main quantum gates and simple examples of circuit construction and interpretation. The course also discusses the role of decoherence, quantum error correction, Bell inequalities, and selected topics in quantum optics that are relevant to quantum information and quantum communication.
The course covers fundamental quantum algorithms, including Deutsch-Jozsa, Grover, and Shor, with particular attention to their computational significance and their impact on classical cryptography. Quantum key distribution and the main families of post-quantum cryptographic schemes are introduced, including lattice-based, code-based, hash-based, and multivariate schemes.
The course also provides an overview of applications of quantum computing beyond cryptography, including quantum simulation, optimization, hybrid quantum-classical models, and quantum machine learning. Finally, both the Qiskit/Python and Q# development environments will be presented, with hands-on sessions devoted to the construction, simulation, and analysis of simple quantum circuits and algorithms.
Expected learning outcomes
By the end of the course, students will have acquired an understanding of the fundamental concepts of quantum mechanics required for quantum computing and will be able to place the emergence of the quantum paradigm in its historical context. They will be able to represent qubit states using vectors and operators, interpret evolution through unitary transformations, and describe the measurement process in probabilistic terms.
Students will be able to explain the role of superposition, interference, entanglement, and decoherence in the operation of quantum circuits, as well as to read and construct simple circuits based on elementary and controlled gates. They will also understand the significance of Bell inequalities and recognize the role of quantum optics in quantum information and quantum communication protocols.
With regard to algorithms, students will be able to explain the main ideas underlying the Deutsch-Jozsa, Grover, and Shor algorithms, understand their computational advantage and their implications for cryptography, and distinguish between classical cryptographic schemes that are vulnerable to quantum attacks, symmetric primitives whose security is partially weakened by quantum attacks, and post-quantum cryptographic solutions.
Students will be able to distinguish between quantum key distribution and post-quantum cryptography, recognizing the main families of post-quantum cryptographic schemes and their role in the transition toward quantum-safe infrastructure. They will also be able to describe selected non-cryptographic applications of quantum computing, assessing their potential, limitations, and technological maturity.
From a practical perspective, students will acquire basic familiarity with Qiskit/Python and Q#, using them to build, simulate, and analyze simple quantum circuits, perform measurements, interpret results, and compare different approaches to quantum programming.
Students will be able to explain the role of superposition, interference, entanglement, and decoherence in the operation of quantum circuits, as well as to read and construct simple circuits based on elementary and controlled gates. They will also understand the significance of Bell inequalities and recognize the role of quantum optics in quantum information and quantum communication protocols.
With regard to algorithms, students will be able to explain the main ideas underlying the Deutsch-Jozsa, Grover, and Shor algorithms, understand their computational advantage and their implications for cryptography, and distinguish between classical cryptographic schemes that are vulnerable to quantum attacks, symmetric primitives whose security is partially weakened by quantum attacks, and post-quantum cryptographic solutions.
Students will be able to distinguish between quantum key distribution and post-quantum cryptography, recognizing the main families of post-quantum cryptographic schemes and their role in the transition toward quantum-safe infrastructure. They will also be able to describe selected non-cryptographic applications of quantum computing, assessing their potential, limitations, and technological maturity.
From a practical perspective, students will acquire basic familiarity with Qiskit/Python and Q#, using them to build, simulate, and analyze simple quantum circuits, perform measurements, interpret results, and compare different approaches to quantum programming.
Lesson period: First four month period
Assessment methods: Esame
Assessment result: voto verbalizzato in trentesimi
Single course
This course cannot be attended as a single course. Please check our list of single courses to find the ones available for enrolment.
Course syllabus and organization
Single session
Course currently not available
INFO-01/A - Informatics - University credits: 6
Lessons: 42 hours