QOSF Monthly Challenges
A repository containing monthly challenges in the field of quantum computing.
Current Challenge
April 2023 Challenge - QUBO
Release date: April 28, 2023 Submission deadline (optional): May 28, 2023
You can see previous challenges here.
Clone this repository into your qBraid account:
How it Works
These challenges will help you hone your quantum computing skills by being exposed to a variety of problems in different areas.
We release a new challenge every month that are open to anyone and everyone. You're welcome to try your hand at solving them individually or as a team.
You are free to use any framework that you like and submit your solutions in any format. Just make sure that they're easy to evaluate.
You're also welcome to contribute challenges! Open an issue on this repo and describe your idea and we'll be happy to take a look at it!
Tentative Timeline
- We try and release each challenge on the same date every month, but sometimes this varies (hey, we're all volunteers).
- You get a month's time to solve each challenge, but if you wish to have your solution reviewed please aim to submit your solution within the first 2 or 3 weeks (to allow for sufficient time for reviews).
Submission
- Please fork this repository and use that to work on your solutions to the challenges.
- Under the challenge directory you wish to attempt to solve, create a folder with your github username (all lowercase, separated-by-hyphens). Your solution goes into this directory. Look at prior submissions for examples if you are not clear on this.
- Do not delete or modify any of the original challenge files since this will show up when you submit your solution.
- If you complete a challenge and want to "submit" your solution, raise a Pull Request (PR) from your repo to ours.
- After you submit your PR, you must find at least one other reviewer to review your work. Your reviewer could be a fellow challenge submitter (trade off reviews!), reach out individually to another community member on Slack, or post in the #monthly-challenges channel asking for a review.
- We will give shout-outs to the best submissions! π
- Note that if you're working as a team, it is sufficient to submit just one PR. Please make sure to have all of your teammates properly credited in your solution.
Evaluation
- We want this to be a community driven project, so evaluation will be in the form of peer reviews.
- Please take some time to go through other solutions and provide your feedback! The only way this will work well is if we learn from each other.
- If you like a solution, please leave an emoji reaction with a π on the PR. We need some feedback for picking the best submissions.
Communication
- Please join the #monthly-challenges Slack channel for the challenge where you can share ideas with others and ask any questions you might have.
Git FAQ
- We recommend you install the new GitHub CLI tool which is pretty cool.
- Forking: https://docs.github.com/en/free-pro-team@latest/github/getting-started-with-github/fork-a-repo
- Pro tip: If you're using the CLI we just told you about, you can do this without ever leaving the terminal! Run
gh repo fork qosf/monthly-challenges
. When asked if you want to clone the repository, hitn
.
- Pro tip: If you're using the CLI we just told you about, you can do this without ever leaving the terminal! Run
- Cloning (first time setup):
git clone htps://github.com/{{your-github-username}}/monthly-challenges.git
- If you're using the CLI, just run
gh repo clone {{your-github-username}}/monthly-challenges
.
- If you're using the CLI, just run
- run
git remote add upstream https://github.com/qosf/monthly-challenges.git
. You DO NOT have to do this if you used the CLI to clone your repo (it does that automatically). - run
git checkout main
- What to do before starting a new challenge:
- Bring your fork on-par with our repo
git fetch upstream git checkout main git merge main upstream/main git push
- Create a branch to work on the new challenge
git branch -b {{branch name}}
- Bring your fork on-par with our repo
- Work on the challenge (make sure your changes are all on the right branch).
- Periodically push your changes to your fork
git push -u origin {{branch name}}
the first time you push. For subsequent pushes, justgit push
.
- Raising a Pull Request: https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/proposing-changes-to-your-work-with-pull-requests
Any other questions? Try the GitHub documentation or ping us on Slack!
Previous Challenges
November 2020 Challenge: Diagonal Unitaries
Release date: November 2nd, 2020
December 2020 Challenge: Minimum Hamming Distance
Release date: December 10th, 2020
January 2021 Challenge: Minimum Makespan
Release date: January 10th, 2020
February 2021 Challenge: QOSF Mentorship Screening Tasks
Release date: February 18th, 2021
March 2021 Challenge: Quantum Autoencoders (QML)
Release date: March 19th, 2021
April 2021 Challenge: Mermin-Peres Magic Square Game
Release date: April 22nd, 2021
May 2021 Challenge: unitaryHACK!
Release date: May 14th, 2021
June 2021 Challenge: k-Nearest Neighbors
Release date: June 19th, 2021
July 2021 Challenge: Quantum State Tomography
Release date: July 21st, 2021
August 2021 Challenge: W States
Release date: August 19th, 2021
September 2021 Challenge: Mentorship Screening Tasks
Release date: September 19th, 2021
December 2021 Challenge: Morphological Operators
Release date: December 1th, 2021
January 2022 Challenge: Decompose
Release date: January 11th, 2022
March 2022 Challenge: QOSF Mentorship Screening Tasks
Release date: March 2th, 2022
April 2022 Challenge: Finding the way out of the maze
July 2022 Challenge: Palindrome Integer
October 2022 Challenge: Mentorship Screening Tasks
February 2023 Challenge: Mentorship Screening Tasks
March 2023 Challenge: Working with NISQ Devices using Mitiq