A few weeks ago, I finished teaching my first class at the University of Toronto, called Quantum Computing: Foundations to Frontier. It was aimed at graduate students, which comprised the majority of the participants, but there were a few outstanding undergraduates, as well as a high school student!
This was the first class I have ever designed and taught from the ground up; UofT did not have a quantum computing class in recent years (my colleague Hoi-Kwong Lo, I believe, had taught a more information-theory and crypto-oriented class a while back). I cross-listed the class between the Computer Science and Math departments, and tried advertising it as widely as possible.
A wide audience I got. The first class had over 60 attendees; the number of students registered was 49. Over the semester this number waned, but stabilized at a respectable 31. The departments represented included computer science, mathematics, physics, chemistry, and electrical engineering. Very few had seen quantum information/computing before, so people were really starting from scratch. The diversity of the students made the class really fun for me, but it also introduced challenges. I’ll say more about this later.
While designing the course, I wanted to take into account the following characteristics of the class:
- Most had little to no experience with quantum information
- Varied backgrounds
- 12 weeks of instruction
- People are much more aware of quantum computing than before
As a result, the class had the following structure: we met once a week for 3 hours, with a 15 minute break in the middle. The first half of the course would be a blitz through the basics of quantum computing: what is a quantum state, how to analyze quantum circuits, basic quantum algorithms (Simons’ Algorithm, Quantum Fourier Transform, Grover’s algorithm), fundamental principles such as the No-Cloning Theorem, entanglement. This would take about six weeks.
The second half of the course would switch gears and jump straight to the “Frontier,” and introduce people to cutting edge topics such as Quantum Machine Learning, Quantum Complexity Theory, Quantum Error-Correction, Quantum Cryptography, and more.
In terms of assessment, the students had to solve 3 problem sets, write scribe notes for one lecture, and work on a capstone course project.
If this course were a Spanish class, then the goal would be to steep the students in Spanish culture and customs, while teaching basic, conversational “Gringo” Spanish that could be understood on the streets of Spain or Mexico. This is opposed to, say, a style of language learning where one plods through the formal grammar and vocabulary that is only usable in a business meeting or a dry academic seminar.
Similarly, I wanted the students to (at the very least) be capable of “conversational quantum,” and instead of gaining full expertise with the rigorous details of quantum information theory, I wanted to impart an understanding of the important concepts and principles of quantum computing. Additionally, I hoped to demonstrate just how exciting the field is, and, why it’s so interesting.
For these reasons, I tried to organize the lecture material in the following way: while covering the basics, I would focus on simple examples highlighting concepts such as interference, the fragility of quantum states (i.e. measurement collapse), and the No-Cloning Theorem. I’d analyze elementary quantum circuits (such as the Deutsch-Josza algorithm) slowly, almost in painstaking detail.
When the class transitioned from “Foundations” to “Frontier,” the pace jumped to lightspeed, but I would try to regularly loop back to the simple, paradigmatic examples whenever possible: “It’s just like that thing you saw in the beginning, but more complicated.”
By far the most important component of the class is the class project, in which the students were supposed to team up with one or two others and explore an area of quantum computing that was not covered in class, and of their choosing. Generally, this meant reading a few research papers and writing a survey on it, but some students boldly went above and beyond and carried out original research projects.
Overall, I think the class was a great success. The students were really engaged, were supremely curious, asked wonderful questions, and put in a lot of effort into their assignments, scribe notes, and projects. There will be a separate post about the projects (including links to the project reports and presentations!), so stay tuned for that.
Over the course of the semester, I tried to connect the class to the greater, active quantum computing community. Peter Wittek, my colleague at the UofT Rotman School and Quantum Machine Learning expert, gave a guest lecture about QML. I advertised seminar talks on quantum information theory and quantum computing that were happening on campus, and I was delighted to see students from my class attend.
I think the students walked away with the important bits of quantum information and quantum computing: not just the ability to analyze quantum circuits but also an understanding of concepts such as the exponentiality of quantum mechanics, the fragility of quantum information, the strengths and limitations of quantum computing. I think they also gained a sense that this is a field that is happening now, unfolding before their eyes. On the class Piazza forum, students chimed in with articles about interesting developments in quantum computing, or a new paper that had just come out. Their projects were bold and ambitious, and they were carried out with gusto.
The class did have some challenges, too:
Diverse backgrounds. The diversity of the students’ backgrounds made it challenging to choose how exactly to pitch and present the material. For example, I felt that it would be an injustice to the course if I didn’t talk about Hamiltonians and Hamiltonian simulation. However, this starts to get into “physics-y” things, and most of the people are not physicists (and neither am I). So I’d have to explain what Hamiltonians are from scratch, in an accessible way. On the other hand, there are a few physicists/chemists in the audience, so how do I explain this stuff without boring them out of their minds? I tried to strike a balance.
The dark arts of tensor products. The “conversational quantum” approach worked pretty well, but it has its limitations. At some point, the limited practice with basic things like algebraic manipulations of bras and kets hindered people’s ability to understand, in lecture and on problem sets, what was just a notational convenience versus what was a manifestation of some “real” underlying quantum principle. For example, here’s something that is second nature to people used to quantum notation: the equivalence between $ |a\rangle | b \rangle \langle c | \langle d |$, $ |a,b \rangle \langle c,d|$, and $ |a\rangle\langle c| \otimes | b \rangle \langle d |$.
On the other hand, $|a \rangle \langle b | | c \rangle \langle d|$ is not (usually) treated as equivalent to $|a \rangle | c \rangle \langle b | \langle d |$.
Why it’s OK to swap the bras and kets in one case but not the other, I think, probably mystified more than a few students. To some, this probably looks like it’s the same kind of shenanigans as when you multiply both sides of $df/dx = x$ by $dx$ to solve a differential equation!
Is there a reasonable way to explain this without explaining that in the first case we’re implicitly using an isomorphism between the tensor product spaces $ V \otimes V \otimes V^* \otimes V^* $ and $V \otimes V^* \otimes V \otimes V^* $ yadda yadda yadda?
In general, I had underestimated how challenging of a concept tensor products are; next time, I’ll spend more time on it. If you have good suggestions for how to effectively teach tensor products for quantum information, drop me a line!
- Next time, I’d like to include a programming component (where people can use something like QISKit or run algorithms on an actual quantum computer on the cloud), to allow people to play with certain concepts without having to muck through the algebra all the time.
- I think this class format will eventually make for a good introductory undergraduate course for quantum computing, which should be complemented by a much more rigorous and intense graduate course (for those who want to pursue serious study in quantum information theory).
This class just ended, but I’m already looking forward to the next iteration of Quantum Computing: Foundations to Frontier (coming Fall 2019). Finally, a big thank you to all those who attended my class, and for making it an inspiring experience for me!