EECS 4115/5115, Fall 2025

EECS 4115/5115
Computational Complexity
Fall 2025

Web page contents:

General Information
Announcements
Important Dates
Resources
Reading
Course Handouts

General Information

Instructor: Eric Ruppert
Email: eruppert (a) yorku.ca (Please use a York email account when sending me email, and start your subject line with [4115] or [5115].)
Lectures: Mondays and Wednesdays from 11:30 to 13:00 in room 107 of the Life Sciences Building.
Professor's Office Hours: Mondays 16:00-17:00 and Thursdays 14:30-15:30 in room 3052 of the Lassonde building. If you want to see me at another time, drop by or send me email to arrange an appointment.

Course Overview

This course is intended to introduce students to the fundamentals of complexity theory, which is an important part of the foundations of the entire field of computer science.

We'll look at models of computers (e.g. Turing machines) and see how they are used to measure the resources (time, space and others) required to solve problems. If we pick a model and a bound on one or more resources, we can define a complexity class (e.g. P, NP, NC) to be the set of problems that can be solved in that model with the given resources. These classes give us a systematic way of understanding how efficiently problems can be solved.

In studying complexity theory, we learn about techniques that can be used to design efficient algorithms. We also learn how to identify those problems for which efficient solutions do not exist or are unlikely to exist. Such information is useful, because it often suggests how to modify our approach when faced with an intractable problem: for example, we might look for approximate solutions instead of exact solutions, or try to solve a special case of the problem that is sufficient for our needs.

This course assumes knowledge of the material in CSE2001 and CSE3101, and you should be comfortable reading and writing mathematical proofs.

Here is a tentative list of topics:

Marking scheme

Component EECS4115 EECS5115
Homework exercises 15% 15%
Test 1 15% 15%
Test 2 15% 15%
Test 3 15% 15%
Project (EECS5115 only) 0% 10%
Final exam 40% 30%

Academic Honesty

The key to academic honesty for this course is simply this: Solutions that you submit should be your own work.

Although you may discuss the general approach to solving an assignment problem with other people, you should not discuss the solution in detail. You must not take any written notes away from such a discussion. Also, you must list on the cover page of your solutions any people with whom you have discussed the problems. The solutions you hand in should be your own work. While writing them, you may use course materials and your own lecture notes but no other outside sources.

It is not acceptable to try to find the answer to a homework question on the web or using AI tools (such as LLM-based software), put it in your own words and submit it. You may learn a little by doing this, but you will learn much, much more by working on the problem yourself, and the purpose of this course is to help you learn how to think about the complexity of solving problems on your own. Furthermore, AI tools and the web will not be available during your exam (or during your job interviews), so you should learn to solve problems yourself, instead of relying on others to do your thinking for you.

As time runs out, students are sometimes tempted to get help from other students on assignments in a way that would violate the preceding policy on academic honesty. DO NOT DO THIS! If you do, I will refer the case to the Dean's Office, which is unpleasant for everyone. The assignments are worth very little, so it is not worth risking a sizable punishment. (Furthermore, I have noticed that the students who cheat on the homework assignments almost always fail the tests and exams, so even if I do not catch you cheating, you will likely fail the course if you do not do your own work on the homework assignments.)

It is important that you look at the senate policy on academic honesty and the faculty's academic integrity resources.

Announcements

Important Dates

(Information will be added to this table thoughout the term.)

First class Wednesday, September 3
Test 1 Monday, September 29
Reading Week (no classes) October 13-17
Test 2 Wednesday, October 29
Last date to drop course without receiving a gradeTuesday, November 4
Test 3 Monday, November 24
Last class Monday, December 1
Last date to withdraw from course (receiving W on transcript)Tuesday, December 2
Exam period December 4-19

References

Course Textbook

[Sip] Michael Sipser. Introduction to the Theory of Computation, 3rd edition. Cengage Learning, 2013.
We will be focusing on Part III of the book.
The textbook website has lists of errata.
Cost: Can be purchased ($236) or rented ($78) from Cengage, or for about $225 at York Bookstore, or $162 at Amazon (as of Aug 21); used copies available at abebooks.com (but look for 3rd edition). A copy is on reserve at Steacie Library.

Other Books

Original Articles

Resources for Special Topics

Blogs

More advanced complexity resources

Reading

This reading list may be adjusted somewhat during the term.
DateSectionSuggested Exercises
Sep 3Review chapter 0 and 30.1-0.8, 3.1-3.2, 3.7, 3.8, 3.10-3.13
Sep 87.1, review 3.1, notes on RAM model7.1, 7.2, 3.8
Sep 10review 3.23.12, 3.13
Sep 10notes on PalindromesShow every single-tape TM that decides {0x1y2x : x,y ≥ 0} takes Ω(n log n) steps
Sep 157.27.3-7.6, 7.8, 7.9, 7.13, 7.14, 7.15
Sep 177.37.7, 7.12, 7.16
Sep 247.47.18, 7.20-7.27
Oct 67.57.17, 7.28, 7.30-7.33, 7.35, 7.38, 7.40-7.41
Oct 20Optional: The Status of the P Versus NP Problem (from CACM, Sep 2009) and/or
P vs. NP survey results (from SIGACT News, Mar 2019; starts on p.4)
Oct 2710.1
Nov 38.0-8.1, 8.48.1, 8.4, 8.7, 8.9, 8.17, 8.20, 8.22
Nov 58.5, 8.68.25,8.29,8.32
Nov 128.2, 8.38.3,8.4,8.6,8.11,8.15
Nov 179.1 (to page 371)9.1-9.3,9.12,9.13
Nov 26p.396-398, Defn 10.1010.7, 10.11, 10.19, 10.20, 10.22
NOTE: Exercise numbers are from the third edition of the textbook.

Course Handouts

Updated October 3, 2025