Winter


Lecture: TR 9:40-11:00am (Ryerson 276)
Instructor: Prof. Franklin, teaching webpage, research webpage
TAs: David Maldonado, Chris Kang
Office Hours Schedule (TBA)

Goals

Welcome! In CS 22880, we delve into the interdisciplinary endeavor of quantum computing. The course is roughly split into three parts. The first part will focus on developing intuition about the major benefits and limits that are imposed on quantum computing by the quantum phenomena as well as getting comfortable with how basic quantum operations behave as well as playing around with Qiskit. The second part will delve into building from those basic operations, more ways of using those operations (in communication and algorithms), more advanced mathematics operations, and some optimization. The third part will focus on conveying what you have learned to broad audiences in a self-driven culminating project. The specific goals of the course are:
  • Learn the intuition behind the quantum mechanics principles that affect quantum computing.
  • Learn basic quantum computing operations
  • Learn the mathematics necessary to calculate quantum operations
  • Learn how individual quantum operations are combined to create higher-level operations and algorithms
  • Learn how to program in Qiskit, a quantum programming language

Lectures are in person, though there are pre-recorded videos from the pandemic offering of the course for some of the course materials (the first two parts). During class, I will deliver the content in the videos live. The goal is to allow you to ask questions live and check your understanding with a live instructor able to help in the moment. Attendance is expected but not required (attendance won't be taken, but you are responsible for all content that is discussed in class, even if it is not in a pre-recorded video).

There are three types of assignments.
  • Online "written" assignments that are a combination of conceptual questions and hand calculations of quantum operations.
  • Qiskit programming creating code that could run on an actual quantum computer.
  • Python programming that is creating simulations of quantum operations, starting with a single qubit and building up to multiple qubit operations.
  • Creative final project

Getting Help

We will use Piazza for questions.

If you have questions about the course, and those questions are in a sense impersonal — that is, they are about course material or course logistics — we ask that you post those questions publicly, rather than contacting any of the staff members directly. This ensures you will receive the fastest, most consistent possible response from the staff. Since students usually have common questions, posting public questions is also very efficient for your classmates as well. As yet another advantage, it avoids duplication of work on the part of the staff.

If you have a specific question about your implementation - if any code or partial solution is involved - then ask a private question, which is invisible to your classmates.

In general, there should be no reason for personal email unless it is for extenuating circumstances.

Lab Sessions

Lab sessions are not strictly mandatory, but they do provide a potential boost to your grade by giving you guaranteed points. That is, if you were to attend all 9 labs, you would have 9% of your grade in full. If you do not, then that 9% is filled with your average project grade.

Lab sessions are held in the Computer Science Instructional Laboratory (also known as the CSIL); it is located on the first floor of Crerar Library.

At the beginning of the session, the TA will provide an introduction to the lab for that week. For the first several sessions, there is a Qiskit activity for you to complete. Show the complete lab to your TA to check it off, and that will give you credit for attending that week. On weeks without a structured activity, then you will start and work on your assigned project. You will get credit for attending if you are actively working on the project for an hour.

The purpose of lab is to provide you working time with a helper present so that you can make progress and get some momentum to help you complete the assignment through the week. This makes it easier to stave off procrastitation if that is your inclination (my research experiments have shown a negative correlation between procrastination and grades).

Resources

Textbooks:
Recommended: Q is for Quantum, Terry Rudolph
Dancing with Qubits, Robert S. Sutor

Grading / Assignments

All assignments (short answer, Python, Qiskit) will be submitted in Gradescope.

Each student’s final grade will be computed according to the following formula:

  • Weekly homework problems 20%
  • Programming assignments 26%-35%, (depending on how many labs you attend)
  • Labs 0-9% (depending on how many you attend)
  • midterm 20%,
  • final 25%
What precisely constitutes an A, B, etc. will be determined by the collective performance of the class. You are guaranteed not to get lower than straight scale (A>=93%, A- (90->93), B+ (87->90), etc.).

Late Policy

You may take a standard 10% off for the first 24 hours and 20% off for the second 24 hours. This allows for gentle degradation - if you are late for just one or two assignments, it will have minimal impact on your grade, so no special exception is necessary. If you need more than two days, then it must be because of an extended situation that was already present. Therefore, late requests must be made prior to the deadline, and they must be accompanied by the full reason and a summary of what you accomplished prior to the deadline. The expectation is that you work the entire week on the assignment, not that you wait until Sunday to begin what is due on Monday. Therefore, extensions will only be given to students who have turned in partially-completed, partially-working material prior to the deadline (unless your extenuating circumstances consumed the entire week of the assignment).

Regrade requests

Regrade requests for weekly assignments and exams must be submitted within 5 working days (one week) of when you received the grade / feedback.

Academic Honesty

In this course, as in all your courses, you must adhere to college-wide honesty guidelines as set forth at http://college.uchicago.edu/ policies-regulations/academic-integrity-student-conduct. The college's rules have the final say in all cases. Our own paraphrase is as follows:
    Never copy work from any other source and submit it as your own. Never allow your work to be copied or seen by another student. Never submit work largely identical to another student's. Never look at someone's working solution in order to solve your error. Document all collaboration. Cite your sources.

Any student who is under suspicion of having violated academic honesty rules will not be allowed to withdraw from this course.

Withdraws, Pass/Fail Requests

All requests for Pass/Fail must be received before the final exam. Note that if you take this course P/F, in normal years, you may not use it to satisfy requirements for a computer science major or minor. However, due to the pandemic, computer science majors are allowed to use a limited number of P/F courses towards their degree. You will need to check with your major advisor if you are not sure whether you can count a P/F grade towards your degree. To pass, you must earn a C- or better in the class.

Withdraw requests are now handled by your college advisor, not the instructor nor the major advisor. Requests must occur by 5:00pm on Monday of the ninth week of instruction.