Physics 280 - A02: Introduction to Quantum Computing (Spring 2020)


Rogério de Sousa

This course, targeted at advanced 2nd year students in science, engineering, and computer
science will teach the basics of quantum computation and information. The student will get to
submit jobs to cloud-based quantum computers provided by IBM-Q and D-Wave Leap, using
a Python-based interface. 


MATH211 or MATH110 (Matrix algebra).
No background in quantum physics or Python is needed. 

Note: Because this is a pilot course, the system is currently enforcing the standard pre-req
for PHYS280, "3 units of physics courses". Students who have not taken these can register
after submitting a waiver using this link:

It is recommended that each student brings their own laptop to class. This will allow them to
view and interact with my class notes in real time (I use Concept Board, follow the "Board"
links to the left).  In the last month of the course it will be mandatory for each student to
bring their own laptop to class. These will be used to run Python on UVic's web-based virtual
machine (the Jupyter notebook).


Tue, Fri: 2:30 pm - 3:50 pm,   Clearihue C109.

Attendance is not required, but strongly recommended.

Office hours

Thursdays, 2:00 pm - 3:00 pm, Elliott 117.

How to ask questions outside class:
Students can ask questions and post comments at each lecture board under the "Lectures (Board)"
links to the left. That way questions are directly linked to materials and all students will have access
to our conversation. Students can post under their own name or as "Anonymous" if they prefer.

For homework questions, students can use the Forum at CourseSpaces:

Students are encouraged to use this forum to reply to questions posed by their peers. I am not able
to reply to homework questions via email - By using the forum we ensure that all students have
access to the same answers.

Finally, if you wish to send me a private message,
please send it to my UVic email: email


"Quantum Computing: A beginner's introduction", Parag K. Lala
(McGraw-Hill Education, New York, 2019).

Other suggested books, videos, websites

  • "Quantum Computation and Quantum Information", Michael A. Nielsen and Isaac L. Chuang
    (Cambridge University Press, U.K. 2000). This book is often referred to as the "Bible" of the field.
    While it is self contained, it is aimed at graduate students. 

  • "Canadian Summer School on Quantum Information" (video),

  • "Quantum Information for Developers", ETH-Zurich (Lecture notes and videos),

Topics to be covered

Part I: Fundamentals
Survey of quantum physics: Stern-Gerlach experiment and the spin of the electron, analogy with polarization states of light. Linear algebra with complex numbers and Dirac's notation. Inner products, tensor products, adjoint operation. Operators as square matrices, basis change. Hermitian and normal (diagonalizable) operators. Unitary operators.

Quantum mechanics: State space, observables, projections, and quantum measurement. Pauli matrices and their eigenstates. Expectation value of observables. Representing single qubit states in the Bloch sphere. Entangled states.
Part II: Quantum Computation
Quantum circuits: One-qubit operations (Pauli, Hadamard), controlled two-qubit operations, measurement. How to draw quantum circuits and relate to matrix representation. Circuit that generates Bell states. Irreversibility and universality for classical gates. Universality for quantum gates. How to program a quantum oracle that evaluates 1-bit Boolean functions.
Elementary quantum algorithms and quantum speed-up: Deutsch and Deutch-Josza, quantum parallelism. Bernstein-Vazirani, Simon's algorithms.

Quantum cryptography with BB84. Elementary quantum tomography. No-cloning theorem, quantum teleportation. Elementary 3-qubit error correction.
Part III: Hands-on with IBM-Q and D-Wave Leap
Overview and installation of Anaconda, Jupyter notebook and Python. IBM's Qskit, installation, tutorials, and simple examples. Composing quantum circuits and running them in simulators and real devices. Comparisons between simulations and experiments, quantum depth, noise. Elementary phase estimation (without quantum Fourier transform).

Hamiltonians, ground and excited states, time evolution. Quantum adiabatic theorem. Introduce the idea of using adiabatic evolution to implement quantum computation. 
Other models for quantum computing, overview of adiabatic quantum computing and equivalence to gate model. Adiabatic version of Deutch-Josza algorithm. Equivalence of adiabatic quantum computing (AQC) to gate model (within polynomial overhead). NP-complete problems: Combinatorial problems and their reduction to 3-Satisfiability (3-SAT) problems. AQC algorithm for 3-SAT and quantum annealing.

Overview of D-Wave's Leap, installation, tutorials, and how to use. Example code: Constructing QUBOs for 2 qubits, 3-bit 3-SAT. Chaining and minor embedding to the device's architecture. Minor-embedding tools. Solving graph optimization problems with quantum annealing; application to vertex cover and map coloring problems.

Grading scheme

Assignments 20%
Midterm 30%
Final 50%


There will be 6 assignments.  The assignments will be posted on this website (links to the left), with noted due dates
on Friday at 6pm  (Exceptions will be posted on this website). The assignments must be inserted in the 
"P280"  dropbox located in the left of Elliott 136. 

Assignment solutions will be available online (links on the left) a few days after the due date.

The assignments will be graded by the TA, Mr. Alberto Nava Aquino.  Any questions on grading should be addressed
directly to him by email, at email.

Midterm exam

Feb. 14th (Friday), in class 2:30 pm - 3:50 pm.

Notes on the exams

  • On all examinations the only acceptable calculator is the sharp EL-510R.  This calculator can be bought in the bookstore
    for about $10.  DO NOT bring any other calculator to the examinations. 
  • You are allowed one 8.5X11'' handwritten formula/note sheet (you can only write in one side).
    You will be responsible for the "usual" constants and equations that we have dealt with in class on a regular basis.

Final letter grade: UVic's percentage grading system

A+ 90-100 Exceptional performance.
A 85-89 Outstanding performance.
A- 80-84 Excellent performance.
B+ 77-79 Very good.                       
B 73-76 Good.                
B- 70-72 Solid.
C+ 65-69 Satisfactory.                      
C 60-64 Minimally satisfactory.
50-59 Marginal performance.  
F   0-49       Unsatisfactory performance.  

How to succeed

  • Attend classes;
  • Most important: Work on the assignments by yourself.  If you can't solve a problem, talk to your classmates, 
    or attend the office hour.  However, it is extremely important that you attempt to solve the problem by yourself first.
    Experience shows that students who copy solutions from others usually perform very poorly in the exams and fail the course.
  • Common mistake: Some students do not study/review the notes/book before attempting the assignments. Instead,
    they "pick" the notes trying to find the material needed to solve a particular problem. Such method does not work
    because it leads to fragmented knowledge; the student does not understand the connection between the topics.
    Moreover, studying that way does not prepare for the exam, because there will be no book or notes to "pick" during the exam. 
  • Suggestion on how to study: Do a subject review before attempting the assignment, by reading the notes/book. 
    Start by reading the assignment fully, and then attempt the problem that appears to be easier (it is okay to briefly go
    back to the notes or book during the assignment).
  • Solve extra problems to practice for the exams.