East Carolina University
Department of Computer Science
CSCI 4602
Automata, Computability and Complexity
Standard Syllabus
3 credits |
Prepared by K. Gopalakrishnan, May 2018 |
Catalog entry
P: CSCI 2405, CSCI 2530. Finite automata and regular languages,
Turing machines, Church-Turing thesis, Computability and
Unsolvability, Complexity, Theory of NP-Completeness.
Course summary
Theory of computation comprises the fundamental mathematical
properties of computer hardware, software and certain
applications thereof. In studying this subject we seek to
determine what can and cannot be computed, how quickly, with how
much memory and on which type of computational model. Three
central areas of theory of computation are Theory of Automata and
Formal Languages, Computability Theory and Complexity Theory. In
this course, we will take a brief look at each of these three
areas.
Course topics
-
Introduction. Mathematical background, strings and languages.
-
Finite automata
-
Deterministic finite automata.
Definition, examples, analysis and design.
-
Nondeterministic finite automata.
Definition, examples, analysis, design.
Equivalence of NFA and DFA models.
-
NFA with ε-transitions.
Definition, examples, analysis and design.
Equivalence of NFAs with ε-transitions to ordinary NFAs.
-
Closure properties of regular languages.
-
Regular expressions.
Definitions, examples, analysis and design.
-
Kleene's theorem.
Equivalence of regular expressions and finite automata.
-
Non-regular languages.
Prove languages to be non-regular using a chosen technique.
-
Optional:
The Pumping Lemma for regular languages and its application
to prove non-regularity of languages.
-
Optional: The Myhill-Nerode Theorem and its application
to prove non-regularity of languages and to the existence of
a unique minimal DFA for a regular language.
-
Optional:
Applying closure properties to prove non-regularity of languages.
-
Optional: State minimization.
-
Optional: Topics from applications
of finite automata such as neural nets and markov chains.
-
General computation
-
Turing Machines. Definitions, examples, analysis and design.
-
Church-Turing thesis.
-
Universal Turing machines.
-
Diagonalization and the halting problem.
-
Reductions. Different kinds of reductions.
-
More examples of undecidable problems.
-
Optional: Proof of the undecidability of Post's Correspondence Problem.
-
Optional: Rice's Theorem and applications of it.
-
Optional: Recursion Theorems and applications of them.
-
Basic Concepts of Complexity Theory
-
Time and space complexity. Polynomial time.
-
The classes P and NP.
-
Polynomial time reductions and NP-Completness. The Cook-Levin Theorem.
-
More examples of NP-Complete Problems.
-
The P vs. NP problem. Different formulations of it. Significance of it.
-
Optional: The class NP-Intermediate and Ladner's Theorem
-
Optional: The class Co-NP, NP=Co-NP Problem,
NP ∩ Co-NP = P Problem.
-
Optional: Different methods of coping with
NP-completeness such as approximation algorithms and
Fixed-Parameter Tractability.
-
Optional: Other topics from complexity theory such as
space complexity, polynomial hierarchy, randomized complexity
classes and intractabilty.
Student learning outcomes
-
Analyze a given DFA and/or NFA and determine
the language recognized by it.
-
Design a DFA and/or NFA recognizing a specified language.
-
Analyze and design a regular expression specifying a given language.
-
Prove that a given language in not regular.
-
Explain the significance of Church-Turing Thesis.
-
Discuss the notion of universal Turing machine.
-
Recognize properties of reductions.
-
Use reductions to prove interesting results.
-
Realize that there are problems not solvable by computers
-
Describe the complexity classes P and NP.
-
List several natural NP-complete problems.
-
Demonstrate the NP-Completeness of some computational
problems by reduction.
-
Explain the significance of the P vs. NP problem.
-
Students should both realize the
importance of theory to the field of computer
science and develop the abstract thinking needed
to pursue it further as desired by them. This is more
important than any of the specific outcomes listed above.
Textbook
Introduction to Theory of Computation
by Michael Sipser, Cengage Learning, Third Edition, 2013.
Grading
Your grade in this course will be based on your performance
in homework and examinations. There will be two regular
examinations during the semester and a final comprehensive
examination at the end of the semester. Homework will be based on
"problem of the week" model, where you will be assigned one
problem to solve each week.
Exam I |
20% |
Exam II |
20% |
Final Exam |
30% |
Homework |
30% |
Grade meanings
Grade |
Meaning |
A |
Achievement substantially exceeds basic course expectations |
A− |
|
B+ |
|
B |
Achievement exceeds basic course expectations |
B− |
|
B+ |
|
C |
Achievement adequately meets basic course expectations |
C− |
|
D+ |
|
D |
Achievement falls below basic course expectations |
D− |
|
F |
Failure – achievement does not justify credit for course |