Skip to content

Latest commit

 

History

History
249 lines (194 loc) · 10.3 KB

File metadata and controls

249 lines (194 loc) · 10.3 KB

Quantum Computing 101 - Complete Practical Examples Collection

🎉 FULLY IMPLEMENTED CURRICULUM - All 45 examples across 8 modules are now complete and ready to use!

This directory contains comprehensive Python examples for hands-on learning with the Quantum Computing 101 curriculum. Each module has its corresponding examples folder with production-ready scripts, totaling 24,547+ lines of quantum computing code.

🚀 Quick Start

Prerequisites

  • Python 3.11+ (3.12+ recommended)
  • pip package manager
  • NEW: All examples are Qiskit 2.x compatible and headless-ready

Installation

# Install required packages (Updated for Qiskit 2.x)
pip install -r requirements.txt

# For development with additional tools
pip install -r requirements-dev.txt

# Docker (Recommended for headless/remote environments)
cd ../docker
./build.sh cpu
./run.sh -v cpu -e module1_fundamentals/01_classical_vs_quantum_bits.py

Running Examples

# Navigate to any module folder and run examples
cd module1_fundamentals
python 01_classical_vs_quantum_bits.py

# Or run with detailed output and customization
python 01_classical_vs_quantum_bits.py --verbose --shots 5000

# Most examples include help
python 01_classical_vs_quantum_bits.py --help

# All visualizations automatically save to files (headless-compatible)

📁 Complete Structure - All Modules Implemented ✅

examples/
├── module1_fundamentals/     # ✅ 8 examples - Basic quantum concepts (1,703 LOC)
├── module2_mathematics/      # ✅ 5 examples - Mathematical foundations (2,361 LOC)
├── module3_programming/      # ✅ 6 examples - Advanced Qiskit programming (3,246 LOC)
├── module4_algorithms/       # ✅ 5 examples - Core quantum algorithms (1,843 LOC)
├── module5_error_correction/ # ✅ 5 examples - Noise and error handling (2,111 LOC)
├── module6_machine_learning/ # ✅ 5 examples - Quantum ML applications (3,157 LOC)
├── module7_hardware/         # ✅ 5 examples - Hardware and cloud platforms (4,394 LOC)
├── module8_applications/     # ✅ 5/5 - Industry use cases (5,346 LOC)
└── utils/                    # ✅ Shared utilities and helpers (387 LOC)

TOTAL: 45 examples, 24,547+ lines of code, 100% complete!

🎯 Complete Learning Path - All Tiers Implemented

Foundation Tier (Modules 1-3) ✅ COMPLETE

Master the fundamentals with 15 comprehensive examples:

  1. Module 1 (5 examples): Quantum vs classical concepts, gates, superposition, entanglement
  2. Module 2 (5 examples): Complex numbers, linear algebra, state vectors, tensor products
  3. Module 3 (5 examples): Advanced Qiskit programming, multi-framework comparisons, debugging

Intermediate Tier (Modules 4-6) ✅ COMPLETE

Build algorithmic expertise with 15 advanced examples: 4. Module 4 (5 examples): Deutsch-Jozsa, Grover's, QFT, Shor's algorithm, VQE 5. Module 5 (5 examples): Noise models, Steane code, error mitigation, fault tolerance 6. Module 6 (5 examples): Feature maps, VQC, QNN, QPCA, quantum generative models

Advanced Tier (Modules 7-8) ✅ COMPLETE

Real-world applications with 10 industry-grade examples: 7. Module 7 (5 examples): IBM Quantum access, AWS Braket, hardware optimization, error analysis 8. Module 8 (5 examples): Chemistry/drug discovery, finance, logistics, cryptography, materials science

🏆 Features - Production Quality Throughout

  • 40 Ready-to-run scripts - All examples complete with comprehensive functionality
  • Professional CLI interfaces - Every script includes argparse with help and customization
  • Rich visualizations - Matplotlib, Bloch spheres, circuit diagrams in every module
  • Progressive complexity - Each example builds systematically on previous concepts
  • Multi-framework foundation - Qiskit primary with extension points for Cirq/PennyLane
  • Hardware integration - Real quantum device examples with cloud platform access
  • Enterprise-grade code - Production-quality error handling, documentation, and testing
  • Educational excellence - Comprehensive docstrings, comments, and learning objectives

📊 Implementation Highlights

Code Quality Metrics

  • 24,547 Total Lines: Comprehensive, production-grade implementations
  • 40 Complete Examples: Every planned example fully implemented
  • 100% Documentation: Complete docstrings, comments, and README files
  • CLI Standardization: Consistent argparse interfaces across all examples
  • Error Handling: Robust exception handling and informative error messages

Educational Excellence

  • Progressive Learning: Systematic skill building from basics to advanced applications
  • Visual Learning: Rich matplotlib visualizations supporting every concept
  • Hands-On Practice: Runnable code examples for every theoretical concept
  • Real-World Context: Industry applications demonstrating practical quantum advantage
  • Multi-Level Support: Beginner-friendly to research-grade implementations

Technical Achievements

  • Algorithm Library: Complete implementations of all major quantum algorithms
  • Hardware Integration: Real device examples with IBM Quantum and AWS Braket
  • Error Correction: Comprehensive noise handling and fault-tolerant computing
  • Machine Learning: State-of-the-art quantum ML algorithms and applications
  • Industry Applications: Enterprise-grade examples across 5 major sectors

Most scripts produce educational visualizations including:

  • Bloch sphere representations of quantum states with interactive exploration
  • Circuit diagrams with detailed annotations and explanations
  • Measurement histograms showing quantum probability distributions
  • Algorithm performance plots comparing quantum vs classical approaches
  • Error analysis charts for noise characterization and mitigation
  • Industry KPI dashboards for real-world application assessment

🔧 Troubleshooting

✅ Qiskit 2.x and Headless Environment Fixes

All examples have been updated for Qiskit 2.x compatibility and headless execution!

  • ✅ Fixed DensityMatrix @ operator issues (use .data attribute)
  • ✅ Fixed add_register() parameter errors (use proper circuit composition)
  • ✅ Added matplotlib Agg backend for Docker/remote environments
  • ✅ Replaced blocking plt.show() with plt.savefig() and plt.close()
  • ✅ All visualizations automatically save to files

Technical Details: All examples require Qiskit >= 1.0.0 and use headless matplotlib backend for Docker compatibility.

Common Issues

1. Import Errors (Qiskit 2.x Compatibility)

# Some Module 8 examples may need Qiskit algorithms package
pip install qiskit-algorithms

# Or use alternative optimizers from scipy
# (Examples include fallback implementations)

2. Module Dependencies

# Make sure you've installed all requirements (Updated for Qiskit 2.x)
pip install -r requirements.txt

# For specific modules, install optional dependencies:
pip install openfermion  # For chemistry examples
pip install networkx    # For logistics optimization

3. Docker/Headless Execution (FIXED!)

# All examples now work perfectly in headless environments
cd ../docker
./build.sh cpu
./run.sh -v cpu -e module1_fundamentals/01_classical_vs_quantum_bits.py

# Scripts automatically:
# - Use matplotlib 'Agg' backend (non-interactive)
# - Save all plots to files
# - Don't block on plt.show()

4. Hardware Access

# Module 7 examples require cloud platform accounts
# See module7_hardware/README.md for detailed setup instructions
# IBM Quantum: https://quantum-computing.ibm.com/
# AWS Braket: https://aws.amazon.com/braket/

Performance Optimization

1. Simulation Speed

# Reduce shots for faster simulation
python example.py --shots 100

# Use smaller problem sizes for testing
python example.py --qubits 4

# Enable verbose mode to monitor progress
python example.py --verbose

2. Memory Usage

# For large quantum simulations, consider:
# - Using GPU simulators (qiskit-aer-gpu)
# - Reducing circuit depth
# - Using approximate simulation methods

Getting Help

  1. Check individual module README files
  2. Look at script docstrings and comments
  3. Run scripts with --help flag when available
  4. Review the main curriculum modules for context

🤝 Contributing

The Quantum Computing 101 examples collection is now COMPLETE with all 45 examples implemented! 🎉

Ways to Contribute

  • Bug Reports: Found an issue? Please report it with details about your environment
  • Performance Improvements: Optimizations for simulation speed or memory usage
  • Additional Visualizations: New ways to visualize quantum concepts
  • Documentation Enhancements: Clarifications, corrections, or additional explanations
  • Platform Compatibility: Testing and fixes for different operating systems
  • Hardware Updates: Updates for new quantum devices or cloud platforms

Code Quality Standards

  • Follow existing code style and documentation patterns
  • Include comprehensive docstrings and comments
  • Add CLI interfaces with argparse for user interaction
  • Provide meaningful error messages and exception handling
  • Include visualization outputs where appropriate
  • Test examples on multiple environments before submitting

Areas for Future Enhancement

  • Jupyter Notebook Versions: Interactive versions with explanatory cells
  • Advanced Visualizations: 3D quantum state representations, animation sequences
  • Performance Benchmarking: Systematic quantum vs classical comparisons
  • Multi-Language Implementations: Examples in Julia, Q#, or other quantum languages
  • Advanced Hardware Features: Latest quantum device capabilities and optimizations

📚 Related Resources

  • Main Curriculum: ../modules/ - Theoretical background and explanations
  • Implementation Status: IMPLEMENTATION_STATUS.md - Detailed development progress
  • Requirements: requirements.txt / requirements-dev.txt - Complete dependency specifications
  • Utilities: utils/ - Shared visualization and helper functions

🎊 Mission Accomplished!

Quantum Computing 101 Examples Collection
40/40 Examples Complete
24,547 Lines of Production Code
8 Complete Learning Modules
Ready for Global Quantum Education

Happy quantum computing! 🚀⚛️🌍