# CSI 4336: Introduction to Computation Theory, Fall 2005

## Announcements

- Mon Sep 19 12:53:06 CDT 2005
- PLEASE NOTE: there was a mistake in homework 2 which has now been corrected. The correction is in the sample answer of question 3 (regular language complement). Please look at the sample answer again.
- Fri Aug 26 07:40:38 CDT 2005
- Please note that I have placed lecture notes for the first week on the schedule below, and our first quiz on the reading will be on September 1.

## Objectives

This course is an introduction to the theory of computation. There are two main
parts to this course: *what* problems can be computed, and *how
efficiently* given problems can be computed. This course forms the
foundation for much of the subsequent research you will do in computer science,
so it is important material. Some people find it a very interesting topic,
while other people do not. One of the most fascinating parts of this topic is
that there are problems which we can describe simply (and we will) which have
not yet been solved.

The basic topics covered in this course are:

- formal models of computation
- regular languages, context free languages
- deterministic finite automata, non-deterministic finite automata

- computability theory ("what sorts of problems can computers solve?")
- Turing machines
- decidability
- reducibility

- complexity theory ("how efficiently can computers solve different problems?")
- time complexity, classes of complexity, P versus NP, NP-completeness
- space complexity
- intractability

**This is a difficult course.** Be prepared to invest the time
necessary to understand the concepts, and to do the assignments. My
best advice is to attend the lectures, ask questions, and start assignments early.

## Practical information

Lectures are from 11:00 AM to 12:20 AM in Rogers 104 on Tuesdays and Thursdays.

My office is in the Rogers Engineering and Computer Science building. My office hours are listed on my home page. I am glad to talk to students during and outside of office hours.

## Schedule

Here is a schedule of the material we will cover:

Week | Dates | New topics | Chapters | Lecture notes | Tuesday | Thursday |
---|---|---|---|---|---|---|

1 | Aug 22-26 | Introduction | 0 | notes | ||

2 | Aug 29-Sep 2 | Regular languages, Finite automata, Nondeterminism, Regular expressions, Equivalence of REs and FAs, Closure properties for RLs, Decision problems for RLs | 1.1-1.3, 4.1 (RL part) | notes | Homework 1 assigned | Quiz #1 |

3 | Sep 5-9 | Nonregular languages, Pumping lemma for RLs | 1.4 | notes | In-class exercises | |

4 | Sep 12-16 | Context-free languages, Push-down automata, normal forms for CFGs, ambiguity in CFGs Pumping lemma for CFLs, closure properties for CFLs, decision problems for CFLs | 2.1-2.3, 4.1 (CFG part) | notes | Homework 2 assigned | Quiz #2 |

5 | Sep 19-23 | Exam 1 | ||||

6 | Sep 26-30 | Turing machines, variants of the TM, nondeterministic TMs | 3 | notes | ||

7 | Oct 3-7 | Universal machines, decidability, the halting problem, undecidable problems by the dozen, Rice's theorem | 4.2, 5 | notes | Quiz #3 | |

8 | Oct 10-14 | Recursion theorem, fixed-point theorem, compressibility and descriptional complexity | 6 (omit 6.2) | notes | Homework 3 assigned | |

9 | Oct 17-21 | Oracle computations, hierarchy of undecidability, computational complexity, resource consumption, complexity classes, logic and decidability, incompleteness | 6.2, 7.1 | Homework 4 assigned | Quiz #4 | |

10 | Oct 24-28 | Review | Exam 2 | |||

11 | Oct 31-Nov 4 | P and NP, polynomial-time reduction, TSP, Hamiltonian circuit and vertex cover | 7.2, 7.3 | |||

12 | Nov 7-11 | Boolean satisfiability, Cook-Levin theorem, NP-completeness, survey of NP-complete problems | 7.4, 7.5 | |||

13 | Nov 14-18 | More NP-Complete problems, co-NP, alternating TM, polynomial-time hierarchy, pseudo-polynomial time, graph isomorphism | 10.3 | Homework 5 assigned | ||

14 | Nov 21-25 | Randomized polynomial time, probabilistic algorithms, primality, unambiguous polynomial time | 10.1, 10.2, 10.4 | Thanksgiving break | ||

15 | Nov 28-Dec 2 | Parallel computation, NC, cryptography | 10.5, 10.6 | |||

16 | Dec 5-9 | Study day | Final exam (9:00 - 11:00 AM) |

The final exam date will be Thursday, December 8th between 9:00 and 11:00 AM. The latest university finals information is available here.

## Textbooks & resources

Required text: we will be using Michael Sipser's textbook Introduction to the Theory of Computation (2nd Edition). You can purchase this book from the bookstore or amazon, among other places. The first edition may also be suitable (but that is not a promise).

Further online resources:

- We will use Blackboard as a class discussion board. Feel free to post questions and responses there which do not violate the collaboration agreement.

## Grading

Grades will be assigned based on this breakdown:

- quizzes: 15%
- homework: 30%
- midterm exam: 25%
- final exam: 30%

A: 90-100, B+: 88-89, B: 80-87, C+: 78-79, C: 70-77, D: 60-69, F: 0-59

Some homeworks and quizzes may be worth more than others. All exams and quizzes are closed-book. The final will be comprehensive.

There will be several homework assignments. Homeworks are due at the beginning of class on the due dates for full credit. Homeworks turned in after I have collected them but before the end of class will receive a 20% penalty. No homeworks will be accepted after class on the due date.

## Policies

- Check this website every day for updates and announcements. We only meet three times a week, but I may post updates at any time. It is your responsibility to follow these updates by reading this website.
**All work in this course is strictly individual, unless the instructor explicitly states otherwise.**While discussion of course material is encouraged, collaboration on any work for the course is not allowed. Collaboration includes (but is not limited to) discussing with anyone other than the professor any material that is specific to completing an assignment. You are*not*to work with anyone else on any assignment unless I expressly permit it. You*are*encouraged to discuss the course material with the professor, preferably in office hours, and also by email.- Baylor policy requires 75% class attendance from each student. Even "excused" absences are included in the overall absent count. If a student attends less than 75% of the classes, he or she will automatically fail the course.
- In order to facilitate keeping attendance, on the second class meeting I will ask you to choose a seat for the rest of the course. Please sit in your chosen seat for the remainder of the course.
- Homeworks which are late are not accepted. Exams are the only things which may be made up with prior arrangement (made at least one class before to the exam) or due to illness, with a note from a health care professional.
- Bring any grading correction requests to my attention within 2 weeks of receiving the grade or before the end of the semester, whichever comes first. After that, I will not adjust your grade. If you find any mistake in grading, please let me know.

## Academic honesty

I take academic honesty very seriously.

Many studies, including one by Sheilah Maramark and Mindi Barth Maline have suggested that "some students cheat because of ignorance, uncertainty, or confusion regarding what behaviors constitute dishonesty" (Maramark and Maline, Issues in Education: Academic Dishonesty Among College Students, U.S. Department of Education, Office of Research, August 1993, page 5). In an effort to reduce misunderstandings in this course, a minimal list of activities that will be considered cheating have been listed below.

- Copying another student's work. Simply looking over someone else's source code is copying.
- Providing your work for another student to copy.
- Collaboration on any assignment, unless the work is explicitly given as collaborative work.
- Using notes or books during any exam.
- Giving another student answers during an exam.
- Reviewing a stolen copy of an exam.
- Plagiarism.
- Studying tests or using assignments from previous semesters.
- Providing someone with tests or assignments from previous semesters.
- Taking an exam for someone else.
- Turning in someone else's work as your own work.
- Studying a copy of an exam prior to taking a make-up exam.
- Providing a copy of an exam to someone who is going to take a make-up exam.
- Giving test questions to students in another class.
- Reviewing previous copies of the instructor's tests without permission from the instructor.

Copyright © 2005 Greg Hamerly, with some content
taken from a syllabus by Jeff Donahoo.

Computer Science Department

Baylor University