Il professor Lenzini ha ideato e insegnato regolarmente, tra il 1994 e il 2013, tre corsi annuali per gli studenti iscritti al corso di laurea magistrale in Ingegneria dei Sistemi Informatici presso la Facoltà di Ingegneria dell'Università di Pisa. I corsi erano intitolati Reti di Calcolatori, Architetture di Rete Avanzate e Valutazione delle Prestazioni di Reti e Sistemi.
Il primo corso ha trattato i concetti fondamentali delle reti di computer, con particolare enfasi sul paradigma della commutazione di pacchetto e sui protocolli IP e TCP. Il secondo corso si è concentrato su tecnologie di rete avanzate, sistemi wireless e architetture di rete all'avanguardia. Il terzo corso ha affrontato principalmente i sistemi di accodamento e le metodologie di valutazione delle prestazioni.
Il professor Lenzini ha inoltre tenuto regolarmente corsi e lezioni per dottorandi a Pisa e, fino al 2011, a Lucca, concentrandosi su architetture e sistemi di reti informatiche avanzati.
A partire dall'anno accademico 2024/2025, il professor Lenzini ha introdotto e insegna, per la prima volta in assoluto presso la Facoltà di Ingegneria dell'Università di Pisa, un corso intitolato "Quantum Computing and Quantum Internet" per gli studenti del corso di laurea magistrale in Ingegneria Informatica.
Di seguito un estratto dell'edizione 2026/2027 del corso "Informatica Quantistica e Internet Quantistico". Il professor Lenzini insegna questo corso dall'anno accademico 2024/2025 agli studenti del corso di laurea magistrale in Ingegneria Informatica presso l'Università di Pisa.
Il programma e ulteriori dettagli del corso, insieme ad altre informazioni utili per gli studenti, sono disponibili sul sito quantum.dii.unipi.it.
Il quantum computing è un paradigma computazionale emergente che sfrutta i principi della meccanica quantistica per elaborare l'informazione in modi fondamentalmente diversi da quelli dei computer classici. Sfruttando fenomeni come sovrapposizione, interferenza ed entanglement, gli algoritmi quantistici possono offrire vantaggi significativi per specifici compiti computazionali, tra cui la fattorizzazione di interi, la simulazione quantistica, l'ottimizzazione e la ricerca.
Il rapido progresso dell'hardware quantistico è stato accompagnato dallo sviluppo di ecosistemi software sempre più sofisticati. Oggi, software development kit come Qiskit consentono ai programmatori di progettare, simulare, testare ed eseguire programmi quantistici sia su simulatori classici sia su processori quantistici. Di conseguenza, la programmazione quantistica sta emergendo come una nuova disciplina all'intersezione tra informatica, ingegneria del software, matematica e scienza dell'informazione quantistica.
Allo stesso tempo, una seconda frontiera tecnologica sta prendendo forma: il quantum Internet. Mentre l'Internet classico consente lo scambio di informazione digitale, le reti quantistiche sono progettate per distribuire stati quantistici ed entanglement tra nodi geograficamente separati. Tali capacità aprono la strada ad applicazioni prive di controparte classica, tra cui la comunicazione quantum-secure, il calcolo quantistico distribuito, il blind quantum computing e le reti di sensori quantistici.
La visione di lungo periodo è la creazione di reti quantistiche su larga scala che interconnettano processori, memorie e sensori quantistici attraverso una nuova generazione di infrastrutture di comunicazione. Realizzare questa visione richiede lo sviluppo di nuove architetture, protocolli e tecnologie, tra cui i quantum repeater, i meccanismi di distribuzione dell'entanglement, il teletrasporto quantistico e i protocolli di controllo delle reti quantistiche.
Con la progressiva maturazione delle tecnologie quantistiche, gli ingegneri informatici e gli sviluppatori software avranno sempre più bisogno di comprendere non solo come funzionano i computer quantistici, ma anche come le applicazioni quantistiche possano essere progettate, implementate e distribuite su sistemi quantistici interconnessi.
Pensato per gli studenti di Computer Engineering, questo corso di livello intermedio sviluppa le conoscenze e le competenze pratiche necessarie per programmare i computer quantistici, implementare protocolli di comunicazione quantistica e comprendere le architetture alla base delle future reti quantistiche.
Questo corso propone uno studio di livello intermedio del quantum computing e del quantum networking da una prospettiva di ingegneria del software. Introduce i concetti fondamentali dell'elaborazione dell'informazione quantistica, i principi alla base dei sistemi di comunicazione quantistica e le metodologie necessarie per progettare e implementare software e protocolli quantistici.
Il corso combina fondamenti teorici ed esperienza pratica di programmazione. Gli argomenti includono stati e operazioni quantistiche, algoritmi quantistici, protocolli di comunicazione quantistica, modelli di rumore quantistico, correzione degli errori quantistici e i principi architetturali del quantum Internet. Particolare enfasi è posta sulla comprensione di come l'informazione quantistica possa essere elaborata, trasmessa, protetta e sfruttata sia in computer quantistici isolati sia in sistemi quantistici interconnessi.
Una componente significativa del corso è dedicata allo sviluppo software. Attraverso lezioni, esercitazioni guidate e le attività pratiche del Laboratorio di Quantum Software, gli studenti imparano a implementare, testare, fare debug e analizzare algoritmi quantistici e protocolli di quantum networking utilizzando framework software moderni.
Il Laboratorio di Quantum Software utilizza Qiskit, l'SDK Python open-source di IBM per il quantum computing, e QuantumSavory.jl, un framework Julia per la simulazione e lo studio di sistemi e reti quantistiche. Gli studenti sviluppano programmi eseguibili su simulatori e, quando le risorse sono disponibili, su processori quantistici reali.
Al termine del corso, gli studenti saranno in grado di:
Questo corso adotta una prospettiva orientata al software sul quantum computing e sul quantum networking. Il suo obiettivo primario è fornire agli studenti gli strumenti concettuali e pratici necessari per progettare, implementare e analizzare algoritmi quantistici e protocolli di comunicazione quantistica.
Cosa questo corso non copre. Il corso non tratta l'implementazione fisica dell'hardware quantistico. In particolare, non copre le tecnologie dei qubit, l'ingegnerizzazione dei processori quantistici né la realizzazione hardware dei gate quantistici. Argomenti come qubit superconduttivi, ioni intrappolati, atomi neutri, piattaforme fotoniche e fabbricazione dei dispositivi quantistici sono al di fuori dell'ambito del corso.
I computer e le reti quantistiche sono invece trattati come sistemi programmabili il cui comportamento può essere modellato, analizzato e sfruttato attraverso il software. L'enfasi è quindi posta su elaborazione dell'informazione quantistica, programmazione quantistica, algoritmi quantistici, protocolli di comunicazione quantistica, correzione degli errori quantistici e architetture di rete quantistiche.
Nessuna conoscenza pregressa richiesta. Non è richiesta alcuna conoscenza pregressa di meccanica quantistica. I concetti quantomeccanici necessari per comprendere l'elaborazione dell'informazione quantistica vengono introdotti e sviluppati durante il corso.
Non è richiesta esperienza pregressa di quantum computing, programmazione quantistica o linguaggio Julia.
Gli studenti che si iscrivono a questo corso devono possedere:
La componente di laboratorio del corso offre esperienza pratica con i framework software quantistici e gli strumenti di sviluppo contemporanei. Il suo obiettivo primario è colmare il divario tra concetti teorici e implementazione pratica attraverso la progettazione, l'esecuzione e l'analisi di programmi quantistici e protocolli di quantum networking.
Gli studenti lavorano con due ambienti software complementari. Qiskit, l'SDK Python open-source di IBM, è utilizzato per sviluppare, simulare ed eseguire algoritmi quantistici su simulatori e, quando le risorse sono disponibili, su processori quantistici reali. QuantumSavory.jl, un framework Julia per la simulazione di sistemi e reti quantistiche, è utilizzato per modellare protocolli di comunicazione quantistica, meccanismi di distribuzione dell'entanglement e architetture di quantum Internet.
Qiskit — Python · IBM Quantum · QuantumSavory.jl — Julia · Quantum networks
Il Laboratorio di Quantum Software enfatizza le pratiche di ingegneria del software, tra cui progettazione dei programmi, debugging, validazione, analisi delle prestazioni e riproducibilità. Particolare attenzione è dedicata alla comprensione di come i concetti teorici dell'informazione quantistica si traducano in software eseguibile.
Sviluppo assistito da AI. Data la rapida evoluzione del settore, gli studenti sono inoltre incoraggiati a utilizzare in modo critico e responsabile i moderni strumenti di sviluppo assistiti dall'AI, inclusi large language model e coding agent. Questi strumenti sono considerati ausili alla produttività, non sostituti della comprensione tecnica. Gli studenti restano responsabili della validazione, dell'interpretazione e della piena comprensione del software che sviluppano.
La valutazione si basa su un esame orale in due parti — un circuito quantistico da risolvere alla lavagna, poi una domanda teorica — e su un progetto sviluppato con Qiskit e/o QuantumSavory.jl. Regole, domande di esempio e progetti passati sono nella pagina Esame e Progetti.
Dettagli d'esame, regole del progetto, domande di esempio e progetti passati →
Venti unità didattiche, dai fondamenti al quantum Internet. Gli argomenti di dettaglio sono riportati in inglese, la lingua di erogazione del corso.
Laboratorio di Quantum Software
Laboratorio di Quantum Software
Laboratorio di Quantum Software
Laboratorio di Quantum Software
Laboratorio di Quantum Software
Laboratorio di Quantum Software
Laboratorio di Quantum Software
Laboratorio di Quantum Software
Laboratorio di Quantum Software
Laboratorio di Quantum Software
Laboratorio di Quantum Software
Laboratorio di Quantum Software
Laboratorio di Quantum Software
Laboratorio di Quantum Software
Laboratorio di Quantum Software
Laboratorio di Quantum Software
Laboratorio di Quantum Software
Laboratorio di Quantum Software
I testi sono elencati in ordine di difficoltà crescente: base, intermedio e avanzato.