All notable changes to the Quantum Computing 101 project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Qiskit 2.x Compatibility: Updated all 46 example files for full Qiskit 2.x compatibility
- Fixed
DensityMatrixoperator usage: Replacedrho @ rhowithrho.data @ rho.datafor NumPy array access - Fixed
add_register()calls: Replaced with propermeasure_all()or circuit composition patterns - Removed duplicate imports: Cleaned up 7 files with redundant
ClassicalRegisterimports
- Fixed
- Headless Environment Support: Added matplotlib non-interactive backend configuration
- Added
matplotlib.use('Agg')before pyplot imports in all 46 examples - Ensures proper execution in Docker containers and remote/headless environments
- Replaced blocking
plt.show()calls withplt.close()for proper resource cleanup - All visualization outputs now saved to files automatically
- Added
- Binary String Parsing: Fixed quantum measurement result parsing in random number generation examples
- Removed spaces from binary strings returned by
measure_all() - Ensures proper integer conversion from quantum measurement results
- Removed spaces from binary strings returned by
- Docker GPU Acceleration v2.0: Latest GPU support with cutting-edge hardware compatibility
- NVIDIA CUDA 12.6: Updated from CUDA 12.2 for latest H100/A100 support
- AMD ROCm 6.x: Updated from ROCm 5.x with AMD MI300A/MI300X series support
- Qiskit-Aer GPU Optimization: Proper GPU backend installation for quantum acceleration
- NVIDIA: qiskit-aer-gpu package for CUDA acceleration
- AMD: Custom Qiskit-Aer build from source with ROCm gfx942 (MI300) support
- Package Conflict Resolution: Fixed qiskit-aer CPU/GPU variant conflicts
- Performance Optimization: Enhanced GPU detection and graceful fallbacks
- Docker Containerization: Complete multi-GPU containerization support
- CPU-only lightweight container (1.2GB) for learning and basic examples
- NVIDIA CUDA GPU container (3.5GB) with 5-8x acceleration for large simulations
- AMD ROCm GPU container (3.2GB) with MI300 series support
- Multi-stage builds for optimal image sizes
- Smart build scripts with automatic GPU hardware detection
- Comprehensive run scripts with Jupyter Lab support
- Docker Compose orchestration for multi-service deployments
- Enhanced Requirements Management: Modular requirements system for better dependency management
- Separated core, full, and GPU-specific requirements
- Updated to latest package versions (Qiskit 1.0+, PyTorch 2.2+, Python 3.11+)
- Added missing dependencies (yfinance, cryptography, boto3, qiskit-algorithms)
- Optimized Docker layer caching with modular requirements structure
- Updated Python Support: Minimum Python version increased to 3.11, with 3.12+ support
- Performance Improvements: Updated scientific computing stack for better performance
- Cloud Integration: Enhanced AWS Braket and IBM Quantum cloud support
- Complete curriculum implementation: All 45 examples across 8 modules
- Module 1 - Fundamentals: 5 examples covering basic quantum concepts (1,703 LOC)
- Classical vs quantum bits comparison
- Quantum gates and circuits
- Superposition and measurement
- Quantum entanglement demonstrations
- First quantum algorithm (quantum random number generator)
- Module 2 - Mathematics: 5 examples covering mathematical foundations (2,361 LOC)
- Complex numbers and quantum amplitudes
- Linear algebra for quantum computing
- State vectors and representations
- Inner products and orthogonality
- Tensor products and multi-qubit systems
- Module 3 - Programming: 5 examples covering advanced Qiskit programming (3,246 LOC)
- Advanced Qiskit programming techniques
- Multi-framework comparisons (Qiskit, Cirq, PennyLane)
- Quantum circuit patterns and optimization
- Quantum algorithm implementation best practices
- Quantum program debugging and testing
- Module 4 - Algorithms: 5 examples covering core quantum algorithms (1,843 LOC)
- Deutsch-Jozsa algorithm
- Grover's search algorithm
- Quantum Fourier Transform
- Shor's algorithm demonstration
- Variational Quantum Eigensolver (VQE)
- Module 5 - Error Correction: 5 examples covering noise and error handling (2,111 LOC)
- Quantum noise models
- Steane code implementation
- Error mitigation techniques
- Fault-tolerant protocols
- Logical operations in fault-tolerant systems
- Module 6 - Machine Learning: 5 examples covering quantum ML (3,157 LOC)
- Quantum feature maps
- Variational quantum classifier
- Quantum neural networks
- Quantum Principal Component Analysis
- Quantum generative models
- Module 7 - Hardware: 5 examples covering real quantum hardware (4,394 LOC)
- IBM Quantum platform access
- AWS Braket integration
- Hardware-optimized circuits
- Real hardware error analysis
- Hybrid cloud workflows
- Module 8 - Applications: 5 examples covering industry applications (5,346 LOC)
- Quantum chemistry and drug discovery
- Financial portfolio optimization
- Supply chain logistics optimization
- Cryptography and cybersecurity
- Materials science and manufacturing
- Rich visualizations: Matplotlib plots, Bloch spheres, circuit diagrams
- CLI interfaces: Comprehensive argparse integration for all examples
- Educational progression: Systematic skill building from basics to advanced
- Error handling: Robust exception handling and informative error messages
- Documentation: Extensive docstrings, comments, and README files
- Multi-platform support: Linux, macOS, Windows compatibility
- Cloud integration: IBM Quantum and AWS Braket examples
- Production quality: Professional code standards throughout
- Total codebase: 24,547+ lines of production-grade Python code
- Dependencies: Qiskit 1.0+, NumPy, SciPy, Matplotlib, and more
- Python compatibility: Python 3.11+ (updated from 3.8+)
- Framework support: Primary Qiskit with extension points for other frameworks
- Testing: Comprehensive validation of all examples
- Container Support: Docker-first approach with multi-GPU support
- Initial project structure and planning
- Module framework and learning objectives
- Requirements specification and dependency analysis
- Theoretical curriculum modules (Modules 1-8)
- Comprehensive module documentation
- Learning objectives and outcomes
- Reference guide for quantum computing concepts
- Project requirements document (PRD)
- Curriculum design and scope definition
- Learning objective specification
- Technical architecture planning
- Dependency and framework evaluation
- Systematic implementation of all 45 examples
- Quality assurance and testing
- Documentation completion
- Code review and optimization
- Complete Docker containerization with multi-GPU support
- Requirements system refactoring and dependency updates
- Performance optimizations and Python 3.11+ migration
- Enhanced cloud platform integration
- Community guidelines and contribution framework
- Security policy and vulnerability reporting
- GitHub workflows and automation
- Issue and pull request templates
- Final quality assessment and documentation
- Added for new features
- Changed for changes in existing functionality
- Deprecated for soon-to-be removed features
- Removed for now removed features
- Fixed for any bug fixes
- Security for vulnerability fixes
- Major version (x.0.0): Significant curriculum changes, breaking API changes
- Minor version (1.x.0): New modules, examples, or substantial feature additions
- Patch version (1.1.x): Bug fixes, documentation improvements, minor enhancements
- Development: Feature development on feature branches
- Testing: Comprehensive testing across all platforms and Python versions
- Documentation: Update documentation and changelog
- Review: Code review and quality assurance
- Release: Tag version and create GitHub release
- Announcement: Communicate release to community
For more details about any release, see the GitHub Releases page.