First off, thank you for considering contributing! This repository thrives because of people like you.
- Code of Conduct
- How Can I Contribute?
- Getting Started
- Notebook Guidelines
- Project Guidelines
- Style Guide
- Pull Request Process
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
- Use the Bug Report template
- Include which notebook/project is affected
- Paste the full error traceback
- Mention your Python version and OS
- Use the Feature Request template
- Explain the quantum computing concept you'd like covered
- Link to relevant papers or resources if possible
- Follow the Notebook Guidelines below
- Place it in
notebooks/with the next sequential number - Update the README table with your notebook's details
- Create a folder under
projects/namedproject-XX-short-name - Include a
README.mdinside the project folder - Follow the Project Guidelines
- Add blog posts, courses, papers to the README's resource sections
- Verify all links are working
- Add descriptions that help learners decide what to read
# 1. Fork the repo on GitHub
# 2. Clone your fork
git clone https://github.com/YOUR-USERNAME/Quantum_computing.git
cd Quantum_computing
# 3. Create a virtual environment
python -m venv quantum-env
source quantum-env/bin/activate # or quantum-env\Scripts\activate on Windows
# 4. Install dependencies
pip install -r requirements.txt
# 5. Create a branch
git checkout -b feature/your-feature-name
# 6. Make your changes and test them
jupyter lab
# 7. Commit and push
git add .
git commit -m "Add: description of changes"
git push origin feature/your-feature-name
# 8. Open a Pull Request on GitHubEvery notebook should follow this structure:
1. Title & Overview (Markdown)
- What the notebook covers
- Prerequisites
- Learning objectives
2. Theory Section (Markdown + LaTeX)
- Mathematical foundations
- Intuitive explanations
- Diagrams where helpful
3. Implementation (Code cells)
- Well-commented code
- Step-by-step progression
- Multiple framework examples where applicable
4. Visualization (Code cells)
- Plots, Bloch spheres, circuit diagrams
- Clear labels and legends
5. Exercises (Markdown + empty code cells)
- 3-5 exercises of varying difficulty
- Hints provided
6. Summary & Further Reading (Markdown)
- Key takeaways
- Links to papers/resources
- All cells execute without errors (restart kernel and run all)
- LaTeX formulas render correctly
- Visualizations have titles, labels, and legends
- Code follows PEP 8 style
- No hardcoded file paths
- No API tokens committed
Each project folder should contain:
projects/project-XX-name/
├── README.md # Project description, setup, usage
├── requirements.txt # Project-specific dependencies
├── src/ # Source code
├── notebooks/ # Project notebooks (if any)
├── tests/ # Unit tests
└── results/ # Sample outputs, plots
- Follow PEP 8
- Use type hints for function signatures
- Maximum line length: 100 characters
- Use descriptive variable names (
qubit_statenotqs)
- Use ATX-style headers (
#,##,###) - One sentence per line in source (for cleaner diffs)
- Use GitHub-flavored alerts (
> [!NOTE],> [!TIP], etc.)
# Preferred: descriptive register names
qr = QuantumRegister(2, name='q')
cr = ClassicalRegister(2, name='c')
circuit = QuantumCircuit(qr, cr)
# Add comments explaining quantum operations
circuit.h(qr[0]) # Create superposition
circuit.cx(qr[0], qr[1]) # Entangle qubits (Bell state)
circuit.measure(qr, cr)- Update the README if you've added notebooks, projects, or resources
- Ensure all notebook cells run cleanly
- Fill out the PR template completely
- Request review from maintainers
- Address any feedback
Add: new notebook on quantum annealing
Fix: broken circuit in notebook 07
Update: resource links for IBM Quantum
Remove: deprecated Qiskit 0.x code
Open a Discussion or reach out via Issues.
Thank you for making quantum computing more accessible!