## Dummies guide to Practical Quantum Computing with IBM Qiskit

### What you’ll learn

Learn and understand about General Quantum Computing based on IBM Qiskit Documentation

### Requirements

Basic computer Knowledge and enthusiasm about Quantum Computing are the only prerequisites

### Description

Hello and welcome to my new course The Dummies guide to Practical Quantum Computing with IBM Qiskit. Our current classical computing technology is based on bits or binary digits 1 and 0 . 1 for ON and 0 OFF. Even though it have two states, a bit can exist in only one state at a time. Just like a coin having two faces head and tail. NOTE: In classical computers a programmer can simply WRITE HIGH LEVEL CODE AND RUN it. But for Quantum Computers we have to DESIGN CIRCUITS for performing specific tasks.Quantum computing concept is entirely different from classical one. It use the quantum mechanical property of tiny sub atomic particles like electrons to perform computation. Instead of 1 and 0, a qubit or quantum bit uses the spin position ‘up’ and ‘down’ of electrons. But unlike bits, qubits can exist in both state simultaneously. Like a coin keeps on spinning, we could say it is having equal probability for both head and tail. Or it is both head and tail at the same time.For example consider an 1 bit calculation of finding the best path. 0 means right and 1 means left. A classical computer with a single bit have to first set bit to 0 to go to left path and later 1 to go to right path to find the best path. But a quantum computer with a single qubit can go through both the path simultaneously and arrive at a solution in just only half the time. As the number of qubits increases, this speed increases exponentially compared to classical computers. Computations like data analytic, artificial intelligence which require large parallel processing ability can perform calculations in matter of milli-seconds where it now takes ages to complete.Even though its not going to replace our laptops or mobile phones, Quantum computers will be able to solve these road blocks of traditional computers in data processing. Recently Google announced it has a quantum computer that is 100 million times faster than any classical computer in its lab. The first section of our course from sessions 1 to 6, we are learning essential details about quantum mechanics, and quantum bits which will start with an introduction to quantum mechanics. We will try to have a quick understanding about the difference between quantum mechanics and classical physics, dual nature of particles, double slit experiment, superposition, quantum entanglement etc in the most simplest way of explanation.In the next session we will discuss about the difference between classical bits and quantum bits called qubits. Creating, representing and processing a classical bit. Then how a qubit is generated, what’s inside the qubit, how data is represented in qubit and what makes it faster than classical bits.Then we will see in details how a qubit is created and how its retaining its information. We will also discuss the structure of a quantum computer and the way qubits are dealt within it.Then we will learn about scalars and vectors. How vectors and matrices are used to represent the state of a quantum bit. About representing the qubit as Ket vectors and matrices. We will also learn basic matrix operations.After learning about classical bits and qubits, we can now proceed with gates. At first we will learn about classical gates, its working and also different types of classical gates and their truth tables.In the next session, we will learn about the popular quantum frameworks by leading companies researching on quantum computers, their merits and demerits.Having all concepts clear, now we can proceed with the practical part of our course. We will at first setup our computer by installing python environment. Its made easy by installing python distribution called anaconda. Then we will proceed with installing and testing qiskit, the quantum framework by IBMOnce we have qiskit in our computer and the quantum simulator running, we will be coding our first quantum circuit using the simple quantum gate called the Pauli x gate. Later we will try customizing the input and output to the Pauli x gate and verify the operations.Once we verified in simulator, its time we can try that in a real quantum computer. IBM provides access to their number of quantum computers located in research facilities around the world. Using IBM quantum experience interface we can simply create our Pauli x gate circuit to work in a real quantum computer and get output.Then we will check how we can represent matrices as state vectors using dirac notation. We will see how Pauli x gate matrices will be represented as a state vector.Similarly we will proceed with Pauli Y gate. We will check the state vector and try with the operations in our qiskit simulator at first and then implement it in the IBM real quantum computer.Like that, another gate called the Pauli Z gate. For this one also we will learn about the operations in our qiskit simulator at first and then implement it in real quantum computer.In the next session, we will learn about the Eigen value and Eigen vectors of our already learnt Pauli x, y and z gates.After that, we will learn about a new gate called as the Hadamard gate or the H gate. This gate is capable of generating superposition from a classical qubit. We will have an introduction about the operations of H gate. Then we will implement the H gate in our qiskit simulator. We will check the bloch sphere and histogram representation using qiskit. Using H gate we will also try creating few custom circuits in which we will try to replicate an X gate operations only using the H and Z gates. In the next circuit we will check the phenomenon of collapsing the superposition when we measure the qubit.Then we will try the Hadamard gate in an IBM quantum computer.After H gate we will take few quick sessions dealing with few more gates. The first one called as the R Phi gate. Then we will check two more gates called as the S and T gates. And finally will deal with the U and I gates. We will check the transition matrix and operations of those gates.Those were gates with single qubit operations. Now we will proceed with gates that are capable of multi-qubit operations. Before that, we will learn about representing multi-qubits and its states. We will be using a package called qiskit-notebook for representing the multi-qiskit state vector. At first we will try to create a multi-qubit circuit using single qubit gates. At first we will try with X and H gates combined to form the circuit. And later we will try using two qubits and a single gate.After that we will proceed with a real multi-qubit gate called as CNOT gate or the Controlled NOT gate. We will learn more about CNOT gate, the truth table and its operations. At first we will try the CNOT gate with classical qubits. We will implement it in qiskit. Later we will try the CNOT gate with only one superposition qubit and after that with both superposition qubits.Then we will proceed with implementing CNOT gate in the Real quantum computer from IBM. We can also create identity circuits using CNOT gate. Using these equivalence circuit we can mimic operations of other gates which cannot be performed in a real quantum computer. At first we will create an identity circuit using a CNOT gate wrapped with H gates so that it will act like a CNOT gate placed in opposite direction.Then we will try another equivalence circuit using a CNOT gate in between Hadamard gates which will generate operations of a Controlled Z gate or CZ gate. Like that we will create an equivalence circuit for another theoretical gate called as the CY gate or the Controlled Y gate.There is another gate called as the SWAP gate. Like the name indicates, it can swap the qubit states between each other. We will also create circuit identity or circuit equivalence for swap gate. Similarly for another gate called the Tiffoli gate, we will create circuit identity or circuit equivalence for tiffoli gate and we will implement that circuit in qiskit.And that’s all with gates, we will now proceed with learning an important algorithm called as the Deutsch–Jozsa algorithm or DJ algorithm which demonstrates quantum parallelism. The underlying mathematics of this algorithm is very complex and we are just trying learn it in just a very shallow manner. At first we will see the DJ problem that the algorithm is dealing with and later we will learn about the algorithm design. We will implement it in qiskit later and will verify the results.We will then proceed with discussing about two interesting technologies. The first one called as QKD or Quantum key distribution which utilizes the unique properties of quantum systems to generate and distribute cryptographic key. Quantum cryptography also uses the same physics principles to communicate virtually non-hackable data over a dedicated communications link. Then we will discuss about Quantum tele-portation which is a technique for transferring quantum information from a sender at one location to a receiver some distance away.Overall this will be a nice course for a beginner who are fascinated about quantum computing and want to learn more about quantum computing. Actual quantum computing is all about complex boring mathematics and formulas which I have tried my maximum to avoid convert it in a very simple way to make it understandable to a beginner. In this course we are strictly following the IBM Qiskit documentation and text book. Almost all of the illustrations and examples used in this course are from the IBM qiskit documentation website which you may refer for further learning from this point.Quantum computers could help the development of new breakthroughs in science, medications, machine learning, material science, finance which helps mankind to become the best civilization in the whole universe. In fact quantum computer is so powerful that no one knows how to use its true potential and till now no quantum algorithm is perfect. The hardware and code are still in its development stage providing great opportunities in future for quantum computing professionals. That’s all about the topics which are currently included in this quick course. The code, and jupyter notebook files used in this course has been uploaded and shared in a folder. I will include the link to download them in the last session or the resource section of this course. You are free to use the code in your projects with no questions asked.Also after completing this course, you will be provided with a course completion certificate which will add value to your portfolio.So that’s all for now, see you soon in the class room. Happy learning and have a great time.References and Credits————————-IBM’s qiskit – learnIBM’s qiskit – textbookIBM’s qiskit – documentationblog cloudflare – the-quantum-menacetowardsdatascience -demystifying-quantum-gates-one-qubit-at-a-time-54404ed80640wikipedia – Quantum_logic_gatejonathan-hui – qc-quantum-computing-series-10ddd7977abdyoutube – Coding with Qiskityoutube – Veritasium, a much simplified explanation to every complex quantum conceptsVery much inspired by works and articles of Professor Andrea Morello. Quantum Engineering, University of New South Wales

### Overview

Section 1: Course Introduction and Table of Contents

Lecture 1 Course Introduction and Table of Contents

Section 2: Introduction to Quantum Mechanics

Lecture 2 Introduction to Quantum Mechanics – Part 1

Lecture 3 Introduction to Quantum Mechanics – Part 2

Section 3: Classical Bit vs Quantum Qubit

Lecture 4 Classical Bit vs Quantum Qubit – Part 1

Lecture 5 Classical Bit vs Quantum Qubit – Part 2

Lecture 6 Classical Bit vs Quantum Qubit – Part 3

Lecture 7 Classical Bit vs Quantum Qubit – Part 4

Section 4: Creating, Retaining and Reading out Qubits

Lecture 8 Creating, Retaining and Reading out Qubits – Part 1

Lecture 9 Creating, Retaining and Reading out Qubits – Part 2

Section 5: Vector and Matrix Quantum States

Lecture 10 Vector and Matrix Quantum States

Section 6: Classic Logic Gates Overview

Lecture 11 Classic Logic Gates Overview

Section 7: Popular Quantum Frameworks

Lecture 12 Popular Quantum Frameworks

Section 8: Installing Anaconda Python Distribution

Lecture 13 Installing Anaconda Python Distribution

Section 9: Installing and Testing Qiskit

Lecture 14 Installing and Testing Qiskit

Lecture 15 Error: name ‘qiskit’ is not defined

Section 10: Pauli X-gate in Qiskit

Lecture 16 Pauli X-gate in Qiskit – Part 1

Lecture 17 Pauli X-gate in Qiskit – Part 2

Lecture 18 Error with plot_bloch_multivector() ‘Arrow3D’ object has no attribute

Section 11: Pauli X-gate input and output customizations

Lecture 19 Pauli X-gate input and output customizations

Section 12: Pauli X-gate in Real IBM Quantum Computer

Lecture 20 Pauli X-gate in Real IBM Quantum Computer

Section 13: Pauli Matrixes as State Vectors

Lecture 21 Pauli Matrixes as State Vectors

Section 14: Pauli Y-gate Operations

Lecture 22 Pauli Y-gate – Part 1

Lecture 23 Pauli Y-gate – Part 2

Lecture 24 Pauli Y-gate – Part 3 – in Real Quantum Computer

Section 15: Pauli Z-gate

Lecture 25 Pauli Z-gate

Section 16: Eigen Vectors of XYZ gates

Lecture 26 Eigen Vectors of XYZ gates

Section 17: Hadamard Gate Introduction

Lecture 27 Hadamard Gate Introduction

Section 18: Hadamard Gate in Qiskit

Lecture 28 Hadamard Gate in Qiskit

Section 19: Hadamard Gate Exercises

Lecture 29 Hadamard Gate Exercises – Part 1

Lecture 30 Hadamard Gate Exercises – Part 2 – X with H and Z

Lecture 31 Hadamard Gate Exercises – Part 3 – Superposition Collapse

Section 20: H gate in Real Quantum Computer

Lecture 32 H gate in Real Quantum Computer

Section 21: R phi Gate

Lecture 33 R phi Gate

Section 22: S and T Gates

Lecture 34 S and T Gates

Section 23: U and I Gates

Lecture 35 U and I Gates

Section 24: Multi Qubit states introduction

Lecture 36 Multi Qubit states introduction

Section 25: Representing Multi Qubit States

Lecture 37 Representing Multi Qubit States

Section 26: Multi Qubit Circuit using Single Qubit Gates – sample circuit 1

Lecture 38 Multi Qubit Circuit using Single Qubit Gates – sample circuit 1

Section 27: Multi Qubit Circuit using Single Qubit Gates – sample circuit 2

Lecture 39 Multi Qubit Circuit using Single Qubit Gates – sample circuit 2

Section 28: CNOT gate with classical Qubits

Lecture 40 CNOT gate with classical Qubits

Section 29: CNOT gate with control qubit superposition

Lecture 41 CNOT gate with control qubit superposition

Section 30: CNOT gate with control qubit superposition – In Real Quantum Computer

Lecture 42 CNOT gate with control qubit superposition – In Real Quantum Computer

Section 31: CNOT gate with both qubit superposition

Lecture 43 CNOT gate with both qubit superposition

Section 32: CNOT gate with both qubit superposition target x

Lecture 44 CNOT gate with both qubit superposition target x

Section 33: CNOT Circuit Identities

Lecture 45 CNOT Circuit Identities – Part 1

Lecture 46 CNOT Circuit Identities – Part 2

Section 34: CZ Circuit Identity

Lecture 47 CZ Circuit Identity – Part 1

Lecture 48 CZ Circuit Identity – Part 2

Section 35: CY Circuit Identity

Lecture 49 CY Circuit Identity

Section 36: SWAP Circuit Identity

Lecture 50 SWAP Circuit Identity

Section 37: Toffoli Gate

Lecture 51 Toffoli Gate

Section 38: Toffoli Circuit Identity

Lecture 52 Toffoli Circuit Identity

Section 39: DJ Problem Overview

Lecture 53 DJ Problem Overview

Section 40: DJ Algorithm Design

Lecture 54 DJ Algorithm Design

Section 41: DJ Algorithm Implementation

Lecture 55 DJ Algorithm Implementation – Part 1

Lecture 56 DJ Algorithm Implementation – Part 2

Lecture 57 DJ Algorithm Implementation – Part 3

Section 42: Quantum Cryptography : Quantum Key Distribution

Lecture 58 Quantum Key Distribution – RSA Concepts

Lecture 59 Quantum Key Distribution – Concept

Section 43: Quantum Teleportation Theory

Lecture 60 Quantum Teleportation Theory

Section 44: Further Learning and Resources

Lecture 61 Further Learning and Resources

Lecture 62 SOURCE CODE AND FILES ATTACHED

Beginners who want to start with Practical Quantum Computing Concepts

#### Course Information:

Udemy | English | 5h 16m | 3.11 GB

Created by: Abhilash Nelson

You Can See More Courses in the IT & Software >> Greetings from CourseDown.com