BWSI Course - Quantum Software − MITRE Project


Program Overview

In recent years, there has been an enormous surge of interest in quantum computing.  Government, academic and commercial organizations have spent billions of dollars attempting to create reliable, general-purpose quantum computers. These systems leverage the unusual properties of quantum mechanics to perform comutations that could never be performed on conventional computers in our lifetime. Such calculations have a wide range of applications, including:

• Breaking certain cryptographic algorithms
• Engineering new materials
• Simulating how systems behave in extreme environments
• Finding new medicines that target specific diseases
• Building secure transmission channels that cannot be eavesdropped

How do quantum computers accomplish these bold claims? How could we use this technology to tackle our most difficult challenges? And how do programmers like you access it? In this course, we will explore the answers to these questions and help you unlock the ability to write quantum software and simulate quantum algorithms. Students should bring some basic programming experience and an open mind as we delve into a new computing paradigm.


Online prerequisites

The prerequisite knowledge and skills required to excel in the summer course will be covered in online materials made available to students in advance. This portion touches the following topics:

  • Complex numbers
  • Dirac (Bra-Ket) notation
  • Basic linear algebra (vector and matrix math)
  • Principles of classical computing
    • Binary numbers
    • Digital logic
    • Logic gates
    • Machine instruction
    • High-level programming languages
  • Basic development with strongly-typed languages
  • The Visual Studio Integrated Development Environment

Summer Course

The  objective  of  the  summer  is  to  implement  real  quantum  algorithms  in  quantum software.  Students  will  learn  the  fundamentals  of  quantum  computing  through  short lectures followed by coding challenges. During the fourth week, they will break out into teams to design their own software implementations of a quantum algorithm.

Week 1:  Recap of online prerequisites and
Intro to Quantum Concepts
•   Qubits
•   Superposition
•   The Bloch sphere
•   single-qubit gates
•   Q#


Week 2:  Fundamentals of Quantum Computing
•   Quantum circuit diagrams
•   The Quirk tool
•   Qubit registers
•   Complex multi-qubit superpositions
•   Multi-qubit gates
•   Entanglement
•   Quantum interference


Week 3:  Quantum Algorithms
•   Toy algorithms (DJ, Simon)
•   Quantum error correction
•   Quantum communication
•   Amplitude amplification (Grover's)
•   Integer factorization (Shor's)


Week 4:  Algorithm Implementation
•   Teams will implement a quantum algorithm from its original paper in source code
•   Correctness of the implementations should be verifiable, and it should efficiently use quantum hardware resources
•   Students will present their work at the end of the week
•   Team with the most efficient implementation will be the winner!