Syllabus
- Logistics
- Learning Goals
- Environment
- Learning
- Honor Code
- (un)Grading
- Class Participation
- Assessments
- Late Submissions
- Texts
Logistics
- Time and Location
-
- All students:
- Tu/Th 11:10 am-12:25 pm EDT in 75 Shannon, Room 203. or
Zoom Class Link - CW students:
- Fri 1:50-2:40 pm EDT in HLD 103
- 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
Please attend office hours with specific questions, comments, or concerns
- Drop-in: M&W: 11:30-12:30, F: 9-10
- 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.
- I will keep the Calendar up-to-date with assignments and lecture notes.
- Canvas Site
- Canvas Site
- Department Wiki
- Department Wiki
- Panopto
- Panopto
Learning Goals
All Students
- Explain the connections between complexity classes and the physical world, and how our understanding of one informs our understanding of the other.
- Describe some of the open questions in computational complexity, and explain why this shows how little we understand of what computers can do.
- For the complexity classes P, NP, EXP, NEXP, PSPACE, L, NL, BPP, BQP, PH, MIP, and possibly others, be able to
- Define the class
- Describe the significance of class
- Prove a language is in the class
- Prove a language is hard for the class
- Describe and prove relationships between complexity classes using techniques such as diagonalization.
CW students
- Write proofs that
- Are easy to follow
- Are logically correct
- Use mathematical notation appropriately
- Use English language to clearly convey precise mathematical ideas
- Contain an appropriate level of detail based on the situation and audience.
- Describe complex computer science and mathematical ideas to a non-expert audience in a relatable and understandable way
- Identify strengths and weaknesses in your own writing and other's, and revise effectively.
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, color, ethnicity, national origin, accent, religion, sexual orientation, gender identity/expression, body size/type, ability status, socioeconomic status, age, or veteran status. 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.
Names/Pronouns
I will use the gender pronoun and name you go by, and I expect you to use the names and pronouns your classmates go by. I will ask for this information in a form the first week of class, but I understand that some students may be in the process of exploring their gender identity, may not feel comfortable sharing a gender pronoun, or may not go by gender pronouns; you can let me know if you do not want to share a gender pronoun.
Academic Accommodations
Students with documented disabilities who believe that they may need accommodations 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. Assistance is available to eligible students through the Disability Resource Center (formerly called Student Accessibility Services). Please contact one of the ADA Coordinators for more information: Jodi Litchfield, who can be reached at litchfie@middlebury.edu or 802-443-5936, or Peter Ploegman, who can be reached at pploegman@middlebury.edu or 802-443-2382. 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 must acknowledge your collaborators, and write up your solutions on your own, using your own words.
- First attempts at exams, quizzes, and proofs must be entirely your own work, and should be completed only with the resources specified. Revisions can be discussed 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 a “grade” for any single assignment. Instead, you will propose a final grade to me based on a portfolio of your work that demonstrates your learning throughout 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'm taking this approach in order to remove the extrinsic motivator of grades, which have been consistently shown to hamper learning.
While there will not be grades, there will be lots of feedback, evaluation, assessment, and revision. These activites will help you to maximize your learning. At the beginning of the semester you will create an individual learning plan, and you will meet with Prof. Kimmel during the semester to discuss your progress.
As this is a 400 level elective, and a CW class for some of you, 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.
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
- Edit or comment on the Course Notes (if you edit, please also make a comment next to your edits so I can more easily track changes)
- Participate in a regular study group
- Use the Perusall app to read/annotate the textbook.
- 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.
If you want additional practice beyond the problem set, see these textbooks for additional problems, as well as the additional exercises in our text.
Each problem set has 4 parts. Please see these instructions for how to submit the Rough Draft, Problem Set, and Self-Assessment.
- 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.
- Reflection: Thinking critically about your learning process improves your learning. Thus, each week, you should submit a reflection to Canvas, using this prompt as a starting point.
Assessments
Weekly Assessments
Non-CW Students
There will be a weekly quiz for you and me to assess your learning. Quizzes will always consist of one problem from the most recent problem set, and may contain a problem related to previous material. Quizzes will be taken through Canvas. All quizzes must be completed individually but are open personal notes, course notes, and textbook. (Not open internet.)
I will give you feedback on your quiz responses. You are expected to retake quizzes until you have sufficiently demonstrated an understanding of the material. You can retake quizzes an unlimited number of times. I encourage you to discuss any questions about the material with me, and you are also welcome to discuss 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.
CW Students
You will write a polished draft of one proof from the problem set each week. Sometimes I will designate which proof should be chosen, and other times, you can choose from among those on the problem set. You will get feedback on your draft from a peer and from me, and should submit a revised version the following week based on this feedback, (and possibly additional revisions, if necessary), to demonstrate full understanding.
Major Assessments
Non-CW Students
There will be a 24 hour self-scheduled midterm and end-of-term exam. (By 24 hours, I do not expect you to work on it for 24 hours, but I think these problems benefit from time spent mulling.) Both exams should be completed individually, but are open course notes and textbook. You may revise the midterm.
CW Students
There are two longer writing assignments. See the CW tab for more info.
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
We will be following the textbook Computational Complexity: A Modern Approach by Arora and Boaz. A draft version will be available via Perusall (link also available via Canvas), or if you like having a physical textbook, you can get it from the usual places.
It can be helpful to see alternate explanations of these topics, or additional practice problems. Here are a few other texts/lecture notes/videos courses websites for this purpose:
- Computational Complexity: A Conceptual Perspective
- If you like watching videos, these video lectures from Carnegie Mellon cover a lot of the material that we will be learning.
- Luca Trevisan's lecture notes
- Muli Safra's lecture notes