Quantum Computing for Classical(Java) Programmers

© Elephant Scale

January 23, 2023

Overview

  • As quantum computers become available to the general public, the need has arisen to train a cohort of quantum programmers, many of whom have been developing classical computer programs for most of their careers.

  • The course introduces computer scientists, physicists, and engineers to quantum algorithms and provides a blueprint for their implementations.

  • Finance use cases

    • Front-office and back-office decisions on client management for “know your customer,” credit origination, and onboarding,
    • Treasury management, trading and asset management,
    • Business optimization, including risk management and compliance.

Benefits

  • After taking the course, participants will be able to

    • Explain the principles of quantum computing and quantum algorithms.
    • Apply quantum algorithms to solve problems in chemistry, finance, and machine learning.
    • Use a local emulator in Java.
    • Be ready for the quantum computing revolution and estimate its feasibility for their applications.

Duration

  • Two days

Audience

  • Computer scientists, physicists, and engineers.

Skill Level

  • Introductory to intermediate

Prerequisites

  • Background in software engineering
  • Familiarity with a programming language

Lab environment

  • A working environment will be provided for students.

Course Outline

Introduction to Quantum Computing

  • From bits to qubits
    • Dirac notation
    • Measurements
    • Bloch sphere
  • Quantum circuit
    • Basic single-qubit and two-qubit gates
    • Multiple quantum states
  • Entanglement
    • Bell states
    • Teleportation
    • Q-sphere
  • When to use a Quantum Computer

Programming a Quantum Computer

  • The quantum computing programming model
  • The qubit
  • System of qubits
  • Superposition and entanglement
  • Inner and outer products
  • Measurements
  • Unitary transformations and gates
  • Observables and expectation values
  • Quantum circuits
  • Quantum algorithms
  • Implementations on a real quantum computer
  • The IBM quantum computer
  • Programming the IBM quantum computer: Qiskit library
  • Classes of quantum algorithms

Grover’s Algorithm

  • Problem definition and background
  • Algorithm description
  • The algorithm implemented on IBM’s 5-qubit computer

Bernstein-Vazirani Algorithm

  • Problem definition and background
  • Algorithm description
  • The algorithm implemented on IBM’s 5-qubit and 16-qubit computers

Linear Systems

  • Problem definition and background
  • Algorithm description
  • Phase estimation
  • The algorithm implemented on IBM’s 5-qubit computer

Shor’s Algorithm for Integer Factorization

  • Problem definition and background
  • Algorithm description
  • The algorithm implemented on IBM’s 5-qubit computer

Conclusion

  • Summary
  • What’s next?

Our references