# Awesome Quantum Computing

Quantum computing utilises quantum mechanical phenomenon such as entanglement and superposition to manipulate qubits to perform computation on a quantum computer. Currently available are tools to create and run programs on publicly usable quantum computers as well as resources to learn about them.

This is a curated list of up-to-date resources on learning about and developing on quantum computers. The goal is to build a categorised community-driven collection of up to date, high quality resources.

Sharing, suggestions and contributions are always welcome! Please take a look at the contribution guidelines and quality standard first. Thanks to all contributors, you’re awesome and it wouldn’t be possible without you!

## Contents

- Learning
- MOOCs
- Development Tools
- Blogs
- Books
- Videos
- Community
- Podcasts
- Content in Non-English Languages

For further resources related to Open Source Quantum Software Projects, please check out qosf’s repo.

## Learning

- An Interactive Introduction to Quantum Computing - Interactive learning for quantum gate computing by David Kemp.
- Black Opal - An interactive platform for learning the fundamentals of quantum computing.
- CNOT - Easy to understand, step by step introduction to quantum computing concepts.
- Chris Ferrie - Univeristy Professor in Sydney, Australia, author of Quantum Computing for babies (and many more) as well as excellent Quantum Computing lectures on Medium.
- Documentation for Forest and pyQuil - Tutorials for Rigetti Computing’s SDK.
- Documentation for Strawberry Fields - Background information on the photonic continuous-variable approach to quantum computation, as well as tutorials for Xanadu’s SDK.
- D-Wave Leap - Demos and educational resources as well as access to D-Wave’s quantum computer.
- IBM Q Full User Guide - Short tutorials providing a gentle introduction to quantum computing and IBM Q.
- Introduction to Quantum Computing - Online introductory lectures on quantum computing by CERN (European Organization for Nuclear Research).
- John Preskill’s Notes on Quantum Computation - Notes of Caltech’s Quantum Computation Course Physics 219/Computer Science 219 by John Preskill.
- Nielsen and Chuang - Worked examples on quantum algorithm problems.
- Qiskit Tutorials - Jupyter notebooks simply demonstrating how to use Qiskit.
- Quantum Algorithm Implementations for Beginners - A brif survey of 20 different quantum algorithms using qiskit.
- Quantum Algorithm Zoo - Comprehensive catalog of quantum algorithms.
- Quantum Algorithms - Open-source set of lectures notes on quantum algorithms, with a focus on machine learning and data analysis.
- Quantum Computer Programming - Hands on Stanford course teaching quantum computing to those without a quantum mechanical background.
- Quantum Computing Foundations - Microsoft Learn learning path covering Azure Quantum and elements of quantum computing.
- Quantum Computing Playground - 3D quantum state visualisation tool able to simulate up to 22 qubits.
- Quantum Computing UK - Free Qiskit tutorials and code repository.
- Quantum Computing for the Very Curious - Essay introducing quantum computing by Michael Nielsen and Andy Matuschak.
- Quantum Computing with Amazon Braket SDK - Manning liveProject series that introduces Braket API and guides the learner through implementation of several simple algorithms.
- Quantum Computing with Microsoft QDK - Manning liveProject series that guides the learner through implementation of a variety of protocols and algorithms using Microsoft QDK.
- Quantum Inspire Knowledge Base - Easy to read knowledge base, rich of basic Quantum Computing concepts.
- Quantum in the Cloud - Four qubit photonic quantum simulator and computer.
- Quantum Katas - Programming exercises for learning quantum computing and Q#.
- Quantum Machine Learning for Data Scientists - Explanation of quantum machine learning algorithms.
- Quirk - Browser-based drag-and-drop quantum circuit simulator that reacts, simulates, and animates in real-time.
- QWorld’s Bronze-Qiskit - Very accessible computation/programming oriented tutorials. It begins from basics of matrices up to grover’s algorithm. There are also accompanying videos which explain the tutorials.
- The Quantum Quest - Introductory web class on quantum computing principles designed for high school students.

## MOOCs

- Brilliant.org Quantum Computing - Explanations through problems. Curated along with Microsoft and Alphabet X.
- Introduction to Quantum Information Science - “Introduction to Quantum Information” by Professor Artur Ekert at the University of Oxford.
- MIT Quantum Information Sciences - Series of lecture notes on the MIT quantum information sciences course.
- Programming a Quantum Computer with Qiskit - 2-hour guided course focusing on learning how to code for a Quantum Computer leveraging Qiskit.
- QC101 Quantum Computing & Quantum Physics for Beginners - Introductory course on quantum cryptography and how to run quantum programs.
- Quantum Computing: Theory to Simulation and Programming - Understanding the D-Wave Quantum Annealer architecture along with a few practical tasks.
- Quantum Information Science I, Part I - Foundational course on quantum information and computation.
- Quantum Machine Learning - Learn about the benefits quantum technologies can provide to machine learning.
- Quantum Mechanics and Quantum Computation - Conceptual introduction to the fundamental principles of quantum mechanics.
- The Introduction To Quantum Computing - A subtle introduction to computation, the math behind it and its quantum counterparts followed by in-depth discussion of a few quantum algorithms.
  - Quantum Computing. Less Formulas - More Understanding - Same professor of the previous course, this time more focused on quantum concepts rather than math.
- The Quantum Internet and Quantum Computers: How Will They Change the World? - Learn the principles and promises behind developments in quantum computers and quantum internet and how they will impact our future.
- Understanding Quantum Computers - Introduction to the key concepts of quantum computing with minimal mathematics.

## Development Tools

- Amazon Braket - Fully managed service providing a development environment to run quantum circuits on quantum simulators and computers.
- Blueqat - Software development kit in Python for quantum gate computing.
- Boulder Opal - Python toolset for automating and optimizing quantum hardware performance.
- Cirq - Python library for writing, manipulating, and optimizing NISQ circuits to run on quantum computers.
- Covalent - Framework for distributed computing on heterogeneous infrastructure from CPUs to GPUs to quantum computers.
- Fire Opal - Python package for improving the quality of quantum algorithm results.
- IBM Quantum Experience - Online quantum composer to run experiments on real quantum computing hardware.
- Mitiq - Python toolkit for implementing error mitigation techniques on quantum computers.
- NISQAI - Library for performing quantum artificial intelligence on near-term quantum computers.
- Ocean - D-Wave’s SDK for developing on their quantum computers using Python.
- Orquestra - Zapata Computing’s unified quantum operating environment, allowing for quantum-enabled workflows.
- Paddle Quantum - Baidu’s python toolkit for quantum machine learning.
- PennyLane - Open source framework for quantum computing and quantum machine learning that integrates various other platforms.
- Project Q - Framework for implementing quantum computing in Python.
- pyQuil - Python library for quantum programming using Quil by Rigetti.
- pytket - Python module for interfacing with Cambridge Quantum Computing’s t|ket>; a tool for circuit optimising and qubit allocation.
- QCL - Older, C like language for quantum computers. Only has a simulator and debugger.
- Qiskit SDK - Software development kit by IBM for writing and running quantum algorithms on simulators and real hardware.
- Qiskit.js - Qiskit for JavaScript made by IBM.
- Qrack - High performance LGPL-licensed C++ quantum simulator library, documentation, and test code.
- Quantum++ - High performance modern C++11 quantum computing library.
- Quantum Inspire - Platform to run quantum algorithms on simulators or quantum hardware - by QuTech.
- Quantum Programming Studio - Web based quantum programming IDE and simulator.
- Quipper - Embedded, scalable, functional programming language for quantum computing.
- Qurry - Quantum probabilistic programming language based on functional and probabilistic paradigms.
- QuTiP - Quantum toolbox in Python for simulating dynamics of open quantum systems.
- Q# - Microsoft quantum development kit and Q# programming language.
- Strangeworks Platform - A hardware agnostic platform and interface allowing for focus on development rather than specific hardware solution building.
- TensorFlow Quantum - A quantum machine learning library that integrates Cirq with TensorFlow for prototyping of hybrid quantum-classical models for classical or quantum data.
- Tequila - An Extensible Quantum Information and Learning Architecture developed by Alan Aspuru-Guzik group (University of Toronto).

## Blogs

- Algorithmic Assertions - About quantum computing and computing in general by Craig Gidney - a member of Google Quantum Computing Team.
- Bits of Quantum - By the QuTech institution, sharing their research and daily life.
- Dawid Kopczyk - Quantum algorithms explained to data scientists with visualisations.
- Decodoku - Interesting posts on quantum computation, by James Wootton.
- Microsoft Quantum blog - Microsoft Quantum program-wide updates.
- Musty Thoughts - Personal blog of Michał Stęchły, includes many articles for people starting to learn about quantum computing.
- Qiskit blog - All about quantum computation from the Qiskit community team.
- Quantumfy - Snippets on the latest quantum computing news and quantum infographics.
- Quantum Frontiers - By the Quantum Institute for Quantum Information and Matter, sharing behind the scenes research insights.
- Quantum Weekly - A weekly correlation of all things quantum - computing, cryptography, entanglement.
- Quantum Zeitgeist - Covers the latest news in quantum computing as well as QC companies and careers.
- Q# Blog - Microsoft Quantum development updates.
- Shtetl-Optimized - Scott Aaronson’s thoughts on quantum computing matters.
- The Quantum Aviary - Blog without the hype talking about developments in quantum hardware.
- The Quantum Daily - Outlet for the latest news in quantum computing, presenting articles for both research scientists and the curious Sunday newspaper reader.
- xa0 - New research and deep dives into quantum computing optimization.

## Books

- An Introduction to Quantum Computing - Strikes an excellent balance between accessiblity and mathematical rigour. It is suitable for undergraduate students.
- Classical and Quantum Computation - Introduction to fundamentals of classical and quantum computing.
- Dancing with Qubits - How quantum computing works and how it can change the world.
- Introduction to Classical and Quantum Computing - Introductory quantum computing textbook. The only prerequisite is trigonometry, and it teaches the math along the way.
- Learn Quantum Computation using Qiskit - An open-source textbook covering quantum algorithms and showing how to run them on real hardware using Qiskit. Also covers prerequisites.
- Learn Quantum Computing with Python and Q# - Introduces quantum computing using Python and Q#, Microsoft’s new language for quantum programming.
- Problems and Solutions in Quantum Computing - Easy to advanced quantum computing and information problems with detailed solutions.
- Programming Quantum Computers: Essential Algorithms and Code Samples - Hands-on introduction to quantum computing that focuses on concepts and programming examples (in multiple languages).
- Quantum Computation and Quantum Information - Comprehensive textbook for those with some prior knowledge in mathematics, computer science and physics.
- Quantum Computing: An Applied Approach - A hands on introduction into quantum computing that explains the foundations of quantum computing to the mathematics behind quantum systems.
- Quantum Computing: A Gentle Introduction - Explains quantum computing with only basic college maths knowledge needed.
- Quantum Computing Explained - Conversational approach to explaining quantum computing with worked solutions.
- Quantum Computing for Computer Scientists - Quantum computing explained using an approach accessible to undergraduate computer science students.
- Quantum Computing for Everyone - Introduction into topics such as qubits, entanglement, and quantum teleportation for the general reader.
- Quantum Computing for the Quantum Curious - Freely available quantum computing textbook aimed at high school students, undergraduate students and the general public.
- Quantum Computing in Action - For Java developers at all levels who want an early start in quantum computing.
- Understanding Quantum Technologies - Excellent Book which provides a 360 degree approach of quantum technologies encompassing all dimensions.

## Popular Science

- Quantum Computing Since Democritus - A cute introduction to quantum computing and computational complexity theory. It is intended for the widest possible target audience, and contains some topics of relevance to philosophy.
- Seth Lloyd. Programming the Universe_ A Quantum Computer Scientist Takes on the Cosmos - What if the universe is a giant quantum computer? It takes the reader throuogh a journey of computational model of the universe and its implications on physics.
- The Fabric of Reality: The Science of Parallel Universes and Its Implications - It is of philosophical spirit, about revealing a unified fabric of reality explanation.

## Videos

- Anastasia Marchenkova - Youtube channel focusing on quantum computing topics and general technology.
- Circuit Sessions - Qiskit series exploring the value and use of quantum circuits through a lecture series by academics and industry researchers.
- Coding with Qiskit video series - YouTube video series showing how to write quantum algorithms.
- Introduction to Quantum Programming - The why and how of quantum programming with a focus on the Python Forest SDK from Rigetti.
- Ph/CS 219A at Caltech: Quantum Computation - Lectures for the first term of a course on quantum computation taught at Caltech in Fall 2020, by John Preskill.
- Quantum Computing for Computer Scientists - Microsoft Research Talk on introductory quantum computing for computer scientists. Duration: 1 hour, 28 minutes.
- Quantum Computing for the Determined - A series of lectures on quantum computing basics by Michael Nielsen.
- Quantum Computation and Information at CMU - A series of lectures on quantum computing by Professor O’Donnell at CMU.
- Quantum Impact - Understand how quantum computing can help scientists solve some of the world’s most challenging problems such as land optimisation.
- Quantum Computing Seminar Series - Qiskit series discussing recent research.
- Quantum Mechanics by PBS Space Time - YouTube playlist targeting a wide audience with generic concepts around Quantum Mechanics and Computing.

## Community

- D-Wave Leap Community - D-Wave System’s Leap Community Forum.
- IBM Q Community - IBM Q Community page with list of upcoming events and latest programs.
- IBM Q Qiskit Community - Slack Channel for Qiskit and quantum computing discussions.
- Mike & Ike Subreddit - Discussion about the book Quantum Computation and Quantum Information.
- Pennylane Discussion Forum - Discussion forum for quantum machine learning, both using simulations and on near term hardware.
- Quantum Computing Slack Community - Slack channels for discussion of quantum computing.
- Quantum Computing StackExchange - Question and answer site for quantum computing.
- Quantum Computing Subreddit - Community for discussion of many quantum computing topics.
- Quantum Inferiority - Quantum Programming Chat on matrix, language agnostic, expertise not required.
- Quantum Information and Quantum Computer Scientists of the World Unite - Facebook group for quantum research discussion.
- Q# Community - Community contributed libraries, projects, and demos for the Q# language.
- Rigetti Community - Slack Channel for Rigetti and quantum computing discussions.
- Strawberry Fields Community - Slack channel for Xanadu and Strawberry Fields photonic/CV quantum computing discussions.

## Podcasts

- Meet the meQuanics - Interviews with key quantum computing figures, aimed at the lay person.
- Quantum Computing Now - Podcast by Ethan Hansen covering three main topics: the basics of quantum computing, interviews and the latest news.
- The Qubit Guy’s Podcast - Podcast by Yuval Boger from Classiq Technologies featuring thought leaders from the quantum computing industry.

## Content in Non-English Languages

- Quantum Computing in Portuguese - A repository with curated content on Quantum Computing in Portuguese.

## License

To the extent possible under law, Desiree Vogt-Lee has waived all copyright and related or neighboring rights to this work.

quantumcomputing.md Github