Q # Programming Contest: Microsoft Q # Coding Contest
The Microsoft Quantum team is pleased to announce the Q # Coding Contest - Winter 2019! In this competition, you can test your quantum programming skills by solving quantum computing problems in Q #. Winners will receive a Microsoft Quantum T-shirt!
Quantum computing is a fundamentally different computational paradigm compared to classical computing. In fact, they are so different that some tasks that are considered classically insoluble (such as decomposing integers or modeling physical systems) can be effectively performed on a quantum computer. In 2017, Microsoft introduced the Quantum Development Kit, which includes the Q # programming language. Q # can be used with Visual Studio, Visual Studio Code or the command line, on Windows, macOS and Linux.
In the summer of 2018, we held the first quantum programming contest , which included tasks on introductory topics in quantum computing: superposition, measurement, quantum oracles, and simple algorithms. This competition will offer more challenging issues on some of these topics, as well as present several new topics.
The competition will be held from 1 to 4 March . The rules are as follows:
- The competition will have 12 tasks of varying difficulty.
- To solve each problem, you will write Q # code to implement the described transformation on a given set of qubits or to perform a more complex task. Decisions are made only on Q #.
- The solution is correct if it passes all tests from a predefined set of tests. You will find out if the decision is correct soon after it is submitted.
- Participants are ranked by the number of correctly solved tasks.
- The rating is based on the minimum penalty time for all tasks, which is calculated as the latest submission time (time from the beginning of the competition) for any of the correctly solved tasks. An additional penalty of 20 minutes is added for each failed shipment of completed tasks (that is, if you never complete the task, you will not be penalized for performing this task).
- The top 50 participants will receive a Microsoft Quantum T-shirt.
- Everything is free. Must be 16 years or older. The game ends 04/03/19. See Official Rules for details .
We will offer a warm-up at the weekend before the competition, from February 22 to 25 . Participation in the warm-up is completely optional. The warm-up round includes simpler tasks on topics covered in the main competition, and gives you the opportunity to familiarize yourself in advance with the competition environment and the application system, as well as update knowledge or learn the basics of quantum computing and the Q # programming language. During the warm-up, everyone is invited to discuss tasks and solutions. After completing the warm-up round, we will publish editorials explaining both the logic of the quantum computation underlying the solution and the implementation of Q # on the contest page.
Another great way to prepare for a contest is to solve some of Quantum Katas . They offer problems on various quantum programming topics, and they are very similar to those used in the competition. In fact, the participants of the Q # summer contest will find out the tasks of the contest in some of the hacks on the site :-)
Good luck! We hope you enjoy it!
For those who want to participate for the first time:
- Create an account here .
- Sign up for a warm-up round here .
- Register for the tournament here .
- As soon as the warm-up begins on February 22, solve problems here .
- As soon as the competition starts on March 1, get access to the tasks here .
Materials on quantum programming and Q #:
- Quantum computing: lecture notes by Ronald de Wolfe. .
- A collection of amazing learning resources on quantum computing , including MOOC and books.
- Q #: installation instructions and documentation .
- Quantum Katas - Q # programming exercises.
- A quick reference to the Q # language.
Please note that this contest will use Q # 0.4, while the previous contest used Q # 0.2. Most of the code written in 0.2 will still work on 0.4; Details on breaking changes and new features are available here .