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.

Estratto da Quantum Computing and Quantum Internet

Motivazione

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.

Descrizione del corso

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.

Risultati di apprendimento

Al termine del corso, gli studenti saranno in grado di:

Ambito e focus

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.

Prerequisiti

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:

Laboratorio di Quantum Software

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.

Esame

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à, dal qubit alla Quantum Internet

Venti unità didattiche, dai fondamenti al quantum Internet. Gli argomenti di dettaglio sono riportati in inglese, la lingua di erogazione del corso.

Unit 1 — Fondamenti di quantum computing e sistemi a singolo qubit

  • Course Overview and Learning Objectives
  • From Classical Bits to Quantum Bits
  • The Qubit as the Fundamental Unit of Quantum Computation
  • Examples of Physical Qubit Realizations
  • Postulate I: Quantum States and State Representation
  • Mathematical Description of a Qubit
  • The Bloch Sphere Representation
  • Relative and Global Phases
  • Postulate II: Time Evolution of Quantum Systems
  • Single-Qubit Quantum Gates
  • Postulate III: Quantum Measurement
  • Measurement of a Single Qubit
  • Quantum Circuits as a Model of Computation
  • Composition of Single-Qubit Gates

Unit 2 — Fondamenti matematici del quantum computing

  • Complex Vector Spaces
  • Hilbert Spaces
  • Dirac (Bra-Ket) Notation
  • Linear Independence and Basis Representations
  • Linear Operators and Matrix Representations
  • Inner Products and Outer Products
  • The Pauli Operators
  • The Gram–Schmidt Orthogonalization Procedure
  • Eigenvalues, Eigenvectors, and Eigenspaces
  • Adjoint, Hermitian, and Unitary Operators
  • Spectral Decomposition of Hermitian Operators
  • Positive and Positive Semidefinite Operators
  • Tensor Products and Composite Systems
  • Functions of Operators
  • Commutators and Anticommutators
  • Polar Decomposition
  • Singular Value Decomposition (SVD)

Unit 3 — Programmazione quantistica con Qiskit

  • Quantum Programming in the Era of Artificial Intelligence
  • Large Language Models and Coding Agents for Quantum Software Development
  • OpenQASM: A Low-Level Language for Quantum Computing
  • The IBM Quantum Platform
  • Qiskit: An Open-Source SDK for Quantum Software Development
  • Installing and Configuring the Qiskit Environment
  • Building and Visualizing Quantum Circuits
  • Simulating Quantum Circuits with Aer
  • Executing and Analyzing Single-Qubit Quantum Programs

Laboratorio di Quantum Software

  • Building Quantum Circuits with Qiskit
  • Simulating Quantum Programs
  • Exploring Single-Qubit Gates and Measurements
  • Analyzing Quantum Circuit Outputs

Unit 4 — Sistemi multi-qubit ed entanglement quantistico

  • Postulate IV: Composite Quantum Systems
  • Tensor Products and Multi-Qubit State Spaces
  • Representing Multi-Qubit Quantum States
  • Hermitian Operators and the Measurement Formalism
  • Observables and Quantum Measurements
  • Commuting and Non-Commuting Observables
  • The Heisenberg Uncertainty Principle
  • Measurements on Multi-Qubit Systems
  • Bipartite Entanglement
  • Multipartite Entanglement
  • Entanglement as a Computational Resource
  • Monogamy of Entanglement

Laboratorio di Quantum Software

  • Preparing Multi-Qubit Superposition States
  • Creating and Measuring Bell States
  • Exploring Entanglement with Qiskit

Unit 5 — Dai circuiti quantistici all'esecuzione quantistica

  • The Modern Qiskit Execution Model
  • Quantum Backends: Simulators and Quantum Processors
  • Backend Targets and Hardware Constraints
  • Quantum Circuit Transpilation
  • Instruction Set Architecture (ISA) Circuits
  • Quantum Primitives: Sampler and Estimator
  • Qiskit Runtime Services
  • Jobs, Sessions, and Batch Execution
  • Executing Quantum Programs on IBM Quantum Hardware
  • Reproducible Quantum Experiments: Shots, Seeds, and Metadata

Laboratorio di Quantum Software

  • Executing Quantum Circuits on Simulators
  • Comparing Simulated and Real-Hardware Executions
  • Analyzing Transpiled Quantum Circuits
  • Using Sampler and Estimator Primitives
  • Running Experiments on IBM Quantum Systems

Unit 6 — Il modello di calcolo a circuiti quantistici

  • Quantum Circuits as Computational Processes
  • Multi-Qubit Quantum Gates
  • Controlled Quantum Gates
  • Universal Quantum Gate Sets
  • Quantum Circuit Decomposition
  • Quantum Circuit Complexity
  • The No-Cloning Theorem
  • Quantum Measurements within the Circuit Model
  • From Quantum Algorithms to Quantum Circuits

Laboratorio di Quantum Software

  • Building Multi-Qubit Quantum Circuits
  • Implementing Controlled Quantum Gates
  • Exploring Universal Gate Sets
  • Experimental Verification of the No-Cloning Theorem
  • Designing Quantum Circuits for Different Measurement Bases

Unit 7 — Teletrasporto quantistico e superdense coding

  • Entanglement as a Resource for Quantum Communication
  • Bell States and Bell-State Measurements
  • Quantum Teleportation
  • Classical Communication and Feed-Forward Corrections
  • Resource Analysis of the Teleportation Protocol
  • Superdense Coding
  • Resource Analysis of the Superdense Coding Protocol

Laboratorio di Quantum Software

  • Preparing Bell States with Qiskit
  • Implementing Quantum Teleportation
  • Implementing Superdense Coding
  • Analyzing Teleportation and Superdense Coding Outcomes

Unit 8 — Fondamenti degli algoritmi quantistici

  • Quantum Parallelism
  • Quantum Interference
  • Phase Kickback
  • Quantum Oracles
  • The Deutsch Problem
  • The Deutsch Algorithm
  • The Deutsch–Jozsa Problem
  • The Deutsch–Jozsa Algorithm
  • From Classical to Quantum Algorithm Design

Laboratorio di Quantum Software

  • Implementing the Deutsch Algorithm with Qiskit
  • Implementing the Deutsch–Jozsa Algorithm with Qiskit
  • Exploring Quantum Interference
  • Visualizing Phase Kickback in Quantum Circuits

Unit 9 — Quantum Fourier Transform e Quantum Phase Estimation

  • The Quantum Fourier Transform (QFT)
  • The Inverse Quantum Fourier Transform
  • Quantum Phase Estimation (QPE)
  • Eigenvalue Estimation with Quantum Circuits
  • Period Finding
  • The Order-Finding Problem
  • Shor's Order-Finding Algorithm
  • Applications of Quantum Phase Estimation

Laboratorio di Quantum Software

  • Implementing the Quantum Fourier Transform with Qiskit
  • Implementing Quantum Phase Estimation
  • Period Finding Experiments
  • Exploring the Building Blocks of Shor's Algorithm

Unit 10 — Ricerca quantistica e amplitude amplification

  • Unstructured Search Problems
  • Quantum Oracles for Search
  • Amplitude Amplification
  • Grover's Search Algorithm
  • Geometric Interpretation of Grover's Algorithm
  • Multiple-Solution Search Problems
  • Quantum Counting
  • Applications and Limitations of Quantum Search

Laboratorio di Quantum Software

  • Implementing Grover's Algorithm with Qiskit
  • Exploring Amplitude Amplification
  • Multi-Solution Grover Search
  • Implementing Quantum Counting

Unit 11 — Quantum Key Distribution

  • Security from the Laws of Quantum Mechanics
  • Principles of Quantum Key Distribution
  • The BB84 Protocol
  • The B92 Protocol
  • Entanglement-Based Quantum Key Distribution
  • Bell Inequalities and the CHSH Test
  • The E91 Protocol

Laboratorio di Quantum Software

  • Implementing BB84 with Qiskit
  • Implementing E91 with Qiskit
  • Simulating Eavesdropping Attacks
  • Evaluating QKD Performance Under Noise

Unit 12 — Stati misti e formalismo dell'operatore densità

  • Limitations of the State Vector Formalism
  • Statistical Ensembles of Quantum States
  • Pure and Mixed Quantum States
  • Density Operators
  • Quantum States in the Density Operator Formalism
  • Trace and Partial Trace
  • Reduced Density Operators
  • Properties of Density Operators
  • Single-Qubit Mixed States and the Bloch Ball
  • Applications of the Density Operator Formalism

Laboratorio di Quantum Software

  • Representing Quantum States with Density Matrices
  • Computing Reduced Density Operators
  • Visualizing Mixed States
  • Exploring the Bloch Ball Representation

Unit 13 — Operazioni quantistiche e modelli di rumore

  • Limitations of Closed-System Evolution
  • Open Quantum Systems
  • Quantum Operations
  • Environments and Quantum Operations
  • The Operator-Sum Representation
  • Kraus Operators
  • Quantum Channels
  • Single-Qubit Noise Models: Bit-Flip Channel
  • Single-Qubit Noise Models: Phase-Flip Channel
  • Single-Qubit Noise Models: Depolarizing Channel
  • Single-Qubit Noise Models: Amplitude-Damping Channel
  • Single-Qubit Noise Models: Phase-Damping Channel
  • Geometric Interpretation of Quantum Channels
  • Applications of Quantum Operations
  • Introduction to Quantum State Tomography

Laboratorio di Quantum Software

  • Simulating Quantum Noise with Qiskit
  • Implementing Quantum Channels
  • Building Custom Noise Models
  • Characterizing Quantum States with Tomography
  • Analyzing the Effects of Noise on Quantum Circuits

Unit 14 — Misure di distanza e fidelity nell'informazione quantistica

  • Distance Measures for Classical Information
  • Comparing Quantum States
  • Trace Distance
  • Quantum State Fidelity
  • Fidelity Between Pure and Mixed States
  • Comparing Quantum Channels
  • Process Fidelity
  • Performance Evaluation of Quantum Systems
  • Applications of Fidelity in Quantum Computing and Quantum Communications

Laboratorio di Quantum Software

  • Computing State Fidelity with Python
  • Estimating Fidelity from Tomographic Data
  • Comparing Ideal and Noisy Quantum States
  • Evaluating the Effects of Quantum Noise on Fidelity

Unit 15 — Correzione degli errori quantistici

  • Why Quantum Error Correction Is Necessary
  • Challenges of Protecting Quantum Information
  • The Three-Qubit Bit-Flip Code
  • The Three-Qubit Phase-Flip Code
  • The Shor Code
  • Syndrome Extraction and Error Detection
  • Principles of Quantum Error Correction
  • The Knill–Laflamme Conditions
  • Limitations and Practical Challenges of Quantum Error Correction

Laboratorio di Quantum Software

  • Implementing the Three-Qubit Bit-Flip Code
  • Implementing the Three-Qubit Phase-Flip Code
  • Exploring the Shor Code
  • Simulating Errors and Recovery Procedures
  • Evaluating Error-Correction Performance

Unit 16 — Introduzione alla simulazione di reti quantistiche con QuantumSavory.jl

  • From Quantum Computing to Quantum Networking
  • Why Quantum Network Simulation Matters
  • Overview of the Julia Programming Language
  • The QuantumSavory.jl Framework
  • Quantum States and Quantum Registers
  • Quantum Channels and Communication Links
  • Event-Driven Simulation of Quantum Systems
  • Building and Simulating Simple Quantum Networks
  • Performance Evaluation of Quantum Network Simulations

Laboratorio di Quantum Software

  • Introduction to Julia
  • Getting Started with QuantumSavory.jl
  • Modeling Quantum Nodes and Quantum Channels
  • Simulating Elementary Quantum Networking Scenarios
  • Performance Analysis of Simulated Quantum Networks

Unit 17 — Modellazione e implementazione di protocolli di quantum networking

  • Architecture of a Quantum Network
  • Quantum Nodes, Memories, and Communication Links
  • Entanglement Distribution Protocols
  • Entanglement Swapping
  • Quantum Repeaters
  • End-to-End Entanglement Distribution
  • Event-Driven Protocol Execution
  • Performance Metrics for Quantum Networks

Laboratorio di Quantum Software

  • Modeling Quantum Network Components
  • Implementing Entanglement Distribution Protocols
  • Simulating Entanglement Swapping
  • Building Quantum Repeater Chains
  • Evaluating End-to-End Network Performance

Unit 18 — Architetture e protocolli per il Quantum Internet

  • From the Classical Internet to the Quantum Internet
  • The Quantum Internet Vision
  • Quantum Network Architectures
  • Quantum Network Nodes and Quantum Repeaters
  • Quantum Teleportation as a Building Block of Quantum Networks
  • Quantum Network Applications
  • Challenges and Future Directions

Laboratorio di Quantum Software

  • Modeling Quantum Internet Architectures
  • Simulating Entanglement Distribution Across Repeater Chains
  • Evaluating Distributed Quantum Computing Scenarios
  • Exploring Quantum Internet Applications

Unit 19 — Protocolli di purificazione dell'entanglement

  • Imperfect Entanglement in Quantum Networks
  • Fidelity of Entangled States
  • Werner States
  • Principles of Entanglement Purification
  • The BBPSSW Protocol
  • The DEJMPS Protocol
  • Resource Trade-Offs in Entanglement Purification
  • Entanglement Purification and Quantum Repeaters
  • The Role of Entanglement Purification in the Quantum Internet

Laboratorio di Quantum Software

  • Modeling Noisy Entangled States
  • Simulating the BBPSSW Protocol
  • Simulating the DEJMPS Protocol
  • Evaluating Fidelity Improvements
  • Analyzing Purification Resource Costs

Unit 20 — Calcolo quantistico basato sulla misura

  • Beyond the Quantum Circuit Model
  • Graph States as Computational Resources
  • Graph-State Transformations Under Single-Qubit Measurements
  • Principles of Measurement-Based Quantum Computation
  • Adaptive Measurements and Feed-Forward Operations
  • Universal Quantum Computation with Graph States
  • Brickwork States
  • Blind Quantum Computation
  • The Broadbent–Fitzsimons–Kashefi (BFK) Protocol
  • Applications and Future Directions of Measurement-Based Quantum Computation

Laboratorio di Quantum Software

  • Creating Graph States
  • Simulating Measurement-Based Quantum Computation
  • Implementing Adaptive Measurement Patterns
  • Exploring Blind Quantum Computation Protocols

Riferimenti bibliografici

Quantum Computing

I testi sono elencati in ordine di difficoltà crescente: base, intermedio e avanzato.

Quantum Internet