CS 361
Theory of Computation


This course introduces a formal framework for investigating both the computability and complexity of problems. We study several models of computation including finite automata, regular languages, context-free grammars, and Turing machines. These models provide a mathematical basis for the study of computability theory -- the examination of what problems can be solved and what problems cannot be solved-and the study of complexity theory -- the examination of how efficiently problems can be solved. Topics include the halting problem and the P versus NP problem.

Staff

Instructor

Tom Murtagh
Office: 309 TCL
Phone: 597-2369
Tues.: 1:30-3:30
Weds., Thurs.: 1:30-3:00
Fri.: 1:30-2:30
Thurs.: 10:30-12:00

Teaching Assistants

Name        Hours
Ben Drews Weds.: 8:00 - 10:00PM
Chetan Patel Thurs.: 8:00 - 10:00PM
Joseph Oh Thurs.: 10:00 - 11:00PM

Text

Topics and Readings

The following is a tentative schedule of the topics that will be considered in each class this semester. Check the web page regularly for updates as this schedule is likely to be revised as the semester proceeds. The readings for each topic should be completed before the class with which they are listed.

Date Topic Readings
1) 9/8 Sets, Countability, and Computability
2) 9/11 Strings, Languages, and Deciders Chapter 0
3) 9/13 Deterministic finite automata pages 31-43
4) 9/15 Proving languages are regular
5) 9/18 Introduction to non-deterministic finite automata pages 47-54
6) 9/20 Equivalence of DFAs and NFAs. Closure properties pages 44-47, 54-62
7) 9/22 Regular expressions. Equivalence with finite automata pages 63-76
8) 9/25 Regular expressions. Equivalence with finite automata pages 63-76
9) 9/27 Non-regular languages and the pumping lemma pages 77-82
10) 9/29 More pumping and closure properties.
11) 10/2 State minimization and the MyHill-Nerode theorem problem 1.52 and its solution
12) 10/4 Proving non-regularity with the MyHill-Nerode theorem
13) 10/6 Context-free grammars + languages pages 101-107,
14) 10/11 Context-free Languages
15) 10/16 Context-free Languages + Push Down Automata pages 111-116
16) 10/18 Push Down Automata + Ambiguity pages 107-108
17) 10/20 Pumping Lemma for Context-Free Languages pages 125-130
18) 10/23 Equivalence of PDAs and CFGs + pages 117-124
19) 10/25 Closure Properties of CFGs, Determinism and Turing Machines pages 165-175
20) 10/27 Turing Machines pages 176-187
21) 10/30 The Church-Turing Thesis pages 176-187
22) 11/1 The Church-Turing Thesis pages 176-187
23) 11/3 Decidable and recognizable sets (examples) pages 193-200
24) 11/6 Undecidable sets. Diagonalization pages 201-210
25) 11/8 Undecidable sets. Reductions pages 215-226
26) 11/10 More Reductions
27) 11/13 Computation Histories pages 225-226, 234-238
28) 11/15 Mapping Reduction and Rice's Theorem problem 5.28 and its solution + pages 245-251
29) 11/17 P and NP pages 273-298
30) 11/20 NP-completeness and Reductions pages 299-304
31) 11/27 The Cook-Levin Theorem pages 304-310
32) 11/29 NP-complete problems pages 311-321
33) 12/1 NP-complete problems pages 311-321
34) 12/4 NP-complete problems pages 311-321
35) 12/6 Space Complexity pages 331-336
36) 12/8 Space Complexity

Grading and Assignments

In determining final grades, the following weighting will be used:

45%: Homework assignments.
20%: A take-home midterm.
30%: A take-home, 24-hour, cumulative final.
5%: Class participation.

You have a total of 4 late days at your disposal for homework assignments. You can use no more than 2 late days for any single assignment (if an assignment is due on Friday, turning it in by first thing Monday morning will be treated as two late days). In addition, I will drop the lowest homework score. It is my assumption that the completion of the readings and homeworks assigned in the course will require about 10 hours beyond class meeting times. If you find that the actual workload exceeds this estimate, please let me know.

Each homework question will be graded on a 5 point scale.

10: The solution is clear and correct.
9: The solution is clear but contains a few mistakes, but they are mostly arithmetic or of little significance to the overall argument.
8: The solution hits on the main points, but has at least one logical gap.
7: The solution is significantly unclear or contains several logical mistakes or major gaps, but parts of it are salvageable.
6: The solution is just plain wrong or so unclear it cannot be followed.
0: No attempt is made at solving the problem.

Homework should be written clearly and concisely. Rewrite your proofs if they do not flow well. You are required to use LaTeX (or other suitable software) to prepare your solutions. If your handwriting is particularly neat (unlike mine), and you find it burdensome to complete the assignments in this way, you may request an exception after the first two assignments are complete.

You are encouraged to discuss homework problems with other members of the class, but I expect you will not write up solutions together. Your understanding of the problems should be sufficient to enable you to write up the details of the solution by yourself (i.e, you should not be writing up your solutions while you are discussing the problems with others or depend on detailed notes from the discussion). Deviation is considered an honor code violation. Insightful discussion with others must be cited in your homework solution. You will not lose points for citations.