CSC 422 Introduction to the Theory of Computation Fall 2004
Links: Assignments
Instructor and Office Hours
Lonnie Fairchild
Office: Redcay 147 (Enter through Computer Science Dept.)
Phone: 564-2783, Computer Science Office:
564-2788
Email: lonnie.fairchild@plattsburgh.edu,
Office hours: Mon. 4:30 5:30 Tues.
1:30 2:30
Wed. 4:30 5:30 Thurs.
1:30 - 2:30
Fri. 9:30 - 10:30
These times will not be convenient for everyone. Students are welcome (and encouraged) to
make appointments for other times.
Course Description What kinds of computations is it possible to
perform on a computer? The theory of computation provides a variety of ways of approaching
this question. We will start out looking at abstract models of computation (different
kinds of automata and languages) and show that different models represent different
computational capabilities. We will next look at models, including the Turing machine,
that seem to represent our general notion of algorithm and show that there are problems
that cannot be solved by any algorithm. Finally, we will move from the question of what
problems it is possible to solve on a computer to the question of what problems it is
practical to solve and how we measure what is hard or easy.
Prerequisite: CSC 318 (Discrete
mathematics with Computer Science Applications II) or
MAT 301 (Abstract algebra)
Required Text Efim Kinber and Carl Smith, Theory of computing: A gentle Introduction, Prentice Hall, 2001
Grading The final course grade will be computed as follows:
Quizzes
25 %
Hour tests
(Sep. 23,
Nov. 2)
25 %
Final exam
15 %
Assignments
30 %
Class participation
5 %
Quizzes A short written quiz will be given during class every Tuesday (except 8/24, 9/28, 10/12, 11/2, and 11/30). Questions will come from the assigned readings, material discussed in the previous lectures, and the assignments recently completed.
Assignments Homework exercises (generally done with pencil and paper) will be assigned almost every class and you will be asked to hand in a selection of these (in a clear and readable form) each Thursday.
Attendance Policy and Academic Responsibility
Because of the cumulative nature of the material in this course,
students are required to attend all classes. Students who must miss a class due to
unavoidable circumstances are expected to notify the instructor (email or phone) and to
make up the work. The instructor is glad to help anyone who needs to make up work due to
unavoidable emergencies (illness, etc.).
All work submitted on tests and assignments is to be your own.
Cooperative study and mutual aid are healthy learning methods and are strongly
recommended. Plagiarism is copying someone's work or allowing someone else to copy or use
your work, without giving credit. An assignment that shows evidence of plagiarism will result in a grade of 0,
and the course grade will be lowered by one full letter grade. A second instance of
plagiarism will result in a grade of E in the course.
Topics covered ( dates to be supplied as the course progresses)
1. Background: review of sets and functions [Chapter 1, in the text]
2. Finite automata
[Chapter 2]
Deterministic finite acceptors (DFAs) --
definitions and examples
Nondeterministic finite automata (NFAs) --
definitions, examples, equivalence with DFAs
Regular expressions and regular
languages
Nonregular languages
Algorithms for finite automata
3. Context-free languages
[Ch. 3]
Context-free grammars
Parsing and ambiguity
Deterministic and nondeterministic pushdown
automata
Equivalence of nondeterministic pushdown
automata and context-free languages
The pumping lemma and non-context-free
languages
Closure properties and decision problems for
context-free languages
Applications to programming languages
4. Turing machines
[Ch. 4]
Turing machine -- definitions, examples,
equivalence of different models
Nondeterministic Turing machines
Turing enumerable languages
5. Computability theory; unsolvable problems
[Ch. 5]
The Church-Turing thesis
A universal Turing machine
Undecidability of the halting problem
Some other undecidable problems
9. Introduction to computational complexity
[Ch. 6]
Describing time complexity
The classes P and NP
NP-completeness
Some NP-complete problems