# Awesome Q# [![Awesome](https://awesome.re/badge-flat.svg)](https://awesome.re)

> [Q#](https://docs.microsoft.com/en-us/quantum/) is a domain-specific programming language used for expressing quantum algorithms. It was initially released to the public by Microsoft as part of the Quantum Development Kit. –[Wikipedia](https://en.wikipedia.org/wiki/Q_Sharp)

A list of Q# code and resources.

Feel free to improve this list using GitHub pull request mechanism, see [CONTRIBUTING](contributing.md) for more information.

## Contents
- [Official Resources](#official-resources)
- [Tutorials](#tutorials)
- [Books](#books)
- [Videos](#videos)
- [Q/A](#qa)
- [Coding Contests and Solutions](#coding-contests-and-solutions)
- [IDE Integration](#ide-integration)
- [Demos, Samples, and Additional Libraries](#demos-samples-and-additional-libraries)
- [Blogs](#blogs)

## Official Resources
- [Installation guide](https://docs.microsoft.com/en-us/quantum/quantum-installconfig)
- [Q# samples](https://github.com/Microsoft/Quantum)
- [Q# libraries](https://github.com/Microsoft/QuantumLibraries)
- [Quantum Development Kit documentation](https://docs.microsoft.com/quantum/) - Specially "Quantum computing concepts" gives a good introduction to quantum computing in general.
- [Quantum Computing Libraries for noncommercial use](https://github.com/Microsoft/Quantum-NC)
- [Q# libraries for the Quantum Development Kit](https://github.com/microsoft/QuantumLibraries)

## Tutorials
- [Quantum Katas](https://github.com/Microsoft/QuantumKatas/) - Programming exercises for learning Q# and quantum computing.
- [Quantum Kata Notebooks](https://mybinder.org/v2/gh/Microsoft/QuantumKatas/master?filepath=index.ipynb) - Online self-paced tutorials for learning Q# programming and quantum computing.
- [Create your first Q# program by using the Quantum Development Kit](https://docs.microsoft.com/en-us/learn/modules/qsharp-create-first-quantum-development-kit/) - Microsoft Learn module.
- [Deutsch-Jozsa Algorithm](https://github.com/Microsoft/GHC18-IntroToQuantumComputing/) - Materials for self-paced "Introduction to Quantum Computing" workshop presented at Grace Hopper Celebration 2018 and Hopper x1 Seattle 2019.
- [Quantum Perceptron](https://github.com/Microsoft/MLADS2018-QuantumML) - Materials for self-paced "Introduction to Quantum Machine Learning" workshop presented at MLADS 2018.
- [Quantum Classification](https://github.com/microsoft/MLADS2020-QuantumClassification) - Materials for self-paced "Introduction to Quantum Classification" lab presented at MLADS 2020.
- [Quantum Computing with Microsoft QDK](https://www.manning.com/liveprojectseries/quantum-computing-with-microsoft-qdk) - Manning liveProject series that guides the learner through implementation of a variety of protocols and algorithms using Q# and Microsoft QDK.

## Books
- [Learn Quantum Computing with Python and Q#](https://www.manning.com/books/learn-quantum-computing-with-python-and-q-sharp) - Manning, 2021, [Sarah Kaiser](https://www.sckaiser.com/) and [Chris Granade](https://www.cgranade.com/).
- [Q# Pocket Guide](https://www.oreilly.com/library/view/q-pocket-guide/9781098108854/) - O'Reilly, 2022, Mariia Mykhailova.
- [Introduction to Quantum Computing with Q# and QDK](https://link.springer.com/book/10.1007/978-3-030-99379-5) - Springer, 2022, Filip Wojcieszyn.
- [Introducing Microsoft Quantum Computing for Developers](https://link.springer.com/book/10.1007/978-1-4842-7246-6) - Apress, 2022, Johnny Hooyberghs.

## Videos
<!--lint ignore double-link-->
- [Microsoft Quantum Development Kit Preview](https://www.youtube.com/watch?v=v7b4J2INq9c) - Krysta Svore - step-by-step demo of quantum teleportation at Microsoft Mechanics.
- [Introduction to Quantum Programming through the Quantum Katas](https://www.youtube.com/watch?v=h3M8OomE19o) - Bettina Heim, Microsoft Ignite 2018 session ([here](https://www.youtube.com/watch?v=AjBLsrGgEkY) is the same session held with VS Code instead of Visual Studio).
- [Learn to build your first quantum solution with the Quantum Development Kit and Q#](https://www.youtube.com/watch?v=YE4m3yCdcqE) - John Azariah, Microsoft Build 2018 session.
- [Programming quantum computers in .NET using Microsoft Q#](https://www.youtube.com/watch?v=qOg6weW-IDo) - Rolf Huisman.
- [Quantum computing sessions at //Build](https://mybuild.microsoft.com/sessions?q=quantum)

## Q/A
- [Q# tag on Stack Overflow](https://stackoverflow.com/questions/tagged/q%23)
- [Q# tag on Quantum Computing StackExchange](https://quantumcomputing.stackexchange.com/questions/tagged/q%23)

## Coding Contests and Solutions

### Official resources
- [Microsoft Q# Coding Contest (Summer 2018)](https://codeforces.com/contest/1002)
- [Microsoft Q# Coding Contest (Summer 2018) Warmup Round](https://codeforces.com/contest/1001)
- Solution descriptions for [Microsoft Q# Coding Contest (Summer 2018)](https://assets.codeforces.com/rounds/997-998/main-contest-editorial.pdf) and for the [Warmup Round](https://assets.codeforces.com/rounds/997-998/warmup-editorial.pdf)
- [Microsoft Q# Coding Contest (Winter 2019)](https://codeforces.com/contest/1116)
- [Microsoft Q# Coding Contest (Winter 2019) Warmup Round](https://codeforces.com/contest/1115)
- Solution descriptions for [Microsoft Q# Coding Contest (Winter 2019)](https://codeforces.com/blog/entry/65702) and for the [Warmup Round](https://assets.codeforces.com/rounds/1115/warmup-editorial.pdf)
- [Microsoft Q# Coding Contest (Summer 2020)](https://codeforces.com/contest/1357)
- [Microsoft Q# Coding Contest (Summer 2020) Warmup Round](https://codeforces.com/contest/1356)
- Solution descriptions for [Microsoft Q# Coding Contest (Summer 2020)](https://codeforces.com/blog/entry/79208) and for the [Warmup Round](https://codeforces.com/blog/entry/78832)

### Participants' solutions
- [Solutions to the 2018 Microsoft Q# Coding Challenge and Warm-Up on Codeforces](https://github.com/RobertDurfee/QSharpCodingChallenge)
- [Q# codes by Hiroshi Kurokawa](https://github.com/hkurokawa/QSharpCodingContest2018)
- [No Description_ by Hajime Fukuda](https://github.com/hajifkd/qsharp-vscode)

## IDE Integration
<!--lint ignore double-link-->
- [Visual Studio](https://marketplace.visualstudio.com/items?itemName=quantum.DevKit)
- [Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=quantum.quantum-devkit-vscode)
- [Emacs](https://github.com/forked-from-1kasper/emacs-qsharp-mode)
- [Atom](https://github.com/ivangabriele/atom-qsharp)
- [Vim](https://github.com/gootorov/q-sharp.vim)
- [Jupyter Notebook](https://docs.microsoft.com/en-us/azure/quantum/install-jupyter-qdk)

## Demos, Samples, and Additional Libraries
- [Quantum Computing Q# Introduction 2018](https://github.com/Djohnnie/QuantumComputingQSharpIntroduction2018)
- [A implementation of Shor's algorithm written in Python calling Q# for the quantum part](https://github.com/Michaelvll/myQShor)
- [Hadamard Gate Q# Demo](https://github.com/jwulf/HGate)
- [Q# Bell State Program](https://github.com/pktippa/q_sharp_bell_state)
- [Q# playgroud](https://github.com/weize07/Qsharp-playgroud)
- [QuantumPeep](https://github.com/mapmeld/quantum-peep) - Generate Q# from JavaScript/TypeScript.

## Blogs
- [Q# Dev Blog](https://devblogs.microsoft.com/qsharp/) - Official blog of Q# dev team.
- [Microsoft Quantum Blog](https://cloudblogs.microsoft.com/quantum/) - Official blog of Microsoft Quantum team.
- [Q# Advent Calendar 2018](https://devblogs.microsoft.com/qsharp/q-advent-calendar-2018/) - Collection of Q#-related blog posts.
- [Q# Advent Calendar 2019](https://devblogs.microsoft.com/qsharp/q-advent-calendar-2019/) - Collection of Q#-related blog posts.
- [Q# Advent Calendar 2020](https://devblogs.microsoft.com/qsharp/q-advent-calendar-2020/) - Collection of Q#-related blog posts.
- [Q# Advent Calendar 2021](https://devblogs.microsoft.com/qsharp/q-advent-calendar-2021/) - Collection of Q#-related blog posts.
- [The Hitchhiker's Guide to the Quantum Computing and Q#](https://blogs.msdn.microsoft.com/uk_faculty_connection/2018/02/26/the-hitchhikers-guide-to-the-quantum-computing-and-q-blog/)
- [El Bruno's blog posts](https://elbruno.com/tag/q/)
- [Q# Community](https://qsharp.community)
