MCS-265: Theory of Computation (Spring 2014)

Overview

This course covers the basic mathematical methodology of the theory of computation. We'll study various computing models and explore their capabilities and limitations. 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, problem reduction, and basic theory of computational complexity. Applications to hardware 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

Text

Michael Sipser, Introduction to the Theory of Computation, 3rd Edition, 2012.

The following book in the library is our reference. It has been put on reserve but I also have a personal copy for you to borrow.

The following books are recommended for further reading. They are available from the library and from me.

Exams

There will be two intra-term exams and a final exam. Exams will be in-class, closed-book, and closed-notes. Computers and mobile devices are not allowed. You may, however, use a single 8 1/2" x 11" sheet of paper with hand-written notes for reference. Both sides of the sheet may be used. You must work individually; no cooperation or help is allowed.

Homework

There will be 6 problem sets. 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. To get fast response and maximum benefit from these early submissions, I strongly suggest you meet with me one on one to discuss your answer. You are allowed (even encouraged) to cooperate on homework problems. However, all answers must be entirely in your own words. If you work as a team or receive help from a classmate, acknowledge it. Acknowledgment should appear at the top of your problem solution. Homework writeups should follow the homework guidelines.

With each problem set, I may assign extra credit problems. You can safely ignore them, especially when 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.

Late homework policy

No late homework will be accepted.

Grading

The homework, the two intra-term exams, and the final exam are worth 40%, 30%, and 30% of your total grade, respectively. If you earn more than 80% of the possible points, you will receive an A, more than 75% for an A-, more than 70% for a B+ and down by 5 percentage points each to the lowest passing grade of more than 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 drop box in front of my office.

Honor

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 with fellow students, but you should make an effort to solve each problem on your own. Give credit to the people and/or 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

Gustavus Adolphus College is committed to ensuring the full participation of all students in its programs. If you have a documented disability (or you think you may have a disability of any nature) and, as a result, need reasonable academic accommodation to participate in class, take tests or benefit from the College's services, then you should speak with the Disability Services Coordinator, for a confidential discussion of your needs and appropriate plans. Course requirements cannot be waived, but reasonable accommodations may be provided based on disability documentation and course outcomes. Accommodations cannot be made retroactively; therefore, to maximize your academic success at Gustavus, please contact Disability Services as early as possible. Disability Services is located in the Advising and Counseling Center. Disability Services Coordinator, Laurie Bickett, (lbickett@gustavus.edu or x6286) and Disability Specialist, Kelly Hanson, (khanso10@gustavus.edu or x7138) can provide further information.

Help for Students Whose First Language is not English

Support for English Language Learners and Multilingual students is available through the Academic Support Center and the Multilingual/English Language Learner Academic Support Specialist, Laura Lindell (x7197). She can meet individually with students for tutoring in writing, consulting about academic tasks and helping students connect with the College's support systems. When requested, she can consult with faculty regarding effective classroom strategies for ELL and multilingual students. Laura can provide students with a letter to a professor that explains and supports appropriate academic arrangements (e.g. additional time on tests, additional revisions for papers). Professors make decisions based on those recommendations at their own discretion. In addition, ELL and multilingual students can seek help from peer tutors in the Writing Center.

Topical outline

We'll cover chapters 0, 1, 2, 3, 4, 5, and 7 of the text book. Following is a broad outline of the topics.

  1. Regular languages
    1. Models: deterministic and nondeterministic finite automata, regular expressions, equivalence of models
    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