This repository contains the teaching notebooks and laboratory materials that I developed for the Quantum Computing Laboratory course, where I taught two structured modules over 8 weeks.
The content is designed to provide students with both theoretical intuition and hands-on implementation experience in Python, covering the fundamental principles of quantum computing and introductory quantum algorithms.
The course is divided into two modules, each developed over 4 weeks.
This module introduces the foundational concepts of quantum computation through interactive notebooks and Python-based simulations.
- Introduction to Python for quantum simulations
- Complex numbers and vectors
- Qubit representation
- Bloch sphere visualization
- Single-qubit states
- Classical vs quantum gates
- Pauli gates (X, Y, Z)
- Hadamard gate
- Phase gates
- Gate composition
- State evolution
- Measurement postulates
- Computational basis
- Probabilistic outcomes
- State collapse
- Repeated measurements
- Multi-qubit systems
- Tensor products
- Bell states
- Entangled state preparation
- Quantum correlations
This module focuses on some of the most representative quantum communication protocols and algorithms.
- Quantum state transfer
- Bell pair preparation
- Entanglement-assisted communication
- Measurement and correction steps
- Classical information encoding using entanglement
- Two classical bits with one qubit
- Bell-state decoding
- Quantum parallelism
- Constant vs balanced functions
- First quantum speedup intuition
- Search problem formulation
- Oracle construction
- Diffusion operator
- Amplitude amplification
- Quadratic speedup
- Python
- Jupyter Notebooks
- NumPy
- Matplotlib
- Qiskit / quantum simulation libraries
These notebooks were developed as part of my teaching experience in quantum computing laboratories, with the goal of helping students build intuition through visualization, experimentation, and algorithm implementation.
Rocio Lizeth Valentin Carhuancho
Quantum Software Engineer | Educator