Welcome to Intro to Quantum Software Development. This course is designed to make quantum computing technology more accessible by taking the software engineer's perspective. No background in quantum information science is required – just some basic programming experience and an open mind.
In the context of this course, "quantum computing" refers to universal gate machines and not quantum annealers.
This class serves as an introduction to the strange, yet exciting world of developing software for quantum computers. In it, you'll learn the fundamentals of quantum mechanics, discover how these devices work, and go through some hands-on exercises to actually implement some real quantum algorithms. The goal is to help you develop the practicable skills needed to implement and study quantum algorithms in software.
The course is broken into three parts: Prerequisites, Fundamentals, and Applications:
- Prerequisites covers some of the (non-quantum) things you'll need to know before getting into quantum mechanics, like complex numbers and vector/matrix math.
- Fundamentals introduces the fundamental concepts behind quantum mechanics and quantum computing.
- Applications shows you some examples of common quantum algorithms that offer benefits beyond what classical computers can provide.
Each part contains several course modules organized into units, as shown in the navigation pane on the left side of the page. The units do not necessarily need to be completed in order.
Each module contains:
An objective so students know what they are expected to learn and can decide how much time to dedicate based on prior knowledge and relevancy to their learning goals.
Course materials covering all the important concepts related to the topic. These may include MITRE-developed content as well as links to external resources that we found helpful.
Exercises for students to practice and test their understanding of the material. These may take the form of knowledge check questions or programming assignments.