MCS-265: Theory of Computation (Spring 2010)
Overview
This course concerns
the basic mathematical methodology
of the theory of computation.
We'll explore the capabilities
and limitations of
different computing models and devices.
We'll study computability
and uncomputability of problems.
Specifically we will learn about
languages and grammars,
finite automata,
regular expressions,
pushdown automata,
Turing machines,
nondeterminism,
undecidability,
NP-completeness,
and the basic theory of computational complexity.
Applications to circuit design,
pattern matching, parsing,
and other real-world problems
will be discussed.
Course objectives
Upon successful completion of this course,
you should be able to
- explain the essential ideas and capabilities of
different models of computation
- demonstrate an ability to formulate computational
concepts using precise mathematical notation
- demonstrate competence in proving theorems
concerning computing mathines
and processes
- understand how nondeterminism affects
the capability of computing devices
- distinguish the decidable
from the undecidable problems
- distinguish the Turing-recognizable
problems from those that are not
- understand the distinction between
the P and NP classes of problems
- understand NP completeness
- demonstrate competence in problem reduction
Prerequisite
MCS-236: Graph Theory.
Specifically, you should be comfortable with set notation
and set operations.
You should understand relations,
functions, 1-1 and onto mappings, and sequences.
You should understand proofs
and be able to read and write them.
Text
Michael Sipser,
Introduction to the Theory of Computation,
2nd Edition, 2006.
References
The following books are recommended for further reading.
They are available from the library or from me.
-
Hopcroft, Motwani, and Ullman,
Introduction to Automata Theory, Languages, and Computation,
3nd edition, 2007.
-
Lewis and Papadimitriou,
Elements of the Theory of Computation,
2nd Edition, Prentice Hall, 1998.
-
Garey & Johnson,
Computers and Intractability:
A guide to the Theory of NP-Completeness,
1979.
Exams
Exams will be in-class, closed-book, and closed-notes.
You may, however, use a single 8 1/2 by 11 sheet of paper
with hand-written notes for reference.
Both sides ot the sheet may be used.
You must work individually;
no cooperation or help is allowed.
Homeworks
Homeworks are due at the start of class on the due date.
However, you may submit your solution several times before
the official due date.
I'll take a quick look at your work and
give as much feedback as possible
as to whether you're on the right track.
You are allowed (even encouraged)
to cooperate on homework problems.
However, you must write up all solutions entirely on your own.
If you work as a team or receive help from a classmate,
acknowledge it.
Acknowledgment should appear at the top of your
problem solution.
Late policy
No late assignment will be accepted.
Extra credit problems
With each problem set,
I may assign one or two extra credit problems.
You can safely ignore them,
especially if you are still struggling
with the regular homework problems.
Extra credit problems are intended for those
who need challenge
beyond what the regular homework offers.
They will be graded strictly.
Requirements and grading
There will be about 6 problem sets,
two intra-term exams, and a final exam.
The homework is worth 20%,
the intra-term exams worth 35%,
and the final exam worth 45%
of your total grade.
If you earn 80% or more of the possible points, you will receive an A,
75% for an A-, 70% for a B+ and down by 5 percentage points each to the
lowest passing grade of 35 for a D. There is no curve, although I
reserve the right to adjust your grade at the end of the course.
Grade adjustment will be based on class participation,
extra credit problem work (if any),
and my perception of your effort to learn.
Attendance
If you miss a class you are still responsible for the materials covered.
Any handouts distributed in class will also appear in the box
outside my office door.
Academic honesty
You are expected to be familiar with the college academic honesty
honor code policy,
and to comply with that policy.
If you have any questions about it, please ask.
In doing an assignment,
you may discuss the problems and their solutions with fellow students,
but you should make an effort to solve each problem on your own.
Give credit to the people and/or reading sources
that help you find the solutions,
be they textbooks,
journals,
or internet postings.
Be explicit and acknowledge clearly what sort of help you received.
Failure to do so will be considered cheating.
A first violation of the honor code will result in a grade of 0
on the homework or exam in question.
Any further violation will result in an automatic F for the course
and a notification to the Office of the Provost.
Disability services
Please let me know
if you have specific physical, psychiatric,
or learning disabilities that require accommodation.
I will do my best to make the necessary arrangements.
All discussions will remain confidential.
Topical outline
We'll cover chapters 0, 1, 2, 3, 4, 5, and 7 of the text book.
Time permitting, parts of Chapters 8 and 10 may be covered as well.
Following is a broad outline of the topics.
- Regular languages
- Models:
deterministic and nondeterministic finite automata,
regular expressions, equivalence
- Properties:
closure properties,
decision properties,
pumping lemma
- Context-free languages
- Context-free grammars (CFGs), derivations, parse trees
- Pushdown automata, definition, equivalence with CFGs
- Properties: normal forms,
closure properties, decision properties,
pumping lemma
- Decidable languages
- Turing machines:
definition, techniques for constructing Turing machines,
extensions, restrictions, Turing computability, Church-Turing thesis,
universal Turing machines
- Undecidability:
halting problem and others
- Reducibility
- Computational Complexity:
resource-bounded computation, polynomial time, space,
NP-completeness of satisfiability,
polynomial-time reduction,
other NP-complete problems
Back to MCS 265 home page