CS 420 Introduction to the Theory of Computation

Fall 2001 Course Syllabus

Course Description

Introduction to theoretical aspects of computing including models of computation, inherent limits on computation, and feasible computation. Topics studied will include finite automata, and context-free grammars, definition of computable function, unsolvability of the halting problem and related problems, and the classes P and NP.

Prerequisites

CS 320, Applied Discrete Mathematics

Student Learning Outcomes

1.       Students will be able to recognize when a language is regular, and be able to design a finite automaton or regular expression for a language that is regular and use the pumping lemma to show that a language is not regular.

2.       Students will be able to convert a nondeterministic finite automaton into a deterministic one, a regular expression into a nondeterministic finite automaton and a finite automaton into a regular expression.

3.       Students will be able to recognize when a language is context-free, and be able to design a context-free grammar or pushdown automaton for a language that is context-free and use the pumping lemma to show that a language is not context-free.

4.       Students will be able to convert context-free grammars into pushdown automata and vice-versa.

5.       Students will understand the definition of Turing machine and the use of Turing machines to accept and recognize languages and the importance of the distinction between deciding and recognizing.

6.       Students will understand diagonalization and how reducibility can be used to show that a problem is decidable or undecidable. They will also be able to recognize decidable and undecidable problems involving formal languages and Turing machines.

7.       Students will understand the meaning of the classes P and NP, the importance of NP-completeness, and how polynomial-time reducibility can be used to show that a problem is in P or NP or is NP-complete.

Topics

Week 1: Deterministic and Nondeterministic Finite Automata — Definitions and Examples

Week 2: Equivalence of Deterministic and Nondeterministic Finite Automata, Regular Expressions — Definition

Week 3: Equivalence of Regular Expressions and Finite Automata. The Pumping Lemma for Regular Languages

Week 4: Context-Free Grammars — Definition and Examples, Ambiguity, Chomsky Normal Form

Week 5: Pushdown Automata — Definition and Examples, Equivalence with Context-Free Grammars

Week 6: Pumping Lemma for Context-Free Languages, Turing Machines — Definitions and Examples

Week 7: First Test, Multitape and Nondeterministic Turing Machines — Definition and Equivalence with Ordinary Turing Machines

Week 8: Church’s Thesis, Decidable Problems Concerning Regular and Context-Free Languages

Week 9: Diagonalization, Undecidability of the Halting Problem

Week 10: Undecidable Problems Concerning Turing Machines and Context-Free Languages, Linear Bounded Automata — Definition, Decidable and Undecidable Problems Concerning Linear Bounded Automata

Week 11: Formal Definition of Reducibility as Many-One Reducibility, Examples of Many-One Reducibility between Problems

Week 12: Time Complexity Classes, Relationship between Time Complexities for Different Types of Turing Machines, Second Test

Week 13: The Class P — Definition and Examples of Problems in P,
The Class NP — Definition and Examples of Problems in NP

Week 14: Polynomial Time Reducibility, NP Complete Problems

Grading

First Test

30%

Second Test

30%

Final Exam

40%

Textbook

Introduction to the Theory of Computation, Michael Sipser, Boston, MA: PWS Publishing, 1997, ISBN 0-534-94728-X.

Links

Course Homepage: http://www.cs.umb.edu/cs420
Textbook Homepage: http://www-math.mit.edu/~sipser/book.html