CS 333 Announcements Goals Syllabus Resources Calendar Staff
italian beach and city
Quantum Computing


Office hours for week of May 13: Monday 11:15-12:15, 3-4. Tuesday: 1-2:30, Wed: 9-11:30.


Quantum computers harness the strange and counterintuitive properties of quantum mechanics to solve computational problems. In some cases, quantum computers will be able to solve problems much more quickly than classical computers. This potential has prompted a surge in interest in building quantum computers and in understanding their power. In this class, we will learn how quantum mechanics can give advantages in computer science applications from communication, cryptography, and algorithms.

Learning Goals are broad and somewhat immeasurable goals that I want you to achieve by the end of the course. Learning Objectives are concrete, measurable learning outcomes that will help you to reach the Learning Goals.

Learning Goals

Learning Objectives

After completing this course, students should be able to

CS333 Syllabus

Time and location: 1:45-2:35 Monday, Wednesday, Friday in MBH 403,

What do I call you? Professor Kimmel or Professor. I use the pronouns she/her/hers.

Professor Office Hours: in MBH 635. Please come to office hours with specific questions, comments, or concerns.

Canvas Site: Here

Super Useful Department Wiki: Here!

Communication: I will use e-mail to communicate with you about urgent matters. Please check your Middlebury e-mail at least once a day. I will post less urgent messages (e.g. a change in office hours) to the announcements section of this site. Please check the Calendar section of this site regularly for an up-to-date record of assignments, due dates, and lecture notes.

E-mail Policy
I will not answer coding questions or problem set questions via e-mail, except for logistical questions.

There are no required texts. I will post lecture notes after each lecture. There are several e-textbooks available under course reserves that you may find helpful.

Technology in the Classroom
You may NOT use any type of cell phone, tablet, or computer during class, unless you have a compelling reason. Please come talk to me if you have a compelling reason for wanting to use technology. Taking notes on a laptop has been shown to be less effective and lower quiz scores not only for the student using the device, but for nearby students as well (because it distracts those around you).

Class Participation

Problem Sets
The primary purpose of problem sets is to help you to learn the course material. The problem sets provide you with opportunities to practice, and importantly, to figure out where you need additional practice.

You will be graded on effort and thoughtfulness, not correctness. Each problem set will have four graded parts, and all parts are submitted through Canvas.

Sometimes it might be difficult for you to determine if your solution is incorrect, or correct but different from mine. In these cases, please post your solution to the Discussion section of the Canvas site under the relevant problem set posting. You should attach a picture or include a description of your solution, along with the problem number. Then I or other students will provide feedback. If you provide helpful feedback on another person's question, you will receive a small bonus in your problem set grade.

If you are the first to find a typo in the problem set or solutions, I will give you a small bonus.

There will be a weekly quiz to assess your understanding of concepts from the previous week's problem set. Additionally, many studies have shown that giving tests improves learning through the "testing effect." Quizzes will usually consist of two problems, one from topics on the problem set due earlier that week, and one from earlier topics. Some quizzes will be held in class, and some will be taken at home through Canvas. All quizzes are completely closed book and must be completed individually.

The midterm will be self-scheduled. You should plan to set aside 3 hours during the exam window to take the test. The date of the midterm is:

The final will be scheduled: Monday, May 21, 2-5pm

Programming Assignments
Quantum computing has only recently left the theoretical realm. As more sophisticated quantum devices have been developed, several programming languages have been created to allow easier interaction with the devices. There will be one programming assignment in this course. However the focus of this class is on the understanding of quantum computing concepts, so if you do not do the programming assignment, it will not lower your final grade. The exception is that to earn an A in the course, you must complete the programming assignment with a satisfactory grade. However, if you complete the assignment satisfactorily, you will get a small boost to your final grade. You may turn in the programming assignment as many times as you would like to Canvas before the last day of class, as long as there are significant changes between the submissions.

Get Out of Jail Free Passes

Evaluation and Grading
Your final grade will be determined as follows:

Excused Absences and Extensions:
If you will miss class because of a religious observance, please notify me within the first two weeks of class. Please look at exam dates and let me know as soon as possible if you have conflicts. Other absences will be dealt with on a case by case basis, but please let me know as early as possible if you will not be able to attend a class. If you miss class, you are still responsible for the missed material. You should carefully read the lecture notes for the class you miss. I will be happy to answer questions related to the lecture, but I will not repeat the lecture for students who missed the original. Quizzes will be rescheduled as necessary for students with an excused absence.

In extenuating circumstances (e.g. personal crisis, serious illness, family problems) extensions for assignments or quizzes may be granted. Please contact me in this case.

Honor Code:
You are expected to maintain the highest level of academic integrity in this course. All work you turn in should be your own. However, collaboration on problem sets and programming assignments is not only allowed, but encouraged. Additionally, you can use course textbooks and online resources to look up approaches and similar examples. To ensure that you are not in violation of the honor code if you collaborate with others, I suggest after discussing code or problem sets, you write up your own solutions or code later on your own.

If you work with another student on a problem set or programming assignment, please acknowledge that person (e.g. "I worked with xxx.") For programming assignments put this acknowledgment in a comment header.

The exams and quizzes must be entirely your own work. You may not share any information about tests or quizzes with any other students, either within or outside of the course.

Academic Accommodation:
Students with documented disabilities who may need accommodations in this class (e.g., extra time on exams) are encouraged to contact me as early as possible to ensure that such accommodations are implemented in a timely fashion. Assistance is available to eligible students through the Student Accessibility Office. Please contact one of the ADA Coordinators. Jodi Litchfield cab be reached at litchfie@middlebury.edu or 802-443-5936 and Courtney Cioffredi can be reached at cioffredi@middlebury.edu or 802-443-2169 for more information. All discussions will remain confidential.

This syllabus is a guideline, and parts may be subject to changes if current policies not conducive to your learning.



The following are additional resources that you might find useful. The ebooks contain additional practice problems

Rubrics and Resources

Problem Set Submission Guidelines

When you submit your problem set to Canvas, it should be in pdf form, but you can hand write it (and then scan it, or use an app on your phone to take a pic and convert) or type it.

However, when you submit, please check that is it well-sized and readable. It is much better if the whole document is one file instead of multiple files for each page. You will be using the pdf on Canvas later for the self-grading portion, so your life will be easier if you make sure it is readable. You can resubmit the pset multiple times (before the deadline) if it doesn't look good, so try to submit something early just to test.

To check if it is readable, there is a button on the Problem Set 1 page that says "Submission Details." Click this, and then go to "View Feedback." On the View Feedback window, there is a button to blow the viewer up to the full screen (you might need to scroll up on the window to see it). If this view is easy to read, then you are all set.


NOTE! This calendar is subject to change (except for past dates.) Please check regularly.

Jump to This Week

Class: Topic/Notes Read: Optional Reading Eval: Quiz/Test Assign: Assignment Given Due: Assignment Due

Topics: Pf: Proofs Gph: Graphs Fun: Functions Count: Counting NT: Number Theory
PS=Problem Set, PA=Programming Assignment

Monday, Feb. 12

Class Introductions Slides
Assign Questionnaire (due. Feb 16)
Assign PS1 (tex) (due Feb 21)

Wednesday, Feb. 14.

Class Quantum Cryptography Notes
Eval Pre-Quiz PS1 (due by midnight)

Friday, Feb. 16

Class Quantum Cryptography Notes, Slides
Due Questionnaire

Monday, Feb. 19

Class Qubit Basics Notes
Eval Quiz: Syllabus
Read Reserves, Quantum Computing Explained Ch. 2, up to Bra-Ket Formalism

Wednesday, Feb. 21

Class Qubit Basics Qubit Worksheet, Qubit Worksheet Solutions
Due PS1
Assign PS2, (tex) (due Feb 28)
Eval PreQuiz PS2 (due by midnight)

Friday, Feb. 23

Winter Carnival - No Class!

Monday, Feb. 26

Class Quantum Bomb Detection Notes
Eval Quiz: PS1 Canvas Link
Due PS1 Reflection/Self Grade

Wednesday, Feb. 28

Class Quantum Bomb Detection and Operations Notes
Due PS2
Assign PS3, (tex) (due Mar 7)
Eval Pre-Quiz

Friday, Mar. 2

Class Quantum Operations Notes
Due PS2 Reflection/Self Grade
Due Pre-Quiz

Monday, Mar. 5

Class Quantum Games and 2 Qubits Notes
Eval Quiz: PS2

Wednesday, Mar. 7

Class Quantum Games Notes
Due PS3
Assign PS4, (tex) (due Mar 14), Hints!

Friday, Mar. 9

Class No Cloning Notes
Due PS3 Reflection/Self Grade
Due Pre-quiz PS4 (due before class on Wednesday)

Monday, Mar. 12

Class Communication Protocols Notes, First Page of Midterm
Eval Quiz: PS3 (please take before class on Wednesday)

Wednesday, Mar. 14

Class Communication Protocols Notes
Due PS4

Friday, Mar. 16

Class Review Notes, Worksheet, Worksheet Solutions
Due PS4 Reflection/Self Grade

Monday, Mar. 19

Class Teleportation Notes
Eval Midterm self-scheduled from Mar. 19 to Mar. 21. Pick up exam from box on my door.

Wednesday, Mar. 21

Class Teleportation and Models of Computation Notes
Assign PS5, (tex) (due Apr 4)

Friday, Mar. 23

Class Classical Models of Computation Notes
Due Pre-Quiz

Monday, Mar. 26

Spring Recess

Wednesday, Mar. 28

Spring Recess

Friday, Mar. 30

Spring Recess

Monday, Apr. 2

Class Quantum Circuits Notes
Assign Programming Assignment

Wednesday, Apr. 4

Class Quantum Circuits and Deutsch's Algorithm Notes
Due PS5
Assign PS6, (tex, Qcircuit.tex) (due Apr 11)

Friday, Apr. 6

Class Deutsch's Algorithm Notes
Due PS5 Reflection/Self Grade
Due PS6 PreQuiz
Due Mid-Semester Feedback Survey
Assign PA

Monday, Apr. 9

Class Feynman Path Model Notes
Eval Quiz: PS5

Wednesday, Apr. 11

Class Building a Quantum Computer Notes, Slides
Due PS6
Assign PS7 (tex) (due Apr 18)
Eval PreQuiz PS 7

Friday, Apr. 13

Class Search
Due PS6 Reflection/Self Grade
Due PreQuiz PS 7

Monday, Apr. 16

Class Period Finding Notes
Eval Quiz: PS6

Wednesday, Apr. 18

Class Period Finding Notes
Due PS7
Assign PS8, (tex) (due Apr. 25)

Friday, Apr. 20

Spring Student Symposium
Due PS7 Reflection/Self Grade (due 1:45 on Saturday)
Due PS8 Pre-Quiz (due 1:45 on Saturday)

Monday, Apr. 23

Class Period Finding
Eval Quiz PS7

Wednesday, Apr. 25

Class Period Finding
Due PS8
Assign PS9 (tex) (due May 2)

Friday, Apr. 27

Class Period Finding Notes (full analysis)
Due PS8 Reflection/Self Grade
Due PS9 Pre-Quiz

Monday, Apr. 30

Class Period Finding Complexity, Error Correction Notes (complexity), Notes (EC)
Eval Quiz: PS8

Wednesday, May 2

Class Error Correction Notes
Due PS9
Assign PS10, (tex) (due May 9)
Eval Pre-Quiz

Friday, May 4

Class Error Correction Notes
Due PS9 Reflection/Self Grade

Monday, May 7

Class Error Correction Notes
Eval Quiz: PS9

Wednesday, May 9

Class Grover Search Notes
Due PS10

Friday, May 11

Class Reflections and Evaluations Announcements
Due PS10 Reflection/Self Grade
Due Overall Reflection/Self Grade

Monday, May 14

Class Review Notes, Worksheet
Eval Quiz: PS10


Prof. Shelby Kimmel

Shelby Kimmel Headshot
Office: MBH 635
Office Hours:
  • Drop-in: Mon: 11:15-12:15 and 3-4; Wed: 3-4;
  • By appointment: Thursday 9am-noon + other times. Click Here to book at least 12 hours in advance.
  • If you would like to schedule something outside of these hours e-mail me, and I will do my best to find time to meet with you.

Email: skimmel [at] middlebury [dot] edu