CS4510 Automata and Complexity

Summer 2025 9:30-11:40AM MW CCB 101

Flammarion

People

Course Information

This course answers two main questions:

The first question is the study of the area of Computability theory. Most of its questions are solved, which is what makes this subject fun. We are concerned with such extremal, almost philosophical questions. What even is computation? What even is a computer? Are all problems solvable? We will explore several models of computation and explore their relative power, and weaknesses.

The second question is the study of Complexity theory. Most of its questions are unsolved. This subject does not have a happy ending (and perhaps won’t, in our lifetimes) but this contrast is what makes it interesting. We may not know how to solve certain questions, but ironically, we know a lot about how hard these questions are.

I like to think of this course as a finale to your CS degree. It is simultaneously the most important and least important course you will take. It is the least important as it doesn’t develop any single technical skill. It is the most important, as it develops your ability to conceptualize and theorize. This is the course where you will learn why computer science gets to be called a science. It puts the rest of your degree into context.

This course has a lot of pre-reqs, some of which I would disagree should be a requirement. All you really need is good proof skills, like those found CS2050. If you think you might be rusty, please refresh chapter zero of the Sipser book.

The book for the course is Introduction to the Theory of Computation by Michael Sipser. It is an excellent textbook, can’t count how many times I’ve read it. The notes and lectures for the course are the authoritative reference, but it is expected you follow along with Sipser’s book. Later on, I may reference the Arora-Barak and Li-Vitanyi books.

Evaluation

In order to accomodate students who wish to take this course fully remote, I have decided to make all assignments take home. The tradeoff here is that the difficulty will increase. You will have three exams. They are open note and open book, but not open internet. You will also have ten problem sets. Your tentative exam dates are:

Jun 05 Exam 1

Jul 01 Exam 2

Jul 31 Exam 3

Schedule

This is subject to change as I realize what takes more or less time.

Day Title
May 12 01A Introduction
May 12 01B Deterministic Finite Automata
May 14 02A Nondeterminism
May 14 02B Powerset Construction
May 19 03A Regular Expressions
May 19 03B The Pumping Lemma
May 21 04A Context Free Grammars
May 21 04B Closure
May 28 05A Syntactic Structures
May 28 05B Chomsky Normal Form
Jun 02 06A Pushdown Automata
Jun 02 06B Each CFG has a PDA
Jun 04 07A Each PDA has a CFG
Jun 04 07B Non Context-Free Languages
Jun 09 08A Turing Machines
Jun 09 08B The Church-Turing Thesis slides, required reading1, required reading 2, required reading 3
Jun 11 09A Simulation evidence
Jun 11 09B Turing-Completeness
Jun 16 10A Countability
Jun 16 10B Diagonalization
Jun 18 11A Foundations of Mathematics
Jun 18 11B Russell’s Paradox
Jun 23 12A Godel Incompleteness
Jun 23 12B The Halting Problem
Jun 25 13A The Art of Reduction
Jun 25 13B Rice’s Theorem and PCP
Jun 30 14A Tarskian Theory of Truth
Jun 30 14B Kolmogorov Complexity
Jul 02 15A P
Jul 02 15B NP
Jul 07 16A Cook-Levin Theorem
Jul 07 16B Ladner’s Theorem
Jul 09 17A Savitch’s Theorem
Jul 09 17B PSPACE-completeness
Jul 14 18A Hierarchy Theorems
Jul 14 18B The Relativization Barrier
Jul 16 19A Circuit Complexity
Jul 16 19B Circuit Lower Bounds
Jul 21 20A The Polynomial Hierarchy
Jul 21 20B Karp-Lipton Theorem

Other Resources

Besides the notes we will publish this semester, I recommend you use the following two references:

Integrity Statement

Submission of any work not your own will result on a zero on the assignment to a report to OSI, which may incur further sanctions.

Statement of Intent for Classroom Inclusivity

As a member of the Georgia Tech community, I am committed to creating a learning environment in which all of my students feel safe and included. Because we are individuals with varying needs, I am reliant on your feedback to achieve this goal. To that end, I invite you to enter into dialogue with me about the things I can stop, start, and continue doing to make my classroom an environment in which every student feels valued and can engage actively in our learning community.