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