Difference between revisions of "BSTE:IntroductionToQuantumProgramming"
S.protasov (talk | contribs) (Added topics and content) |
S.protasov (talk | contribs) |
||
Line 371: | Line 371: | ||
==== Typical questions for ongoing performance evaluation within this section ==== |
==== Typical questions for ongoing performance evaluation within this section ==== |
||
+ | # Teleport a qubit and prove your teleportation result is correct |
||
− | # TODO |
||
+ | # Apply QFT to a given vector and report major frequency in discrete sinal |
||
+ | # For a given matrix, implement a matrix as a circuit and find an eigenvalue for the first eigenvector |
||
==== Typical questions for seminar classes (labs) within this section ==== |
==== Typical questions for seminar classes (labs) within this section ==== |
||
+ | # Implement Amplitude Amplification and show in works |
||
− | # TODO |
||
+ | # Factorize 21 using Shor's algorithm |
||
+ | # Apply QFT for a `sin(kt)` function |
||
==== Test questions for final assessment in this section ==== |
==== Test questions for final assessment in this section ==== |
||
+ | # Factorize 15 using Shor's algorithm |
||
− | # TODO |
||
+ | # Apply Grover search for an arbitrary oracle function |
||
+ | # Apply QFT for a `cos(kt)` function |
||
=== Section 5 === |
=== Section 5 === |
Revision as of 10:30, 12 October 2021
Introduction to Quantum Programming
- Course name: Introduction to Quantum Programming
- Course number: N/A
Course Characteristics
What subject area does your course (discipline) belong to?
Quantum computing
Key concepts of the class
- Quantum computer
- Quantum circuit
- Quantum optimization
What is the purpose of this course?
The goal of the course is to equip students with the skills to develop quantum algorithms using modern development tools for simulators and real computing systems. These skills include, but are not limited to, the qiskit programming language and its libraries, and universal quantum notation.
After mastering the course the student should be aware of ways to develop quantum algorithms, should be able to develop simple quantum circuits from scratch and integrate them into classical software, should be able to compose sequences of quantum circuits that solve computational and machine learning problems.
Course objectives based on Bloom’s taxonomy
- What should a student remember at the end of the course?
By the end of the course, the students should be able to remember and recognize
- basics of quantum computing
- definition of quantum state and quantum gate
- basic quantum gates
- basic quantum subprograms
- What should a student be able to understand at the end of the course?
By the end of the course, the students should be able to describe and explain
- terms of quantum computing
- solving applied problems in quantum computer
- What should a student be able to apply at the end of the course?
By the end of the course, the students should be able to
- write an algormithm in qiskit progamming language
- run an algorithm in simulator
- run an algorithm in real quantum computer
Course evaluation
Proposed points | |
---|---|
Labs/seminar classes | 0 |
Interim performance assessment | 20 |
Assessments | 60 |
Exams | 20 |
If necessary, please indicate freely your course’s features in terms of students’ performance assessment:
Students pass 3 homeworks 20 points each. 20 points are given for in-class performance (solving the labs and whiteboard examples). 20 points go to the exam.
Grades range
Proposed range | |
---|---|
A. Excellent | 80-100 |
B. Good | 65-79 |
C. Satisfactory | 50-64 |
D. Poor | 0-49 |
Resources and reference material
Main textbook:
- Programming Quantum Computers: Essential Algorithms and Code Samples
- Qiskit textbook
- QBronze workshop materials
Other reference material:
Course Sections
The main sections of the course and approximate hour distribution between them is as follows:
Section | Section Title | Teaching Hours |
---|---|---|
1 | Single qubit | 12 |
2 | 2 qubit operations | 8 |
3 | quantum data representation | 10 |
4 | quantum building blocks | 4 |
5 | quantum optimization and machine learning | 6 |
Section 1
Section title:
Single Qubit
Topics covered in this section:
- Qubit
- Superposition
- Quantum states, vector representation, and bra-ket notation
- Single qubit gates NOT, READ/WRITE, HADAMARD, ROT, PHASE
What forms of evaluation were used to test students’ performance in this section?
Yes/No | |
---|---|
Development of individual parts of software product code | 1 |
Homework and group projects | 1 |
Midterm evaluation | 0 |
Testing (written or computer based) | 0 |
Reports | 0 |
Essays | 1 |
Oral polls | 0 |
Discussions | 0 |
Typical questions for ongoing performance evaluation within this section
- Express a superposed state with given probabilities of realization in bra-ket notation
- Compute the state given a sequence of gates
- Prepare a desired quantum state given single-qubit operations
- What is the difference between Unitary and Stochastic matrices?
Typical questions for seminar classes (labs) within this section
- Prepare a desired state given single-qubit operations
- Apply Hadamard gate to |+>
- What is Matrix exponentiation?
Test questions for final assessment in this section
- Find eigenstates of Hadamard operator
- Prepare a desired quantum state
Section 2
Section title:
2 qubit operations
Topics covered in this section:
- 2-qubit operations
- CNOT
- CU: CPHASE, CZ, SWAP
- CC-U: Toffoli
- Implementation of arbitrary C-U and CC-U gates
What forms of evaluation were used to test students’ performance in this section?
Yes/No | |
---|---|
Development of individual parts of software product code | 1 |
Homework and group projects | 1 |
Midterm evaluation | 0 |
Testing (written or computer based) | 0 |
Reports | 0 |
Essays | 0 |
Oral polls | 0 |
Discussions | 0 |
Typical questions for ongoing performance evaluation within this section
- Compute tensor product of 2 matrices
- Implement C-RotX(phi) gate
- Compute CNOT^(-1)
Typical questions for seminar classes (labs) within this section
- Apply CNOT to |+0> in matrix form
- Implement CC-H gate using 2-qubit gates only
- Compute CCNOT^(-1)
Test questions for final assessment in this section
- Implement CZ gate
- Implement sqrt(CZ) gate
- Implement CCCNOT
Section 3
Section title:
Quantum data representation
Topics covered in this section:
- Quantum arithmetics
- Quantum RAM
- Quantum vector encoding
- Quantum matrix encoding
What forms of evaluation were used to test students’ performance in this section?
Yes/No | |
---|---|
Development of individual parts of software product code | 1 |
Homework and group projects | 1 |
Midterm evaluation | 0 |
Testing (written or computer based) | 0 |
Reports | 0 |
Essays | 0 |
Oral polls | 0 |
Discussions | 0 |
Typical questions for ongoing performance evaluation within this section
- Implement +3 for 2-s complement notation
- Encode a random vector of 8 components
- Encode a random unitary matrix
Typical questions for seminar classes (labs) within this section
- Implement x2 for 2-s complement notation
- Encode a random vector of 4 components
- Encode a random Hermitian matrix with density matrix
Test questions for final assessment in this section
- Implement x3 for 2-s complement notation
- Encode a random vector of 16 components
- Encode a random Hermitian matrix
Section 4
Section title:
Quantum programming building blocks
Topics covered in this section:
- Quantum teleportation
- Amplitude amplification
- QFT
- Quantum Phase estimation
- Grover's search algorithm
- Shor's factorization algoritm
What forms of evaluation were used to test students’ performance in this section?
Yes/No | |
---|---|
Development of individual parts of software product code | 1 |
Homework and group projects | 1 |
Midterm evaluation | 0 |
Testing (written or computer based) | 0 |
Reports | 0 |
Essays | 0 |
Oral polls | 0 |
Discussions | 0 |
Typical questions for ongoing performance evaluation within this section
- Teleport a qubit and prove your teleportation result is correct
- Apply QFT to a given vector and report major frequency in discrete sinal
- For a given matrix, implement a matrix as a circuit and find an eigenvalue for the first eigenvector
Typical questions for seminar classes (labs) within this section
- Implement Amplitude Amplification and show in works
- Factorize 21 using Shor's algorithm
- Apply QFT for a `sin(kt)` function
Test questions for final assessment in this section
- Factorize 15 using Shor's algorithm
- Apply Grover search for an arbitrary oracle function
- Apply QFT for a `cos(kt)` function
Section 5
Section title:
Quantum optimization and machine learning
Topics covered in this section:
- Метод главных компонент на QPU
- Метод опорных вектором на QPU
What forms of evaluation were used to test students’ performance in this section?
Yes/No | |
---|---|
Development of individual parts of software product code | 1 |
Homework and group projects | 1 |
Midterm evaluation | 0 |
Testing (written or computer based) | 0 |
Reports | 0 |
Essays | 0 |
Oral polls | 0 |
Discussions | 0 |
Typical questions for ongoing performance evaluation within this section
- TODO
Typical questions for seminar classes (labs) within this section
- TODO
Test questions for final assessment in this section
- TODO