Skip to content

padmarajnidagundi/Quantum-Programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

18 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Quantum Programming: Learning Notes & Resources

Quantum Computing Badge License Last Commit

Keywords: quantum computing, quantum programming, Qiskit, Cirq, Q#, PyQuil, PennyLane, quantum algorithms, quantum circuits, quantum learning, quantum frameworks

๐Ÿš€ Overview

๐Ÿ—‚๏ธ Repository Structure

Quantum-Programming/
โ”‚
โ”œโ”€โ”€ Qiskit/        # Programs and notes for IBM Qiskit
โ”œโ”€โ”€ Cirq/          # Programs and notes for Google Cirq
โ”œโ”€โ”€ QSharp/        # Programs and notes for Microsoft Q#
โ”œโ”€โ”€ PyQuil/        # Programs and notes for Rigetti PyQuil
โ”œโ”€โ”€ PennyLane/     # Programs and notes for PennyLane
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ README.md

Welcome to Quantum Programming โ€” a curated collection of learning notes, guides, and resources for anyone interested in quantum computing and quantum programming. This repository is designed to help beginners and enthusiasts understand the basics, explore top frameworks, and start coding for quantum computers.


๐Ÿ“š Table of Contents

  1. What Are Quantum Computers?
  2. Quantum Programming Basics
  3. Top Quantum Programming Languages & Frameworks
  4. Recommended IDEs & Tools
  5. Contributing
  6. Author & Contact

What Are Quantum Computers?

Classical computers (phones, laptops) work with bits that are either 0 or 1, solving problems step-by-step.

Quantum computers use qubits, which can be 0, 1, or both at the same time (a quantum phenomenon called superposition). This allows them to explore many possible solutions simultaneously.

Quantum computers excel at:

  • Simulating molecules and materials (e.g., cleaner fertilizers, better batteries)
  • Testing chemical reactions virtually (faster drug discovery)
  • Solving complex problems that would take classical computers years or centuries

Quantum Programming Basics

Quantum programming means writing instructions for a quantum computer instead of a classical one.

  • In classical programming, you tell the computer what to do with 0s and 1s.
  • In quantum programming, you instruct the computer how to work with qubits, which can be 0 and 1 at the same time.

Key differences:

  • You set up a problem; the quantum computer explores many answers at once
  • You measure the system to get the final result

Top Quantum Programming Languages & Frameworks

  1. Qiskit (IBM) โ€“ Python-based

    • Most popular framework for writing quantum programs (Python)
    • Free: Open source, free IBM quantum hardware access (cloud)
    • Paid: Optional premium compute credits
    • Good for: Beginners, learning quantum circuits
  2. Cirq (Google) โ€“ Python library

    • Python for defining quantum circuits, especially for Googleโ€™s hardware
    • Free: Open source
    • Paid: Hardware access may cost
    • Good for: Low-level circuit design control

๐Ÿ“ Your First Quantum Program: Hello Quantum (Cirq Example)

Here's how to write and run your first quantum program using Cirq:

  1. Create a file:

    • Go to the Cirq/ folder.
    • Create a new file named hello_quantum.py.
  2. Paste this code:

    Note: If you are running this code in Google Colab, you need to install Cirq first by running:

    !pip install cirq
    import cirq
    
    def main():
          print("Hello Quantum!")
    
          # Create a simple quantum circuit with one qubit
          qubit = cirq.LineQubit(0)
          circuit = cirq.Circuit(
                cirq.H(qubit),  # Apply Hadamard gate
                cirq.measure(qubit, key='result')  # Measure the qubit
          )
          print("Circuit:")
          print(circuit)
    
          # Simulate the circuit
          simulator = cirq.Simulator()
          result = simulator.run(circuit, repetitions=5)
          print("Measurement results:")
          print(result)
    
    if __name__ == "__main__":
          main()
  3. Run the program:

    • Open a terminal in the Cirq/ folder.
    • Run: python hello_quantum.py

You should see output like:

Hello Quantum!
Circuit:
0: โ”€โ”€โ”€Hโ”€โ”€โ”€M('result')โ”€โ”€โ”€
Measurement results:
result=01000

The actual measurement result (the string of 0s and 1s) may vary each time you run the program, but it will look similar to the above.

This is your first step in quantum programming!

  1. Q# (Microsoft Q-Sharp) โ€“ Standalone language

    • Quantum-only language (not Python) by Microsoft
    • Free: Part of Quantum Development Kit
    • Paid: Azure Quantum hardware access may cost
    • Good for: Learning quantum algorithms with full tooling
  2. PyQuil & Quil (Rigetti) โ€“ Python + low-level backend

    • Python interface (PyQuil) for the Quil instruction language (Rigetti systems)
    • Free: Libraries and simulators
    • Paid: Real Rigetti hardware access may cost
    • Good for: Hybrid quantum/classical programs
  3. Other Useful Tools

    • PennyLane โ€“ Python for quantum machine learning (free)
    • OpenQASM โ€“ Low-level assembly language for quantum tools
    • Guppy โ€“ New Python-based language to simplify quantum coding (free)

๐Ÿ–ฅ๏ธ Top 5 Free Remote Online Quantum Computers for Program Execution

  1. IBM Quantum Experience (Qiskit Cloud)
    Free access to real IBM quantum computers and simulators for running quantum programs.
    https://quantum-computing.ibm.com/

  2. Microsoft Azure Quantum (Free Tier)
    Free credits for running quantum programs on IonQ, Quantinuum, and simulators via Azure Quantum.
    https://azure.microsoft.com/en-us/products/quantum/

  3. Amazon Braket (Free Tier)
    Free access to quantum hardware (IonQ, Rigetti, OQC) and simulators with AWS Free Tier credits.
    https://aws.amazon.com/braket/

  4. QuTech Quantum Inspire
    Free access to real quantum processors and simulators for program execution (Netherlands-based).
    https://www.quantum-inspire.com/

  5. Rigetti Forest Cloud (PyQuil)
    Free access to Rigettiโ€™s quantum virtual machine and limited real hardware for program execution.
    https://www.rigetti.com/forest


๐Ÿงฎ Top 15 Quantum Algorithms & Use Cases

Algorithm Use Case
Shorโ€™s Algorithm Integer factorization (breaking RSA encryption)
Groverโ€™s Algorithm Unstructured search (database search, NP-complete problems)
Quantum Fourier Transform (QFT) Basis for many quantum algorithms (period finding, phase estimation)
Quantum Phase Estimation Estimating eigenvalues (chemistry, physics simulations)
Deutsch-Jozsa Algorithm Distinguishing between constant and balanced functions (demonstrates quantum speedup)
Simonโ€™s Algorithm Finding hidden periods in functions (precursor to Shorโ€™s)
Quantum Approximate Optimization Algorithm (QAOA) Solving combinatorial optimization problems (e.g., Max-Cut)
Variational Quantum Eigensolver (VQE) Finding ground state energies in molecules (quantum chemistry)
Quantum Machine Learning (QML) Algorithms Pattern recognition, classification, regression (quantum-enhanced ML)
Quantum Walks Graph traversal, search, and optimization
Amplitude Amplification Generalization of Groverโ€™s (speeding up probabilistic algorithms)
Quantum Counting Counting the number of solutions to a problem (database, search)
Harrow-Hassidim-Lloyd (HHL) Algorithm Solving systems of linear equations (quantum linear algebra)
Quantum Principal Component Analysis (qPCA) Dimensionality reduction in quantum data (quantum ML)
Quantum Error Correction Codes Protecting quantum information from decoherence and errors

Recommended IDEs & Tools

  • VS Code โ€” Free, popular for quantum coding (Qiskit, Q# extensions)
  • Jupyter Notebooks โ€” Free, interactive browser notebooks (great for Python frameworks)
  • Visual Studio โ€” Free Community Edition supports Q#; paid versions offer more features
  • Quantum Development Kit (QDK) โ€” Free Microsoft toolset with Q# debugging

Most quantum languages are Python-based or run in free environments like VS Code/Jupyter. Paid options are mainly for access to real quantum hardware.


๐ŸŒ Top 5 Free Online Quantum Computer Resources

  1. IBM Quantum Experience (Qiskit)
    Free access to real quantum computers and simulators, with tutorials and a vibrant community.
    https://quantum-computing.ibm.com/

  2. Microsoft Quantum Development Kit (QDK) & Q#
    Free tools, documentation, and online simulators for learning and coding quantum algorithms.
    https://learn.microsoft.com/en-us/azure/quantum/

  3. Google Quantum AI (Cirq)
    Free Python library, code labs, and cloud simulators for building and running quantum circuits.
    https://quantumai.google/

  4. Quantum Country
    Free interactive essays and spaced-repetition flashcards for deeply learning quantum computing concepts.
    https://quantum.country/

  5. Qiskit Textbook
    Free, open-source online textbook with hands-on quantum programming exercises and theory.
    https://qiskit.org/textbook/



โญ KT table for myself

Concept What it means (short) Why / Key Idea Result How to improve (short)
Quantum Error Rate How often qubits make mistakes Noise, fragile qubits, hardware limits Lower = better โœ… Better hardware, noise control, error correction
Quantum Key Rate Speed of generating secure keys Depends on channel quality & hardware Higher = better ๐Ÿš€ Faster devices, low-loss links, better protocols
Quantum Error Correction (QEC) Method to fix quantum errors Uses multiple qubits to protect data Improves reliability More qubits, smarter correction codes
Quantum Key Distribution (QKD) Secure key sharing using quantum physics Eavesdropping changes quantum states Ultra-secure communication Better detectors, stable channels
Quantum Machine Learning (QML) ML using quantum computers Parallel quantum computation Faster learning (future) Improved algorithms, better quantum hardware

My above learning notes ๐Ÿš€

Contributing

We welcome first-time contributors! If youโ€™re new to open source, look for issues tagged with good-first-issue or help-wanted. We provide mentorship and guidance to help you succeed.

How to contribute:

  • Fork this repo and create your branch
  • Make your changes and submit a pull request
  • For questions, open a GitHub Discussion
  • Report bugs via GitHub Issues

Author & Contact

Padmaraj Nidagundi
Quantum Computing Enthusiast, Open Source Mentor
๐Ÿ“ง Email: padmaraj.nidagundi@gmail.com
๐ŸŒ LinkedIn
๐Ÿ“ Personal Blog

Response time: Typically 24-48 hours


โญ Why Star This Repo?

  • Stay updated with the latest in quantum programming
  • Access curated learning resources
  • Join a growing community of quantum enthusiasts

Thank you for making quantum programming accessible to everyone! ๐Ÿš€