CS 254: Computability and Complexity

Fall 2017

[ Current Week ]

Basic Information

Course Information

An introduction to the theory of computation. What problems can and cannot be solved efficiently by computers? What problems cannot be solved by computers, period? Topics include formal models of computation, including finite-state automata, pushdown automata, and Turing machines; formal languages, including regular expressions and context-free grammars; computability and uncomputability; and computational complexity, particularly NP-completeness. We will follow the textbook fairly closely (up to Section 8.3, skipping Section 2.4 and Chapter 6).

Homework

Homework will be posted and collected electronically on Moodle.

Solutions must be typeset with LaTeX. Some helpful links:

Calendar

Schedule to be updated throughout the term; topics, readings, and exam dates are tentative and subject to change.

WeekMondayWednesdayFriday
Unit 1: Automata and Languages
Week 1:
finite automata
1. 09/11 M

Introduction; an undecidable problem

Sipser 0.1–0.4

Out: ps01 (on Moodle)

2. 09/13 W

deterministic finite automata

Sipser 1.1a

Out: ps02

3. 09/15 F

regular operations

Sipser 1.1b

Week 2:
regular expressions
4. 09/18 M

nondeterministic finite automata

Sipser 1.2a

5. 09/20 W

DFA-NFA equivalence

Sipser 1.2b

Out: ps03

6. 09/22 F

regular expressions

Sipser 1.3a

Week 3:
context-free
languages
7. 09/25 M

DFA-regexp equivalence

Sipser 1.3b

8. 09/27 W

nonregular languages and the pumping lemma

Sipser 1.4

Out: ps04

9. 09/29 F

context-free grammars

Sipser 2.1

Unit 2: Computability Theory
Week 4:
Turing machines
10. 10/02 M

pushdown automata

Sipser 2.2

11. 10/04 W

non-context-free languages

Sipser 2.3

Out: ps05

12. 10/06 F

Turing machines: computation and examples

Sipser 3.1

Week 5:
decidability
13. 10/09 M

Exam 1

14. 10/11 W

recursive and recursively enumerable languages

Sipser 3.2a

Out: ps06

15. 10/13 F

Turing machines: variants, enumerators

Sipser 3.2b

Week 6:
undecidability
(mid-term break)16. 10/18 W

encoding, halting problem

Sipser 3.3, 4.2

Out: ps07

17. 10/20 F

acceptance and emptiness

Sipser 5.1

Unit 3: Complexity Theory
Week 7:
time complexity
18. 10/23 M

computability and reducibility

Sipser 5.3

19. 10/25 W

Church–Turing thesis,
computability wrap-up;
start complexity theory

- Turing-complete:
[ PowerPoint | sed ]

Sipser 4.1; 7.1

Out: ps08

20. 10/27 F

P

Sipser 7.2

Week 8:
P vs. NP
21. 10/30 M

Exam 2

22. 11/01 W

NP

Sipser 7.3

Out: ps09

23. 11/03 F

NP-completeness

Sipser 7.4

Week 9:
NP-completeness
24. 11/06 M

An NP-complete problem

Sipser 7.4

25. 11/08 W

More NP-complete problems

Sipser 7.5

Out: ps10

26. 11/10 F

Even more NP-complete problems

Sipser 7.5

Week 10:
space complexity
27. 11/13 M

SPACE

Sipser 8.1–8.3

28. 11/15 W

(catch-up/wrap-up)

(reading day)