# Quantum Computing

## 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!

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.
- CNOT - Easy to understand, step by step introduction to quantum computing concepts.
- 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.
- 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 Zoo - Comprehensive catalog of quantum algorithms.
- Quantum Computer Programming - Hands on Stanford course teaching quantum computing to those without a quantum mechanical background.
- Quantum Computing Playground - 3D quantum state visualisation tool able to simulate up to 22 qubits.
- Quantum computing for the very curious - Essay introducing quantum computing by Michael Nielsen and Andy Matuschak.
- 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.
- 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.
- MIT Quantum Information Sciences - Series of lecture notes on the MIT quantum information sciences course.
- 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 Cryptography - Learn how quantum communication provides security that is guaranteed by the laws of nature.
- 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.
- 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.
- Cirq - Python library for writing, manipulating, and optimizing NISQ circuits to run on quantum computers.
- IBM Quantum Experience - Online quantum composer to run experiments on real quantum computing hardware.
- 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 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.
- 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.
- 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.
- 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 Daily - Outlet for the latest news in quantum computing, presenting articles for both research scientists and the curious Sunday newspaper reader.

## Books¶

- 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.
- 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 Java Developers - Explains quantum computing through the lens of its practical implementation.

## 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.
- 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.

## 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.

## License¶

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