Skip to content
This repository has been archived by the owner on Nov 16, 2023. It is now read-only.

Commit

Permalink
Pushing live release v0.10 (#591)
Browse files Browse the repository at this point in the history
* Add create project how-to (#565)

* Simple Grover quickstart (#549)

* minor grammar edits and SEO fix to title (#567)

* Add overview docs (#553)

* Refactor welcome page, and add katas page (#557)

* Update landing page (#566)

* re-title What Is article in concepts (#569)

* Update after review (#568)

* formatting and SEO fixes

* fix heading mismatch

* spelling, grammar

* fixed multiple h1 issue

* heading level fix

* Update what-is-quantum-computing.md

Replace paras per Cathy Palmer and Bettina Heim

* Update what-is-quantum-computing.md

link fix

* Update what-is-quantum-computing.md

link fix

* Landing page fixes (#573)

* remove unnec *the*, lang-locale in link

* samples section

* update to say requires .NET Core SDK 3.0 (#576)

* add a little detail to steps and correct filename (#578)

* add a little detail to steps and correct filename

* little more wordsmithing

* new cards (#577)

* new cards

* new cards

* new cards

* new cards

* YML fix; removed lang-locale from link

* Update articles/install-guide/index.md

Co-Authored-By: Megan B <47067910+bromeg@users.noreply.github.com>

* fix links

* fix links

* fix links2

* fix links3

* updating the description for how to make a new project in VS (#584)

* M44555: Fixing typo Advance/Advanced

Translator has reported possible source content issue. 
Description: Advance should be Advanced

* Tutorial edits (#585)

* tutorial edits

* added ptr to new tutorials

* tutorial edits2

* small edits

* Update articles/overview/what-is-quantum-computing.md

Co-Authored-By: Chris Granade <cgranade@gmail.com>

* Update articles/overview/what-is-quantum-computing.md

Co-Authored-By: Chris Granade <cgranade@gmail.com>

* more edits

* minor edits2

* minor edit3

* minor edits5

* build suggestions

* https

* bloch sphere link

* bloch sphere 2

* 5 question titles

* card edit

* 5 question title2

* fix 5 questions ref

* Update articles/quickstart.md

Co-Authored-By: Chris Granade <cgranade@gmail.com>

* Update articles/overview/how-to-learn-quantum-computing.md

Co-Authored-By: Megan B <47067910+bromeg@users.noreply.github.com>

* Update articles/overview/what-is-qsharp.md

Co-Authored-By: Megan B <47067910+bromeg@users.noreply.github.com>

* Update articles/quickstart.md

Co-Authored-By: Megan B <47067910+bromeg@users.noreply.github.com>

* Update articles/quickstart.md

Co-Authored-By: Megan B <47067910+bromeg@users.noreply.github.com>

* Update articles/welcome.md

Co-Authored-By: Chris Granade <cgranade@gmail.com>

* QuickStart

* Update "Intro to Katas" with more relevant info (#590)

Rewrote the introduction to be less of a project manifest and more of an explanation what is great about the katas, expanded the list with more interesting katas and new tutorials.

* Quantum Random Number Generator Quickstart (#574)

* Updating landing & getting started pages with QRNG & updating Bell title (#594)

* A couple of small bug fixes on tutorials. (#595)

* Fixing spacing.

* Fixes on grover.

* Correct ValueType to ValueTuple (#579)

* Small fixes to QRNG tutorial (#592)

* Update qrng.md

* 1-8 -> 0-7

* Delete Measurement.svg

* Improving acrolinx

* Additional update instructions for .NET 3.0 (#596)

* Getting started

* Added run online sections to getting started page and moved installing iqsharp section from getting started into seperate file and included in jupyter & python pages

* Fixing typo

* updating include file paths

* Updating include files

* Rolling back includes--will debug file paths later (lower priority task)

* Rolling back include (adding IQ# back to getting started page)

* Reformatted getting started landing page

* minor fixes to page

* Updating navigation

* Self contained python installation.

* Links for Python and quickstart.

* extra space

* Update articles/install-guide/index.md

Co-Authored-By: Chris Granade <cgranade@cgranade.com>

* add Q# blog

* add 64-bit requirement note

* IQ# installation install for jupyter and python

* Titles all caps, etc

* Adding IQ# installation instructions in-line.

* Fixing quickstart links.

* Pointing users directly to Jupyter getting started guide.

* Added .NET core requirement for VSCode

* .NEt core requirement & merge conflicts

* Update articles/install-guide/index.md

Co-Authored-By: Chris Granade <cgranade@cgranade.com>

* Updating Jupyter & Python to have IQ# install instructions

* moving Classical Hosts to quickstart

* Update articles/install-guide/jupyter.md

Co-Authored-By: Chris Granade <cgranade@cgranade.com>

* Update articles/install-guide/jupyter.md

Co-Authored-By: Chris Granade <cgranade@cgranade.com>

* Update articles/install-guide/python.md

Co-Authored-By: Chris Granade <cgranade@cgranade.com>

* updated link paths

* updating links in relnotes

* changes to relNotes for 0.8

* updated relNotes, waiting for package #

* added package reference #

* updating relnote for v0.9

* updating relnotes

* updated header style

* added link to Katas

* updating spacing

* Update articles/relnotes/index.md

* Update articles/relnotes/index.md

* Update articles/relnotes/index.md

* updated based on review comments

* relnotes for v0.10

* added version number to code completion

* Update release notes, with release info

* Add update guide to the TOC

* Clarified VS Code workspace restriction

* Update after re-review

* updating relnotes for october release

* updated relnotes with simulation breaking change info

* added links to PRs

* Update articles/relnotes/index.md

Co-Authored-By: Chris Granade <chgranad@microsoft.com>

* Update articles/relnotes/index.md

Co-Authored-By: Chris Granade <chgranad@microsoft.com>

* updated from github PR comments

* updating relnotes based on new release features

* added relnotes for deprecated attributes

* updating relnotes with build number

* updated TOC, getting started page, landing page cards with title updates

* updated titles & welcome content

* small changes to welcome & update instructions for 3.0

* better wording

* accidentally a word

* added new update instructions for project files

* minor fixes

* Update articles/install-guide/update.md

Co-Authored-By: bettinaheim <34236215+bettinaheim@users.noreply.github.com>

* Update articles/install-guide/update.md

Co-Authored-By: bettinaheim <34236215+bettinaheim@users.noreply.github.com>

* Update articles/install-guide/update.md

Co-Authored-By: Andres Paz <anpaz@microsoft.com>

* Update articles/install-guide/update.md

Co-Authored-By: bettinaheim <34236215+bettinaheim@users.noreply.github.com>

* Update articles/install-guide/update.md

Co-Authored-By: bettinaheim <34236215+bettinaheim@users.noreply.github.com>

* Update articles/install-guide/update.md

Co-Authored-By: bettinaheim <34236215+bettinaheim@users.noreply.github.com>

* updates based on PR

* added workspace reload to Jupyter instructions

* updated to specify jupyter cell

* added update to latest VS2019 version

* remove local specific URL

* updating python update instructions

* aded link to updating target framework

* Update articles/install-guide/update.md

Co-Authored-By: Andres Paz <anpaz@microsoft.com>

* pr comment updates

* remove local specific url

* Apply suggestions from code review

* indenting jupyter command

* typo

* removed superfluous steps

* removed local URL

* removed path from project name

* Rel-notes for October release (#581)
  • Loading branch information
anpaz authored and bromeg committed Nov 1, 2019
1 parent 8becfb0 commit aa5e6f4
Show file tree
Hide file tree
Showing 43 changed files with 1,125 additions and 241 deletions.
6 changes: 6 additions & 0 deletions .openpublishing.publish.config.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,12 @@
"url": "https://github.com/Microsoft/templates.docs.msft",
"branch": "master",
"branch_mapping": {}
},
{
"path_to_root": "articles/quantum",
"url": "https://github.com/microsoft/quantum",
"branch": "master",
"branch_mapping": {}
}
],
"branch_target_mapping": {},
Expand Down
4 changes: 3 additions & 1 deletion articles/Glossary.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Glossary | Microsoft Docs
title: Quantum computing glossary | Microsoft Docs
description: Quantum terms glossary
author: QuantumWriter
ms.author: Alan.Geller@microsoft.com
Expand All @@ -8,6 +8,8 @@ ms.topic: article
uid: microsoft.quantum.glossary
---

# Quantum computing glossary

|Term|Definition|
|-------------|----------|
|Adjoint|The complex conjugate transpose of the operation. For operations that implement a unitary operator, the adjoint is the inverse of the operation.|
Expand Down
32 changes: 28 additions & 4 deletions articles/TOC.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,39 @@
- name: Microsoft Quantum Documentation
href: index.yml
- name: Overview
href: welcome.md
items:
- name: Get started
href: welcome.md
- name: Five questions about quantum computing
items:
- name: What is quantum computing?
href: overview/what-is-quantum-computing.md
- name: What can a quantum computer do?
href: overview/quantum-computers.md
- name: Why learn quantum computing?
href: overview/why-learn-quantum-computing.md
- name: What is Q#?
href: overview/what-is-qsharp.md
- name: How to learn quantum computing?
href: overview/how-to-learn-quantum-computing.md
- name: Learn with the Quantum Katas
href: intro-to-katas.md
- name: Quickstarts
items:
- name: Quantum random number generator
href: quickstarts/qrng.md
- name: Quantum basics with Q#
href: quickstart.md
- name: Implement Grover's search algorithm
href: quickstarts/search.md
- name: How-to guides
items:
- name: Install the QDK
href: install-guide/index.md
- name: Update the QDK
href: install-guide/update.md
- name: Write your first quantum program
href: quickstart.md
- name: Create a Q# project
href: how-to-guides/create-qsharp-project.md
- name: Concepts
items:
- name: Quantum development techniques
Expand All @@ -22,7 +46,7 @@
href: libraries/toc.yml
- name: Quantum computing concepts
href: concepts/toc.yml
- name: How to host a quantum machine
- name: Quantum simulators and resource estimators
href: machines/toc.yml
- name: Resources
items:
Expand Down
16 changes: 8 additions & 8 deletions articles/concepts/index.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
---
title: Quantum Computing Concepts
description: What is quantum computing?
title: Quantum computing history and background
description: Learn about the history of quantum computing, some background describing how it works, and about the Microsoft Quantum Development Kit.
author: QuantumWriter
ms.author: nawiebe@microsoft.com
ms.author: nawiebe
uid: microsoft.quantum.concepts.intro
ms.date: 12/11/2017
ms.topic: article
---

# What is Quantum Computing?
# Quantum computing history and background

A host of new computer technologies have emerged within the last few years, and quantum computing is arguably the technology requiring the greatest paradigm shift on the part of developers. Quantum computers were proposed in the 1980s by [Richard Feynman](https://en.wikipedia.org/wiki/Richard_Feynman) and [Yuri Manin](https://en.wikipedia.org/wiki/Yuri_Manin). The intuition behind quantum computing stemmed from what was often seen as one of the greatest embarrassments of physics: remarkable scientific progress faced with an inability to model even simple systems. You see, quantum mechanics was developed between 1900 and 1925 and it remains the cornerstone on which chemistry, condensed matter physics and technologies ranging from computer chips to LED lighting ultimately rests. Yet despite these successes, even some of the simplest systems seemed to be beyond the human ability to model with quantum mechanics. This is because simulating systems of even a few dozen interacting particles requires more computing power than any conventional computer can provide over thousands of years!
A host of new computer technologies has emerged within the last few years, and quantum computing is arguably the technology requiring the greatest paradigm shift on the part of developers. Quantum computers were proposed in the 1980s by [Richard Feynman](https://en.wikipedia.org/wiki/Richard_Feynman) and [Yuri Manin](https://en.wikipedia.org/wiki/Yuri_Manin). The intuition behind quantum computing stemmed from what was often seen as one of the greatest embarrassments of physics: remarkable scientific progress faced with an inability to model even simple systems. You see, quantum mechanics was developed between 1900 and 1925 and it remains the cornerstone on which chemistry, condensed matter physics, and technologies ranging from computer chips to LED lighting ultimately rests. Yet despite these successes, even some of the simplest systems seemed to be beyond the human ability to model with quantum mechanics. This is because simulating systems of even a few dozen interacting particles requires more computing power than any conventional computer can provide over thousands of years!

There are many ways to understand why quantum mechanics is hard to simulate. Perhaps the simplest is to see that quantum theory can be interpreted as saying that matter, at a quantum level, is simultaneously in a host of different possible configurations (known as *states*) at the same time. Unlike classical probability theory, these many configurations of the quantum state, which can be potentially observed, may interfere with each other like waves in a tidepool. This interference prevents the use of statistical sampling to obtain the quantum state configurations. Rather, we have to track *every possible* configuration a quantum system could be in if we want to understand the quantum evolution.
There are many ways to understand why quantum mechanics is hard to simulate. Perhaps the simplest is to see that quantum theory can be interpreted as saying that matter, at a quantum level, is simultaneously in a host of different possible configurations (known as *states*) at the same time. Unlike classical probability theory, these many configurations of the quantum state, which can be potentially observed, may interfere with each other like waves in a tide pool. This interference prevents the use of statistical sampling to obtain the quantum state configurations. Rather, we have to track *every possible* configuration a quantum system could be in if we want to understand the quantum evolution.

Consider a system of electrons where electrons can be in any of say $40$ positions. The electrons therefore may be in any of $2^{40}$ configurations (since each position can either have or not have an electron). To store the quantum state of the electrons in a conventional computer memory would require in excess of $130$ GB of memory! This is substantial, but within the reach of some computers. If we allowed the particles to be in any of $41$ positions, there would be twice as many configurations at $2^{41}$ which in turn would require more than $260$ GB of memory to store the quantum state. This game of increasing the number of positions cannot be played indefinitely if we want to store the state conventionally as we quickly exceed memory capacities of the world's most powerful machines. At a few hundred electrons the memory required to store the system exceeds the number of particles in the universe; thus there is no hope with our conventional computers to ever simulate their quantum dynamics. And yet in nature, such systems readily evolve in time according to quantum mechanical laws, blissfully unaware of the inability to engineer and simulate their evolution with conventional computing power.

This observation lead those with an early vision of quantum computing to ask a simple yet powerful question: can we turn this difficulty into an opportunity? Specifically, if quantum dynamics are hard to simulate what would happen if we were to build hardware that had quantum effects as fundamental operations? Could we simulate systems of interacting particles using a system that exploits exactly the same laws that govern them naturally? Could we investigate tasks that are entirely absent from nature, yet follow or benefit from quantum mechanical laws? These questions led to the genesis of quantum computing.
This observation led those with an early vision of quantum computing to ask a simple yet powerful question: can we turn this difficulty into an opportunity? Specifically, if quantum dynamics are hard to simulate what would happen if we were to build hardware that had quantum effects as fundamental operations? Could we simulate systems of interacting particles using a system that exploits exactly the same laws that govern them naturally? Could we investigate tasks that are entirely absent from nature, yet follow or benefit from quantum mechanical laws? These questions led to the genesis of quantum computing.

The foundational core of quantum computing is to store information in quantum states of matter and to use quantum gate operations to compute on that information, by harnessing and learning to "program" quantum interference. An early example of programming interference to solve a problem thought to be hard on our conventional computers was done by [Peter Shor](https://en.wikipedia.org/wiki/Peter_Shor) in 1994 for a problem known as factoring. Solving factoring brings with it the ability to break many of our public key cryptosystems underlying the security of e-commerce today, including RSA and Elliptic Curve Cryptography. Since that time, fast and efficient quantum computer algorithms have been developed for many of our hard classical tasks: simulating physical systems in chemistry, physics, and materials science, searching an unordered database, solving systems of linear equations, and machine learning.

Designing a quantum program to harness interference may sound like a daunting challenge, and while it is, many techniques and tools, including our Microsoft Quantum Development Kit, have been introduced to make quantum programming and algorithm development more accessible. There are a handful of basic strategies that can be used to manipulate quantum interference in a way useful for computing, while at the same time not causing the solution to be lost in a tangle of quantum possibilities. Quantum programming is a distinct art from classical programming requiring very different tools to understand and express quantum algorithmic thinking. Indeed, without general tools to aid a quantum developer in tackling the art of quantum programming, quantum algorithmic development is not so easy.

We present the Microsoft Quantum Development Kit to empower a growing community with tools to unlock the quantum revolution for their tasks, problems, and solutions. Our high-level programming language, Q#, was designed to address the challenges of quantum information processing; it is integrated in a software stack that enables a quantum algorithm to be compiled down to the primitive operations of a quantum computer. Before approaching the programming language, it's helpful to review the basic principles on which quantum computing is based. We will take the fundamental rules of quantum computing to be axioms, rather than detailing their foundations in quantum mechanics. Additionally, we will assume basic familiarity with linear algebra (vectors, matrices etc). If a deeper study of quantum computing history and principles is desired, we refer you to the [reference section](xref:microsoft.quantum.more-information) containing more information.
We present the Microsoft Quantum Development Kit to empower a growing community with tools to unlock the quantum revolution for their tasks, problems, and solutions. Our high-level programming language, Q#, was designed to address the challenges of quantum information processing; it is integrated in a software stack that enables a quantum algorithm to be compiled down to the primitive operations of a quantum computer. Before approaching the programming language, it's helpful to review the basic principles on which quantum computing is based. We will take the fundamental rules of quantum computing to be axioms, rather than detailing their foundations in quantum mechanics. Additionally, we will assume basic familiarity with linear algebra (vectors, matrices, and so on). If a deeper study of quantum computing history and principles is desired, we refer you to the [reference section](xref:microsoft.quantum.more-information) containing more information.
2 changes: 1 addition & 1 deletion articles/concepts/toc.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
- name: What is quantum computing?
- name: Quantum computing history & background
href: index.md
- name: Vectors and matrices
href: vectors-and-matrices.md
Expand Down
3 changes: 2 additions & 1 deletion articles/docfx.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
"README.md",
"LICENSE",
"LICENSE-CODE",
"ThirdPartyNotices"
"ThirdPartyNotices",
"quantum/**"
]
}
],
Expand Down
8 changes: 4 additions & 4 deletions articles/for-more-info.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
---
title: Quantum information references | Microsoft Docs
description: Quantum information references
title: Quantum computing learning resources | Microsoft Docs
description: A reference list with deep coverage of quantum computing topics if you want to learn more about quantum computer programming.
author: QuantumWriter
uid: microsoft.quantum.more-information
ms.author: nawiebe@microsoft.com
ms.date: 12/11/2017
ms.topic: article
---

# For More Information
# More quantum computing learning resources

We have reviewed, in this brief introduction, how a quantum computer can be viewed as a device that stores information as a unit vector in an exponentially large vector space, and seen how quantum gates can be used to rotate the information in a way so as to perform a calculation. We have also discussed useful language for describing quantum operations such as quantum circuits and Dirac notation which allow complex quantum states and subroutines to be quickly understood by a developer.

While these tools are foundational for any developer of quantum software, they by no means span the depth or breadth of what is known about quantum computer programming and algorithm design. Since quantum computing remains a rapidly developing field, there is no one resource that has all of the information needed to learn how to best use these tools in order to solve problems. For this reason we have compiled a list of below that may interest the reader who wishes to learn more about the art and beauty of quantum computer programming.
While these tools are foundational for any developer of quantum software, they by no means span the depth or breadth of what is known about quantum computer programming and algorithm design. Since quantum computing remains a rapidly developing field, there is no one resource that has all of the information needed to learn how to best use these tools in order to solve problems. For this reason we have compiled a reference list that may interest the reader who wishes to learn more about the art and beauty of quantum computer programming.
This section contains selected references to deep coverage of quantum computing topics.

## Basic quantum computing ##
Expand Down

0 comments on commit aa5e6f4

Please sign in to comment.