## Introduction

Modern Computing devices come in various shapes and forms. From smart-watches to GPS systems, from mobile phones to supercomputers, from space probes to drones, all these devices operate on the same underlying machinery which is that of a classical computer. The fundamental operation of a classical computer relies on encoding information as a string of binary characters. A single character-the smallest chunk of information-is called a bit which can either be 0 or 1. As modern computers are digital, 0 represents the low voltage and 1 represents high voltage. This information is stored in the millions of transistors present in your processor which then carries out operations on this information.

The reason we are talking about modern computers and their working principles is that we want to highlight the fact that all modern computing devices work on the same fundamental principle. Quantum Computers on the other hand do *not* operate on these principles. They are *fundamentally* different than their classical counterparts. The way we represent and process information in a Quantum Computer relies heavily on exploiting the principles of “Quantum mechanics”. In this and the upcoming modules, we will learn these principles and ways to exploit said principles to perform Quantum Computation.

## Advantages of Quantum Computing

Now, before we explore the more technical workings of a Quantum Computer in detail, we would like to cover the reason we are interested in building one in the first place! Exploring these reasons themselves will give us a good intuition on what a Quantum Computer *should *be able to accomplish. In this section, we will discuss these reasons in teams of both their advantages and disadvantages.

Basically, there are several problems, that are hard to solve on classical computers. Let’s take the example of one such problem.

Suppose you have to plan a small dinner party. Your task is to find the **best** seating arrangement. Let’s take a small number, suppose you have 7 guests. You have to plan a seating arrangement such that no opposing parties sit near each other and more importantly, make sure that every person is sitting next to a like-minded individual. For simplicity suppose the table is round. Now, if you do the math then there are 6x….x1 = 6! = 720 ways of seating 7 people around the table. Let’s say that your atheist friend cannot sit next to your very religious grandma. So, the number of possibilities comes down to 6! – 2×5! = 480.

Now, you are faced with the daunting task of analyzing all the 480 combinations and finding the best one. It is not a big deal for your personal computer to analyze 480 combinations. You’ll probably find the best arrangement in a matter of seconds if you write a good enough program. But what if instead of 7 guests, you have to seat 10 guests. The number of possibilities will increase to 282240 which will take more than a couple of seconds for your computer to analyze. As the number of guests increases, the number of possibilities increases exponentially which will take more time for your computer to process. This is what Computer Scientists call “Exponential Time Complexity” which is obviously not a good thing when you want to solve a problem like this.

The problem which we described above is called an ** Optimization Problem**. It simply means that out of all the possible combinations of states, we want to find the state which solves the problem

*optimally*. As we already discussed, Optimization Problems are hard to solve on a Classical Computer. That, however, does not mean that they cannot be solved. Computer Scientists have developed algorithms to solve these types of problems where they find a good enough solution (if not the best) in a reasonable amount of time. But that does not mean we cannot do better.

It is theoretically proven that Quantum Computers can solve certain problems much more efficiently than classical computers. For instance, Shor’s algorithm can factorize large numbers into their prime factors in Polynomial-time rather than the Exponential-time taken by a classical computer. This was not exactly good news when Peter Shor discovered it in 1994. Turns out, our modern cryptosystem relies on this inefficiency of classical computers and although we are very far away from developing a large-scale Quantum Computer which can run Shor’s Algorithm, it is still a problem that needs to be addressed before we are anywhere near doing so.

The last thing we want to talk about in this section is simulations, Quantum Mechanical Simulations to be precise. The theory of Quantum Mechanics proves that the world is Quantum Mechanical in nature. To make any reasonable predictions about any natural phenomena, we should be able to simulate those phenomena on a machine. Simulating Quantum Mechanical systems is again pretty difficult in terms of both time and space on a classical machine. In the 1980s theoretical physicist, Richard Feynman proposed the idea to address this problem by developing a Quantum Machine to simulate Quantum Systems. He was one of the first people to propose the idea of developing a Quantum Computer.

## What is Quantum Computing?

The textbook definition of Quantum Computing goes something like this – ‘Quantum Computing is defined as an area of computing that harnesses the principles of “Quantum Mechanics” to perform computations. The devices used to perform Quantum Computation are called Quantum Computers’. Sounds simple, right? It is pretty obvious as far as textbook definitions go.

As we explained in the previous sections, the “Quantum” nature of a Quantum Computer allows us to perform operations in a different way than classical computers. The basic Quantum mechanical principles that allow such huge advantages are: Superposition, Entanglement, and Interference.

The principle of **Superposition** explains the ability of a Quantum bit (qubit) to be in a combination of multiple states at the same time until a measurement is made, in which case the superposition collapses into a single state.

Two qubits can be **Entangled** which allows them to change states in the instance one of the qubits changes its state.

Interference is a relatively easier concept to grasp than the previous two. Various qubits **Interfering** with each other can either reinforce or diminish each of their states. Think of each quantum particle as a wave function, which constructively or destructively interferes with each other.

This is a highly condensed version of these principles that aims to provide an overview as opposed to conceptual understanding. We will talk about these principles in a lot more detail in the upcoming modules.

## Applications of Quantum Computing

Now that we have a basic sketch, in very broad strokes of what Quantum Computing is all about, it’s time that we discuss how scientists are convincing governments and investors of why they should allow them to spend large sums of money on this technology. And let me tell you, this is not an easy task. There’s a reason why Defence and weapons development have a lot more funding than fields like theoretical physics. So, here’s why *they* *think* all that money is worth it.

**Cryptography**: We discussed Shor’s Algorithm in the previous section and how it is a threat to modern cryptosystems. This has opened up a whole new field called **Quantum Cryptography** to address this threat and develop Cryptographic Protocols relevant for a post-quantum world. One such notable protocol is Quantum Key Distribution (QKD). QKD allows two users to exchange keys over a Quantum Channel such that any third-party interception will result in discarding the keys, starting the process all over again.

**Artificial Intelligence**: Quantum Machine Learning (QML) can revolutionize the field of Artificial Intelligence. AI requires some heavy number crunching for the models to learn and make good predictions. Quantum Computers can potentially do this in significantly less time than a classical computer. QML is an up-and-coming research field that aims to develop various “Quantum” Algorithms to efficiently realize an AI model.

**Drug development:** Drug Development requires analyzing the structure and properties of various chemical compounds and molecules in order to develop better medications. These compounds are made up of molecules. Molecules are made up of atoms which are in turn made up of subatomic particles which are Quantum mechanical in nature. As we discussed earlier, Quantum Systems can be simulated much more efficiently on a Quantum Computer than they can on a classical one. Quantum computers have already successfully simulated simple molecules and are predicted to simulate much more complex chemicals in time. Thus, promising synthesis of better, more efficient drugs against known and unknown diseases.