# Fundamentals of Quantum Computing

# Quantum Programming

Currently, technological developments in this field continue through many start-up companies, and four giant companies of the private sector are making major investments in quantum computing and quantum computers. This can be considered a simple clue that this field has a huge workforce potential. There are many departments where physicists can find a field of study in this field. For example, the hardware deficiencies of quantum computers can only be overcome by solving basic experimental physics problems. At this point, developments occur in the form of the experimental mechanisms potentially offered by theoretical and computational physics being implemented by physicists and, in some scenarios, electrical and electronics engineers. When we look at the software part, circuit level programming is still done in quantum computers. In order to move this level to the next level, physicists and software engineers are currently working closely together.

Below you can find the current work of four companies, all of which are world giants, in the field of quantum computing and quantum computers.

# Syllabus for Fundamentals of Quantum Computation

This course is an introductory level course on the fundamentals of quantum computing.

The main material consists of Jupyter notebooks, and the preparation of these notebooks was inspired by the workshops of the QWorld community called Bronze, Nickel and Silver. In addition to the algorithms mentioned in these workshops, other algorithms and the hardware of existing quantum computers will also be covered in this course.

### Prerequisites

In order to get the most out of this course, knowledge on both Python programming language and quantum mechanics is a must. For the programming part, it is sufficient to know the Python language enough to be able to use variables, basic data types, loops and conditions. If you have no experience with the Python language, you can follow the Python notebooks presented in the material on github. For the quantum mechanics foundation, it will be sufficient to be able to manipulate two-state quantum systems in Dirac notation. Apart from these two prerequisites, knowledge on matrix algebra will make the learning process easier for the student.

### Before the first lecture

Lecture notes are prepared as Jupyter notebooks and stored in a repo on the github organization of Marmara University, Physics Department. As a first step, you should send a request to join the of the lecture, here.

There are several options to follow the notebooks. In order to study locally, you should install the Anaconda on your computer along with Qiskit and Cirq libraries. You can find the instructions here. Then you should clone (or download) the repo to your local and run them via anaconda server.

Another way to follow the notes is to employ a suitable cloud application to run Jupyter notebooks. Google Colab or QBraid to name a few, but you have freedom of choice here. However, the important point is that the notebooks should run properly.

After these preparations, the notebook named "Start_here" can be opened and all materials can be accessed.

### During the semester

The main sections that will be covered in this course are listed below. The amount of self-study time a student should allocate for each section is 2-3 hours.

Quantum programs as circuits, Quantum bits

Quantum states, Superposition & measurement

Quantum operators, rotations and reflections

Two qubits, phase kickback, entanglement, superdense coding

Quantum teleportation, Multiple control constructions

Conventional Quantum Algorithms

Quantum Hardware: Current Status and Open Research Areas

Combinatorial Optimization Problems (COPs)

Quantum Approximate Optimization Algorithm (QAOA)

QAOA Applications to Scientific COPs: Magnetic Materials

QAOA Applicationsto Industrial COPs: Knapsack Problem

QAOA Student Projects

### Resources

Lecture notes on GitHub

IBM Qiskit Textbook

Google Cirq Tutorials

### Success conditions

In this course, there will be 1 midterm exam, 1 semester projects and several homeworks during the semester and 1 final exam at the end of the semester. The formulas for the pass grade are as follows:

Midterm Grade = 0.3 * Midterm Exam Grade + 0.35 * Mean of the Homework Grades + 0.35 * Semester Project Grade

Final Grade = Final Exam Grade

Passing Grade = 0.6 * Midterm Grade + 0.4 * Final Grade

Homeworks will be sent to the student via the Canvas system, and the student will be expected to complete this assignment within declared time. In order for a homework to be considered completed, at least 25 points out of 100 must be received from the assignment. The student may redo the homeworks an unlimited number of times within the allowed time period. The latest score obtained in these attempts will be evaluated as the student's homework grade. The grade of assignments for which at least 25 points cannot be obtained within the defined period will be considered as 0 points.

Sample Homework Question:

Let's say you have a rigged coin where the probability of getting heads is 0.8. Which of the following results are you likely to get when you throw this coin 1000 times? (8 points)

a. Heads: 802, Heads: 198

b. Heads: 502, Heads: 498

c. Heads: 320, Heads: 980

d. Heads: 203, Heads: 797

In addition to test questions, assignments include fill-in-the-blank questions, multiple-choice questions, true-false questions, code snippet writing questions, etc. There will also be questions.

"Quantum Computing & Quantum Information" konusunda 45 dk.'lık bir tanıtım konuşması için hazırlanmış sunumu aşağıda bulabilirsiniz.

## Ek Konular

Aşağıda listelenmiş olan konular dönem sonunda ders saati kalması durumunda işlenecektir.

Kuantum Bilgisayar Donanımı

Kuantum Sayma

Kuantum Rota Bulma

Kuantum Anahtar Dağıtımı

HHL Algoritması ile Lineer Denklem Sistemi Çözme

VQE Algoritması ile Molekül Simülasyonu

QAOA ile Kombinasyonel Optimizasyon Problemleri Çözümü

Hibrid Kuantum-Klasik Sinir Ağları

Varyasyonel Kuantum Lineer Denklem Çözücü

Kuantum Görüntü İşleme

Kuantum Ayrıt Saptama

Faz Tahmini ile Gezgin Satıcı Problemini Çözme