CS 254: Computability and Complexity

Winter 2018

[ 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 Theory
Week 1:
finite automata
1. 01/03 W

Introduction; an undecidable problem

Sipser 0.1–0.4

Out: ps01 (on Moodle)

2. 01/05 F

deterministic finite automata

Sipser 1.1a

Out: ps02

Week 2:
nondeterminism
3. 01/08 M

regular operations

Sipser 1.1b

4. 01/10 W

nondeterministic finite automata

Sipser 1.2a

5. 01/12 F

DFA-NFA equivalence

Sipser 1.2b

Out: ps03

Week 3:
regular expressions
6. 01/15 M

regular expressions

Sipser 1.3a

7. 01/17 W

DFA-regexp equivalence

Sipser 1.3b

8. 01/19 F

nonregular languages and the pumping lemma

Sipser 1.4

Out: ps04

Week 4:
context-free
languages
9. 01/22 M

context-free grammars

Sipser 2.1

10. 01/24 W

pushdown automata

Sipser 2.2

11. 01/26 F

non-context-free languages

Sipser 2.3

Unit 2: Computability Theory
Week 5:
Turing machines
12. 01/29 M

Turing machines: computation and examples

Sipser 3.1

Out: ps05

13. 01/31 W

Exam 1

14. 02/02 F

recursive and recursively enumerable languages

Sipser 3.2a

Week 6:
decidability
(mid-term break)

Out: ps06

15. 02/07 W

Turing machines: variants, enumerators

Sipser 3.2b

16. 02/09 F

encoding, halting problem

Sipser 3.3, 4.2

Out: ps07

Week 7:
undecidability
17. 02/12 M

acceptance and emptiness

Sipser 5.1

18. 02/14 W

computability and reducibility

Sipser 5.3

19. 02/16 F

Church–Turing thesis,
computability wrap-up

- Turing-complete:
[ PowerPoint | sed ]

Sipser 4.1

Unit 3: Complexity Theory
Week 8:
P vs. NP
20. 02/19 M

P

Sipser 7.1, 7.2

Out: ps08

21. 02/21 W

Exam 2

22. 02/23 F

NP

Sipser 7.3

Out: ps09

Week 9:
NP-completeness
23. 02/26 M

NP-completeness

Sipser 7.4

24. 02/28 W

An NP-complete problem

Sipser 7.4

25. 03/02 F

More NP-complete problems

Sipser 7.5

Out: ps10

Week 10:
space complexity
26. 03/05 M

Even more NP-complete problems

Sipser 7.5

27. 03/07 W

SPACE

Sipser 8.1–8.3

28. 03/09 F

(catch-up/wrap-up)