QUANTUM COMPUTER PROGRAMMING
Anno accademico 2024/2025 - Docente: SIMONE FARORisultati di apprendimento attesi
Conoscenza e capacità di comprensione (knowledge and understanding): saranno acquisite le conoscenze relative alle principali metodologie per la progettazione di algoritmi quantistici. Nello specifico saranno acquisite le conoscenze relative alle basi della computazione quantistica, ai principali circuiti quantistici, e agli algoritmi quantistici di base. Saranno acquisite le tecniche per l'analisi di complessità di algoritmi quantistici e la loro programmazione attraverso linguaggi dedicati. Il sistema di sviluppo Qiskit verrà usato come strumento principale per presentare l'applicazione dei costrutti e le implementazioni degli algoritmi studiati.
Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): saranno acquisite le capacità di risolvere semplici problemi che richiedono la progettazione e l'analisi di soluzioni algoritmiche nel campo della computazione quantistica.
Autonomia di giudizio (making judgements): lo studente sarà in grado di valutare l'applicabilità di una soluzione quantistica per la risoluzione di un problema computazione oltre ad acquisire la capacità di valutare un algoritmo quantistico in termini di efficienza e possibilità di riutilizzo.
Abilità comunicative (communication skills): saranno acquisite le necessarie abilità comunicative ed un'adeguata appropriatezza espressiva nella comunicazione di problematiche inerenti gli studi algoritmici nel campo della computazione quantistica, anche ad interlocutori non esperti.
Capacità di apprendimento (learning skills): lo studente avrà la capacita di adattare le conoscenze acquisite anche a nuovi contesti, nonché di aggiornarsi attraverso la consultazione delle fonti specialistiche del settore del quantum computing.
Modalità di svolgimento dell'insegnamento
Lezioni frontali.
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.
Prerequisiti richiesti
Conoscenze di base della programmazione in Python e del notebook Jupyter.
Elementi di matematica discreta e di algebra lineare e di analisi matematica, oltre a competenze di base di programmazione
Frequenza lezioni
Per una piena comprensione degli argomenti del corso e delle tecniche illustrate, la frequenza delle lezioni è fortemente consigliata.
Contenuti del corso
Il corso Quantum Computer Programming offre una solida introduzione agli algoritmi quantistici, con un approccio orientato all'informatica e alla programmazione. È progettato per studenti che abbiano familiarità con i concetti fondamentali dell'algebra lineare, come vettori e matrici, senza però richiedere conoscenze pregresse in meccanica quantistica o teoria quantistica. Il corso pone particolare enfasi sulla comprensione degli algoritmi quantistici attraverso strumenti matematici familiari agli informatici, evitando complessità legate alla notazione e ai concetti fisici della meccanica quantistica.
Dopo una revisione dei concetti fondamentali di algebra lineare rilevanti per la computazione quantistica, il corso introduce le principali porte logiche quantistiche e sviluppa i calcoli necessari per comprendere e implementare algoritmi come quelli di Deutsch, Jozsa, Simon, e Grover. Verranno illustrati sia gli aspetti teorici sia le applicazioni pratiche, mantenendo le dimostrazioni matematiche concise e accessibili.
A livello pratico, il corso introduce la piattaforma Qiskit, fornendo agli studenti gli strumenti necessari per programmare e testare algoritmi su veri dispositivi quantistici. Particolare attenzione sarà data all’implementazione dell'algoritmo di ricerca di Grover, utilizzando Qiskit per sperimentazioni su hardware quantistici, permettendo agli studenti di rafforzare le loro competenze attraverso applicazioni reali.
Testi di riferimento
1) Quantum Algorithms via Linear Algebra, di Richard J. Lipton e Kenneth W. Regan. The MIT Press Cambridge, Massachusetts London, England.
2) Qiskit Textbook, Learn Quantum Computation Using Qiskit, 2020. Disponibile online: http://community.qiskit.org/textbook
Programmazione del corso
Argomenti | Riferimenti testi | |
---|---|---|
1 | Il modello di computazione quantistica | Cap. 1 di 1) |
2 | Numeri e stringhe | Cap. 2 di 1) |
3 | Elementi di Algebra Lineare | Cap. 3 di 1) |
4 | Funzioni booleane e fattibilità | Cap. 4 di 1) |
5 | Elementi di programmazione in Qiskit | Cap. 1-2 di 2) |
6 | Circuiti Quantistici | Cap. 3.1 of 2) |
7 | Matrici speciali | Cap. 5 di 1) |
8 | Quantum Oracles | Cap. 3.2 di 2) |
9 | Procedure ausiliarie | Cap. 6 di 1) |
10 | Algoritmi quantistici elementari | Cap. 7 di 1) |
11 | Quantum Teleportation | Cap. 3.10 di 2) |
12 | Superdense Coding | Cap. 3.11 di 2) |
13 | Algoritmo di Deutsch | Cap. 8 di 1) |
14 | Algoritmo di Deutsch-Jozsa | Cap. 9 di 1) e Cap. 3.2 di 2) |
15 | Algoritmo di Simon | Cap. 10 di 1) 3 Cap. 3.4 di 2) |
16 | Algoritmo di Shor | Cap. 11-12 di 1) e Cap. 3.5-3.6-3.7 di 2) |
17 | Algoritmo di Grover | Cap. 13 di 1) e Cap. 3.8 di 2) |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
La prova di esame del corso è suddivisa in due parti: una prima prova scritta di laboratorio e una successiva prova orale. Tali prove potranno avere luogo per via telematica, qualora le condizioni lo dovessero richiedere. La prova orale potrà svolgersi il giorno stesso in cui è stata svolta la prova scritta o a distanza di pochi giorni da esso. Tale prova avrà lo scopo di valutare più nel dettaglio la preparazione dello studente, la sua capacità di ragionamento relativamente agli argomenti trattati a lezione, nonché la sua proprietà di linguaggio. La valutazione della prova orale si dovrà intendere ad integrazione del voto ottenuto nella prova scritta e non a suo incremento.
Per l'attribuzione del voto finale si seguiranno di norma i seguenti criteri:
- non approvato: lo studente non ha acquisito i concetti di base e non è in grado di svolgere gli esercizi.
- 18-23: lo studente dimostra una padronanza minima dei concetti di base, le sue capacità di esposizione e di collegamento dei contenuti sono modeste, riesce a risolvere semplici esercizi.
- 24-27: lo studente dimostra una buona padronanza dei contenuti del corso, le sue capacità di esposizione e di collegamento dei contenuti sono buone, risolve gli esercizi con pochi errori.
- 28-30 e lode: lo studente ha acquisito tutti i contenuti del corso ed è in grado di esporli compiutamente e di collegarli con spirito critico; risolve gli esercizi in modo completo e senza errori.
Gli studenti con disabilità e/o DSA dovranno contattare con sufficiente anticipo rispetto alla data dell'esame il docente, il referente CInAP del DMI (prof.ssa Daniele) e il CInAP per comunicare che intendono sostenere l'esame fruendo delle opportune misure compensative.
Esempi di domande e/o esercizi frequenti
Durante le lezioni verranno svolti degli esercizi simili a quelli che gli studenti dovranno affrontare nel loro esame finale. Ulteriori esercizi verranno resi disponibili nel corso delle lezioni.