CMSC 28100: Introduction to Complexity Theory (Spring 2025)

Term: Spring 2025 at the University of Chicago

Instructor: William Hoza (williamhoza@uchicago.edu)

TAs: Zelin Lv and Yakov Shalunov

Meetings: Mondays, Wednesdays, and Fridays | 2:30pm - 3:20pm | STU 105

Textbook: Introduction to the Theory of Computing, 3rd Edition by Michael Sipser. ISBN-13: 9780357670583.


Jump to: (loading...)


    Course Description

    In this course, we will study the mathematical and philosophical foundations of computer science. Our central mission will be to understand which problems can be solved through computation, focusing especially on impossibility proofs. In the first part of the course, we will develop techniques for proving that certain problems, such as the "halting problem," cannot be solved by any algorithm whatsoever. In the second part of the course, we will study computation in a world where resources, such as time and space (memory), are limited. We will prove that certain problems are "intractable," meaning that they cannot be solved by polynomial-time algorithms, and we will develop the theory of "NP-completeness," which enables us to identify many important problems that are likely to be intractable. If all goes well, at the end of the course, you will be able to:


    Office Hours

    By default, the office hours are as follows.

    Some weeks will have modified hours, which will be posted on Ed.


    Course Timeline

    (The information below will be updated throughout the quarter.)

    Monday 3/24: Course logistics; Turing machines; alphabets; strings; halting; looping; configurations.
    Chapter 0 and Sections 3.0-3.1.
    Wednesday 3/26: Computation histories; time; space; deciding a language; encoding objects as strings.
    None.
    Friday 3/28: Promise problems; code as data; SELF-REJECTORS is undecidable; the Church-Turing thesis; left-right-stationary Turing machines.
    Here is the self-rejecting Python script example: word-count.py
    Sections 3.2 (you can skip the part about nondeterminism) and 3.3.
    Monday 3/31: Multi-tape Turing machines.
    None.
    Exercises 1-4 are due on Tuesday 4/1
    Wednesday 4/2: Universal Turing machines; reductions; REJECT is undecidable.
    Sections 4.0 and 4.2.
    Friday 4/4: Post's correspondence problem; MPCP is undecidable.
    Sections 5.0-5.2. (You can skip Theorems 5.3 and 5.13.)
    Monday 4/7: PCP is undecidable; the halting problem is undecidable; hypercomputers and the physical Church-Turing thesis; other interesting examples of undecidable languages.
    Section 5.3.
    Section 6.3.
    Exercises 5-8 are due on Tuesday 4/8
    Wednesday 4/9: The clique problem; time complexity; big-O and other asymptotic notation; exponentials grow faster than polynomials.
    Pages 273-281, i.e., the beginning of Chapter 7.
    Here are the files for the clique example: clique.py graph1.json graph2.json 1988-senate-agreement-graph.json
    Friday 4/11: The complexity class P; dynamic programming; efficiency of simulating multi-tape Turing machines using single-tape Turing machines; the word RAM model.
    Page 282, the top of page 283, and Section 7.2, skipping Theorem 7.16. (I.e., the remainder of Sections 7.1 and 7.2, skipping nondeterministic TMs and context-free languages.)
    Monday 4/14: The time hierarchy theorem.
    (Optional) Page 364 to the middle of page 371, i.e., the first part of Section 9.1.
    Exercises 9-12 are due on Tuesday 4/15
    Wednesday 4/16: The extended Church-Turing thesis; communication protocols; the rectangle lemma; the deterministic communication complexity of equality.
    None.
    Friday 4/18: A randomized communication protocol for equality; randomized Turing machines; the complexity class BPP; arithmetic formulas; the polynomial identity testing problem.
    Pages 396-398, i.e., the beginning of Section 10.2.
    Monday 4/21: Polynomial identity testing is in BPP; the amplification lemma.
    Page 407. (Pretend that Lemma 10.15 says "Let $\mathcal{F}$ be a finite set of real numbers" instead of "Let $\mathcal{F}$ be a finite field.")
    All of Section 10.2.
    Wednesday 4/23: Midterm exam.
    None.
    None.
    Friday 4/25:
    Monday 4/28:
    Exercises 13-16 are due on Tuesday 4/29
    Wednesday 4/30:
    Friday 5/2:
    Monday 5/5:
    Exercises 17-20 are due on Tuesday 5/6
    Wednesday 5/7:
    Friday 5/9 [Zoom meeting]:
    Monday 5/12:
    Exercises 21-24 are due on Tuesday 5/13
    Wednesday 5/14:
    Friday 5/16:
    Monday 5/19:
    Exercises 25-28 are due on Tuesday 5/20
    Wednesday 5/21:
    Friday 5/23: Course summary and review.
    Wednesday 5/28, 3pm - 5pm: Final exam.

    Homework Policies

    I will assign 28 exercises throughout the quarter. Submit your solutions through Gradescope.

    Collaboration

    You are encouraged to collaborate with your classmates on exercises, but you must adhere to the following rules.

    Permitted Resources

    In addition to discussions with me, discussions with TAs, and discussions with classmates as discussed above, you may also use the course textbook, any slides or notes posted in the "Course Timeline" section of this webpage, and Wikipedia. You may not use any other resources. Some examples of prohibited resources are ChatGPT and Stack Exchange.


    Grading Policies

    Numeric Grades

    Your overall numeric grade in this course will be calculated using the formula $$ G = 0.65 \cdot A + 0.35 \cdot B + 0.3 \cdot B^6 \cdot \max(B - A, 0). $$ In this formula, $B$ is your score on the final exam, and $A$ is the weighted average of the midterm exam (35%), exercises 1-4 (5%), and exercises 5-28 (60%). The values $A$ and $B$ are both normalized so be between 0 and 1.

    Here are a few hypothetical examples.

    To a significant extent, a good performance on the midterm exam safeguards your grade against any challenges you might face later in the quarter. Doing well on the midterm exam means that even if the final exam goes poorly, you will still come out okay. (Compare Students 1 and 2.) I hope that this motivates you to study for the midterm exam. I also hope it helps you to relax and not feel too nervous going into the final exam.

    At the same time, even if you do poorly on the midterm exam, you can still succeed in this course. (Consider Student 3.) I hope that this helps you to relax and not feel too nervous going into the midterm exam. I also hope it motivates you to redouble your efforts if the midterm exam goes poorly.

    Letter Grades

    The letter grade thresholds will be determined at the end of the quarter. To get a rough sense, you can click here to see the thresholds from previous iterations of this course.

    Late Work

    You are strongly encouraged to complete each exercise within the allotted time. If you don't master the subject matter of a particular exercise by the deadline, then you might have trouble understanding the topics we discuss in the following classes. Furthermore, if you submit your solutions late, then it might not be possible to give you timely feedback. That being said, I understand that occasionally missing a deadline is inevitable. Late work will ordinarily receive partial credit based on the following principles.

    The score you see in Gradescope represents your score before applying the lateness penalty, i.e., it is the score that you would have received if you had submitted your solution on time. Lateness penalties will only be recorded in Canvas, possibly after a significant delay.

    Extensions

    Please get in touch with me if you are having trouble keeping up with the course schedule for any reason. I may be willing to give you an extension, or I may be willing to give you partial credit for late work in excess of what the principles above stipulate. To highlight one example, I am happy to grant an extension for a religious holiday if you give me sufficient notice that you will be observing that holiday.

    Regrade Requests

    If you think something was graded incorrectly, please submit a regrade request through Gradescope. Regrade requests for homework exercises will ordinarily be handled by a TA; you may contact me if you wish to "appeal" their decision. All regrade requests for exams will be handled by me.


    Academic Honesty

    If you ever find yourself in any kind of irregular / problematic / questionable situation related to academic honesty in this course, send me an email and explain what happened.

    For example, you should send me an email if you realize that you accidentally used a prohibited resource while you were working on the homework. As another example, you should send me an email if you cheated on an exam and now you regret it.

    I encourage you to follow this simple protocol in every course you take. Depending on the circumstances, you might possibly face some consequences such as a lowered score, but don't let this deter you. A clean conscience is worth more than any grade.


    Inclusion and Accessibility

    This course, like every course you take, ought to be an enjoyable and enriching experience. You have a right to be treated with respect and a responsibility to treat others with respect. I want all students to be able to fully participate in this course. Let me know if you need an accommodation for any reason, so we can explore possible solutions together. If applicable, please follow the protocols established by UChicago Student Disability Services.

    To highlight a few facets of these topics: