Syllabus
- Logistics
- Learning Goals
- Environment
- Learning
- Honor Code
- (un)Grading
- Class Participation
- Assessments
- Late Submissions
- Texts
Logistics
- Time and Location
-
- Tu/Th 9:35 am-10:50 am EDT
Zoom Class Link
- Tu/Th 9:35 am-10:50 am EDT
- Faculty Info
- Shelby Kimmel
Please call me "Professor Kimmel" or "Professor"
Pronouns: she/her
Office: 75 Shannon, Room 210 (but I will not be holding any in-person meetings here)
skimmel [at] middlebury (dot) edu - Office Hours
- Location: Zoom Office Hours Link
- Drop-in: Wed: 9:30-10:00 am, 11-12 am, Thurs: 3-4 pm , 9-9:30pm.
- Individual Appointment: go/KimmelHours. (Use office hours Zoom link, not google hangouts link.)
- If these options don't work, please send me an e-mail.
- Communication
-
- I will e-mail you for urgent matters.
- You can always e-mail me, but I will not answer problem set questions via e-mail, except for logistical or typo questions. Instead, come to office hours or schedule an appointment.
- I will keep the Calendar up-to-date with assignments and lecture notes.
- Peer Tutors
- CS Tutoring Site: Sundays 7-9 ET, Zoom Link
- OneNote
- OneNote
- Canvas Site
- Canvas Site
- Class Team
- Link to Microsoft Team
- Videos:
- Panopto, Google Drive
- Department Wiki
- Department Wiki
Learning Goals
- Use tools of linear algebra and the standard terminology of quantum computing to effectively describe and analyze quantum algorithms and protocols for cryptography, game-playing, disturbance-free detection, factoring, searching, and error correction.
- Describe properties of quantum mechanics (like entanglement, measurement, no-cloning, superposition, negative and complex phases), and build intuition as to why these properties lead to advantages over standard computation in computing and information tasks.
- Appreciate the limits of quantum computation and recognize when hype is used to minimize those limitations.
- (Optional) Learn how to code with a quantum programming language and use it to simulate a quantum algorithm on a small input.
- Develop strategies to become a better learner and collaborator.
Environment
It is important to me to create an inclusive learning environment where diversity and individual differences are respected and recognized as a source of strength. However, this is by nature a team effort, and I expect you to join me in fostering such an environment.
You deserve a learning environment free of comments or assumptions that are based on race, ethnicity, national origin, accent, religion, sexual orientation, gender identity/expression, body size/type, disability, socioeconomic status, age, or any other part of your identity or perceived identity. I am continually working to recognize and unlearn my own biases and to keep them from causing harm. I expect you to do the same, and to be willing to have a dialog about these biases as needed.
If you experience or witness any behavior that opposes the creation of an inclusive learning space, it would be helpful for me to know so that I can address it, but I recognize that this is additional work that may be difficult. If you are comfortable reporting such incidents, there are a few ways you can do so:
- Talk to me or e-mail me
- Report it in our anonymous CS departmental climate feedback form
- Fill out a Bias Incident Report which goes to the Middlebury Community Bias Response Team
You belong in this class and in the computer science department. Thank you for being here and for contributing to this course.
Office Hours
Office hours are a time for you to come and talk to me. For drop-in hours, you do not need to have an appointment - just join the zoom call. During office hours, you can ask me for help related to the course or assignments, or we can chat about how the course is relating to your life more broadly, or we can discuss anything else you want to talk about. You do not have to have a question to come to office hours - you can just pop-in for a quick hello, or listen to other students' questions. Here are some suggestions for what to talk about at office hours if you don't know where to start, or would like to expand your office hours conversations. If you have a conflict with a drop-in session, or if you have something you want to discuss privately, you can schedule an appointment at go/KimmelHours, or e-mail me with alternative times in order to set up an appointment. I look forward to meeting with you!
Names/Pronouns
I will use the name you go by, and pronouns if used, and I expect you to use the names and pronouns your classmates go by.
Academic Accommodations
Students who have Letters of Accommodation in this class are encouraged to contact me as early in the semester as possible to ensure that such accommodations are implemented in a timely fashion. For those without Letters of Accommodation, assistance is available to eligible students through the Disability Resource Center. Please contact ADA Coordinators Jodi Litchfield and Peter Ploegman in the DRC at ada@middlebury.edu for more information. All discussions will remain confidential.
Laptop Loaner Program
If you ever find yourself temporarily in need of a laptop, the Computer Science department has 10 rotating Dell laptops available to our students. These come pre-installed with software for most of the courses in the major. They are available to be loaned out short-term or long-term based on your need (as determined by you). Feel free to ask your professor ahead of time if you think you need one for just a class period, or you can send an e-mail to rlichenstein [at] middlebury.edu directly.
On Long-Term Use: College policy has changed recently to include the expectation that every student have a laptop available. The college provides laptops to those who need them where “need” is based on Student Financial Services calculations. If you anticipate needing a laptop for the whole term, we encourage you to inquire with Student Financial Services and the library first due to our smaller pool of equipment. However, our department commits to meeting the needs of every student, so do not be afraid to reach out if you believe you need one of our laptops for any length of time.
Title IX
You deserve a community free from discrimination, sexual harassment, sexual assault, domestic violence, dating violence, and stalking. If you experience or know of a Title IX violation, you have many options for confidential support and/or to report your experience. At go/titleIX you can read more about how to get help and support. Note that I am a mandatory (non-confidential) reporter.
Learning
Learning happens when you develop new neural pathways. You do this by repeatedly practicing new skills. This takes time, patience, and perseverance. My role is to facilitate your learning by providing guided practice with feedback, and to help you structure the pace of your learning.
Based on your past learning experiences, you may already have the neural pathways in place to quickly learn certain topics, while you may have to work harder on others. This has nothing to do with your ability to learn this material. You all have the capacity, with sufficient practice, to rewire your brains to become experts in this subject.
Honor Code
All work you turn in should be your own, but collaboration is encouraged. Please adhere to the following guidelines:
- For problem sets, you can work with collaborators, but write up your solutions on your own, using your own words.
- First attempts at exams and quizzes must be entirely your own work, and should be completed only with the resources specified. Revisions can be discussed at a conceptual level with a peer or with me, after both students have completed the exam/quiz in question. Again, the actual revision should be completed on your own and in your own words.
(un)Grading
You will not receive grades for any assignments. Instead, I will provide you with written feedback and assessment and opportunities to self-evaluate and revise your work. I'm taking this approach in order to remove the extrinsic motivator of grades, which have been consistently shown to hamper learning, and which are frequently inequitable.
At the beginning of the semester, you will create an individual learning plan that includes your own goals in addition to mine. You will propose a final grade to me based on a portfolio of your work that demonstrates your achievement towards these goals the semester. While I reserve the right to reject the grade you propose, I trust you that you will engage thoughtfully in this process, and I do not anticipate having to reject your proposals. I will do my best to help you achieve those goals - including modifying aspects of the course in order to help you to be successful.
As this is a 300-level elective, the expectations for the amount and sophistication of the work you complete is high. In exchange for your hard work, I will do my utmost to help each of you achieve your learning goals, and to be transparent about expectations for learning throughout the semester.
Class Participation
Your engagement in class periods will directly affect your learning. If you become distracted, whether through digital devices or analog daydreams, it not only affects your learning but hampers the learning of those around you; it can distract them, or it can make you unprepared to engage with your group. If your behavior is disruptive or distracting to the learning of your peers, I will give you a warning. If it continues, I will ask you to leave.
Group Problem Solving
Problem solving in groups helps you to learn. Explaining your thoughts solidifies your thinking, and hearing other people's perspectives broadens your conceptions. Additionally, working with other students will help you to build a community within the computer science department. Finally, practicing working in groups will help you to become a better team member no matter what you do after Middlebury.
Here are some ideas to participate productively in group work:
- Suggest an idea
- Highlight an idea that someone else suggested
- Solicit feedback on an idea
- Give feedback on an approach
- Write on the (digital) board
- Ask questions: ask what the problem means, ask for clarification for something you don't understand, ask for more time to think
- Restate in your own words something someone else said.
- If you are someone who is uncomfortable with silence and likes to fill it, try to sit in silence to give others a chance to think and speak.
Note that I generally only give you enough time to brainstorm and test a few approaches rather than fully solve a problem, so don't get discouraged if you are not fully able to complete the prompt.
Attendance
Your being in class helps your classmates to learn, just like their presence will help you to learn. If you will miss a class, please let me know as early as possible so that I can provide a good learning environment for your groupmates; you are still responsible for learning the missed material.
Exit Tickets
After each class, you should (within 24 hours) fill out an exit ticket on the course notes with one question or comment you have from the day's class. In order to provide you with the best learning experience possible, I need to know what I have not yet explained well enough. The next class I will fill in any gaps in my explanations.
Choose Your Own Adventure Participation
In your learning plan, you should lay out additional goals for participation in the class. Here are some ideas:
- Come to office hours regularly. (This is my personal favorite because I get to know you better!)
- Ask questions regularly during class
- Participate in a regular study group
- Alert me to typos in any of my materials. Everyone's learning will be hampered if my material is not clear or incorrect because of a typo!
- Have another idea for participation? Please come discuss with me.
Problem Sets
One of the main ways you will learn this material is by working on problem sets. The problem sets provide you with opportunities to practice problem solving, to make mistakes, to build new neural connections, and to self-assess your learning. Many of the concepts in this class will not truly sink in until you try to solve a problem that applies those concepts. I expect you to understand the material at a level that you can independently solve problems and write proofs related to complexity classes.
Each problem set has 3 parts, which are submitted through Canvas:
- Rough draft: To complete the problem set, your brain needs time (and sleep) to brainstorm, consolidate, and synthesize ideas. To get this process started, you should submit a "rough draft" of your problem set. This draft can take any form you choose, but should demonstrate you've spent at least 1-2 hours working on or thinking about the problem set.
- Problem Set: Provides opportunity to practice skills of the course.
- Self-Assessment/my feedback: Helps you to figure out what you understand, and where you need more practice. You should follow these instructions.
If you want additional practice beyond the problem set, see these resources for additional problems.
Reflection
Approximately every two weeks, you will reflect on the progress you have made towards your learning goals, and think critically about which of your learning strategies are working well, and where you can improve. This type of meta-thinking about your learning will make you a better learner and will help you to work productively towards achieving your goals. The reflections are submitted through OneNoteSee intructions. I will give feedback on your reflections providing suggestions and encouragement.
Assessments
Weekly Assessments
There will be a weekly quiz for you and me to assess your learning. Quizzes will usually be one problem similar to problems on the most recent completed problem set. Quizzes will be taken through Canvas. All quizzes must be completed individually but are open personal notes and course notes. (Not open internet.)
I will give you feedback on your quiz responses. You are expected to revise your quizzes until you have sufficiently demonstrated an understanding of the material, if you do not succeed in your first attempt. You can retake quizzes an unlimited number of times, although in practice it usually only requires one retake, and occasionally more. I encourage you to discuss any questions about the material with me, and you are also welcome to discuss big picture ideas with classmates if you have both previously attempted the quiz. However, the quiz should always be taken on your own and your responses should be your own.
Major Assessments
There will be a self-scheduled midterm assessment and end-of-term exam. Both exams should be completed individually on Canvas, but are open personal notes and course notes. (Not open internet.) Like quizzes, you can revise both assessments to demonstrate learning that you might not have demonstrated in the first attempt.
Late Submissions
All assigned work will have deadlines. These are for your benefit to keep you on track to acheive the level of learning I (and hopefully you!) expect in this course. Given that there are no grades, all of these deadlines are necessarily soft/suggested. However, if you do not keep up with these deadlines, you will make it increasingly difficult for yourself to learn all of the material.
Texts
I have not thoroughly vetted the following, but from what I have seen or heard from students, they seem good. If any are particularly helpful or particularly bad, please let me know.
Complex Numbers
- Youtube Channel
- QBraid (see complex numbers notebook in the Quints_course under qbraid-tutorials)
- Microsoft Quantum Katas (complex numbers kata)
- BiliBili (in Mandarin)
Linear Algebra
- 3blue1brown
- QBraid (see linear algebra notebook in the Quints_course under qbraid-tutorials)
- Microsoft Quantum Katas (linear algebra kata)
- BiliBili(in Mandarin)
Quantum Jupyter content/tutorials
- QBraid (I think the Quints_course under qbraid-tutorials is the best.)
- Microsoft Quantum Katas (for some you need to know Q#, Mircosoft's quantum programming language, but earlier Katas help teach)
Learning Quantum Computing with a Programming Language
- qiskit (IBM's quantum programming gramework)
Lecture Notes
E-Books from Library
- GI: Quantum Computing: a gentle introduction by Rieffel and Wolfgang
- FI: A First Introduction to Quantum Computing and Informationby Bernard
- GCE: Quantum Computing Explained by McMahon
Topic | Location(s) |
---|---|
Single Qubits, Cryptography |
|
Multiple Qubits (tensors product and entanglement) |
|
Teleportation |
|
Quantum Gates and Circuits |
|
Deutsch's Algorithm |
|
Period Finding Algorithm |
|
Search |
|
Quantum Error Correction |
|