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

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.

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.

  1. Regular languages
    1. Models: deterministic and nondeterministic finite automata, regular expressions, equivalence
    2. Properties: closure properties, decision properties, pumping lemma
  2. Context-free languages
    1. Context-free grammars (CFGs), derivations, parse trees
    2. Pushdown automata, definition, equivalence with CFGs
    3. Properties: normal forms, closure properties, decision properties, pumping lemma
  3. Decidable languages
    1. Turing machines: definition, techniques for constructing Turing machines, extensions, restrictions, Turing computability, Church-Turing thesis, universal Turing machines
    2. Undecidability: halting problem and others
    3. Reducibility
  4. 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