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
Hours: Mon., Weds.: 1:00-3:00
Tues.: 11:00-1:00
Fri.: 1:30-2:30

For information on how to join the Zoom meeting for office hours, visit the course Glow page.

Teaching Assistants

Christofer Anton, Will Burford, Audrey Lee and Emily Zheng

Hours:

Will Mon.: 8:00-10:30
Chris Tues.: 1:30-4:00
Emily Tues: 7:30-10:00
Audrey Weds.: 7:30-10:00

For information on how to join the Zoom meeting for office hours, visit the course Glow page.

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) 2/7 Sets, Countability, and Computability
2) 2/10 Strings, Languages, and Deciders Chapter 0
3) 2/12 Deterministic finite automata pages 31-43
4) 2/17 Proving languages are regular
5) 2/19 Closure Properties and non-deterministic finite automata pages 44-54
6) 2/21 Equivalence of DFAs and NFAs. More closure properties pages 54-62
7) 2/24 Closure Properties, Regular expressions and GNFAs pages 63-66
8) 2/26 Regular expressions. Equivalence with finite automata pages 66-76
9) 2/28 Non-regular languages and the pumping lemma pages 77-82
10) 3/2 More pumping and closure properties.
11) 3/4 Proving non-regularity with the MyHill-Nerode theorem problem 1.52 and its solution
12) 3/6 State minimization and the MyHill-Nerode theorem
13) 3/9 Context-free grammars + languages pages 101-107,
14) 3/11 Context-free Languages + Push Down Automata pages 111-116
15) 3/13 Push Down Automata pages 107-108 + 111-116
16) 4/6 Review of CFLs, Nondeterminism in PDAs and Parse Trees pages 111-127
17) 4/8 Ambiguity, Pumping CFLs, Closure Properties and CNF pages 107-111, 125-132
18) 4/10 Equivalence of PDAs and CFGs pages 117-125
19) 4/13 Turing Machines pages 165-175
20) 4/15 Turing Machines pages 165-175
21) 4/17 The Church-Turing Thesis pages 176-187
22) 4/20 The Church-Turing Thesis pages 176-187
23) 4/22 Decidable Languages (examples) pages 193-200
24) 4/24 Recursively Enumerable = Recognizable + Closure Properties pages 180-181
25) 4/27 Undecidable sets. Reductions pages 201-220
26) 4/29 Reductions and Computation Histories pages 220-226
27) 5/1 Mapping Reduction and Rice's Theorem pp. 234-239, problem 5.28 and its solution
28) 5/4 Resource Limited Computations pages 221-225, 275-286
29) 5/6 P, NP, Reductions and NP-completeness pages 292-304
30) 5/8 Reductions + The Cook-Levin Theorem pages 304-310
31) 5/11 The Cook-Levin Theorem + Space Complexity pages 331-336
32) 5/13 Space Complexity pages 331-336 (optionally 337-347 since we will take a different approach)

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.

Homework assignments will be due in class, usually on Fridays. You may take an automatic extension on at most two homework assignments during the semester. If you choose to take such an extension, the assignment should be submitted during the next class period. 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 10 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.

You are encouraged to discuss homework problems with other members of the class, but the work you submit each week should still be your own. In particular, 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.

Note: Now that most of you are off campus, you will need to use the college's VPN server if you want to access the sample solutions. Information on how to do this can be found here