Professor Lenzini pioneered and regularly taught, between 1994 and 2013, three full-year courses for students enrolled in the Computer Systems Engineering program at the University of Pisa, Faculty of Engineering, at the master's degree (Laurea Magistrale) level. The courses were entitled Computer Networks, Advanced Networking Architectures, and Performance Evaluation of Networks and Systems.

The first course addressed the fundamental concepts of computer networking, with particular emphasis on the packet-switching paradigm and on the IP and TCP protocols. The second course focused on advanced networking technologies, wireless systems, and cutting-edge network architectures. The third course dealt primarily with queueing systems and performance evaluation methodologies.

Professor Lenzini has also regularly delivered courses and lectures for PhD students in Pisa and, until 2011, in Lucca, focusing on advanced computer networking architectures and systems.

Starting from the academic year 2024/2025, Professor Lenzini introduced and has been teaching, for the first time ever at the School of Engineering of the University of Pisa, a course entitled Quantum Computing and Quantum Internet for master's degree students in Computer Engineering (Laurea Magistrale in Ingegneria Informatica).

Below is an excerpt from the 2026/2027 edition of the course "Quantum Computing and Quantum Internet". Professor Lenzini has been teaching this course since the 2024/2025 academic year to students in the Master's degree programme in Computer Engineering at the University of Pisa.

The syllabus and further course details, along with other useful information for students, are available at quantum.dii.unipi.it.

Excerpt from Quantum Computing and Quantum Internet

Motivation

Quantum computing is an emerging computational paradigm that exploits the principles of quantum mechanics to process information in ways that are fundamentally different from those of classical computers. By harnessing phenomena such as superposition, interference, and entanglement, quantum algorithms can provide significant advantages for specific computational tasks, including integer factorization, quantum simulation, optimization, and search.

The rapid progress of quantum hardware has been accompanied by the development of increasingly sophisticated software ecosystems. Today, software development kits such as Qiskit enable programmers to design, simulate, test, and execute quantum programs on both classical simulators and quantum processors. As a result, quantum programming is emerging as a new discipline at the intersection of computer science, software engineering, mathematics, and quantum information science.

At the same time, a second technological frontier is taking shape: the quantum Internet. While the classical Internet enables the exchange of digital information, quantum networks are designed to distribute quantum states and entanglement among geographically separated nodes. Such capabilities open the way to applications that have no classical counterpart, including quantum-secure communication, distributed quantum computing, blind quantum computing, and quantum sensing networks.

The long-term vision is the creation of large-scale quantum networks interconnecting quantum processors, memories, and sensors through a new generation of communication infrastructures. Achieving this vision requires the development of novel architectures, protocols, and technologies, including quantum repeaters, entanglement distribution mechanisms, quantum teleportation, and quantum network control protocols.

As quantum technologies continue to mature, computer engineers and software developers will increasingly need to understand not only how quantum computers operate, but also how quantum applications can be designed, implemented, and deployed across interconnected quantum systems.

Designed for Computer Engineering students, this intermediate-level course develops the knowledge and practical skills required to program quantum computers, implement quantum communication protocols, and understand the architectures underlying future quantum networks.

Course Description

This course provides an intermediate-level study of quantum computing and quantum networking from a software engineering perspective. It introduces the fundamental concepts of quantum information processing, the principles underlying quantum communication systems, and the methodologies required to design and implement quantum software and protocols.

The course combines theoretical foundations with practical programming experience. Topics include quantum states and operations, quantum algorithms, quantum communication protocols, quantum noise models, quantum error correction, and the architectural principles of the quantum Internet. Particular emphasis is placed on understanding how quantum information can be processed, transmitted, protected, and exploited in both standalone quantum computers and interconnected quantum systems.

A significant component of the course is devoted to software development. Through lectures, guided exercises, and the hands-on Quantum Software Laboratory, students learn how to implement, test, debug, and analyze quantum algorithms and quantum networking protocols using modern software frameworks.

The Quantum Software Laboratory makes use of Qiskit, IBM's open-source Python SDK for quantum computing, and QuantumSavory.jl, a Julia framework for the simulation and study of quantum systems and quantum networks. Students develop programs that can be executed on simulators and, whenever resources are available, on real quantum processors.

Learning outcomes

Upon successful completion of the course, students will be able to:

Scope and Focus

This course adopts a software-oriented perspective on quantum computing and quantum networking. Its primary objective is to provide students with the conceptual and practical tools required to design, implement, and analyze quantum algorithms and quantum communication protocols.

What this course does not cover. The course does not address the physical implementation of quantum hardware. In particular, it does not cover qubit technologies, the engineering of quantum processors, or the hardware realization of quantum gates. Topics such as superconducting qubits, trapped ions, neutral atoms, photonic platforms, and quantum device fabrication are outside the scope of the course.

Instead, quantum computers and quantum networks are treated as programmable systems whose behavior can be modeled, analyzed, and exploited through software. The emphasis is therefore placed on quantum information processing, quantum programming, quantum algorithms, quantum communication protocols, quantum error correction, and quantum network architectures.

Prerequisites

No prior knowledge assumed. No prior knowledge of quantum mechanics is required. The quantum-mechanical concepts necessary to understand quantum information processing are introduced and developed throughout the course.

No prior experience with quantum computing, quantum programming, or the Julia programming language is assumed.

Students enrolling in this course are expected to possess:

Quantum Software Laboratory

The laboratory component of the course provides hands-on experience with contemporary quantum software frameworks and development tools. Its primary objective is to bridge the gap between theoretical concepts and practical implementation through the design, execution, and analysis of quantum programs and quantum networking protocols.

Students work with two complementary software environments. Qiskit, IBM's open-source Python SDK, is used to develop, simulate, and execute quantum algorithms on both simulators and, whenever resources are available, real quantum processors. QuantumSavory.jl, a Julia-based framework for quantum system and network simulation, is used to model quantum communication protocols, entanglement distribution mechanisms, and quantum Internet architecture.

Qiskit — Python · IBM Quantum  ·  QuantumSavory.jl — Julia · Quantum networks

The Quantum Software Laboratory emphasizes software engineering practices, including program design, debugging, validation, performance analysis, and reproducibility. Particular attention is devoted to understanding how theoretical quantum-information concepts are translated into executable software.

AI-assisted development. Given the rapid evolution of the field, students are also encouraged to use modern AI-assisted development tools, including large language models and coding agents, in a critical and responsible manner. These tools are treated as productivity aids rather than substitutes for technical understanding. Students remain responsible for validating, interpreting, and fully understanding the software they develop.

Examination

Assessment is based on an oral examination in two parts — a quantum circuit to solve at the blackboard, then a theoretical question — and on a project developed with Qiskit and/or QuantumSavory.jl. Rules, sample questions and past projects are on the Exam & Projects page.

Exam details, project rules, sample questions and past projects →

Twenty units, from the qubit to the Quantum Internet

Twenty teaching units, from foundations to the quantum Internet.

Unit 1 — Foundations of Quantum Computing and Single-Qubit Systems

  • 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 — Mathematical Foundations of 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 — Quantum Programming with 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

Quantum Software Laboratory

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

Unit 4 — Multi-Qubit Systems and Quantum Entanglement

  • 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

Quantum Software Laboratory

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

Unit 5 — From Quantum Circuits to Quantum Execution

  • 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

Quantum Software Laboratory

  • 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 — The Quantum Circuit Model of Computation

  • 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

Quantum Software Laboratory

  • 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 — Quantum Teleportation and 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

Quantum Software Laboratory

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

Unit 8 — Foundations of Quantum Algorithms

  • 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

Quantum Software Laboratory

  • 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 and 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

Quantum Software Laboratory

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

Unit 10 — Quantum Search and 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

Quantum Software Laboratory

  • 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

Quantum Software Laboratory

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

Unit 12 — Mixed States and the Density Operator Formalism

  • 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

Quantum Software Laboratory

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

Unit 13 — Quantum Operations and Noise Models

  • 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

Quantum Software Laboratory

  • 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 — Distance Measures and Fidelity in Quantum Information

  • 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

Quantum Software Laboratory

  • 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 — Quantum Error Correction

  • 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

Quantum Software Laboratory

  • 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 — Introduction to Quantum Network Simulation with 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

Quantum Software Laboratory

  • 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 — Modeling and Implementing Quantum Networking Protocols

  • 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

Quantum Software Laboratory

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

Unit 18 — Architectures and Protocols for the 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

Quantum Software Laboratory

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

Unit 19 — Entanglement Purification Protocols

  • 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

Quantum Software Laboratory

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

Unit 20 — Measurement-Based Quantum Computation

  • 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

Quantum Software Laboratory

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

References

Quantum Computing

The books are listed in a progression of difficulty: basic, intermediate, and advanced.

Quantum Internet