# CSI 4336: Introduction to Computation Theory, Fall 2016

## Objectives

This course is an introduction to the theory of computation. There are three main
parts to this course: the *model* of an abstract computer, *what*
problems can be computed, and *how efficiently* given problems can be
computed. This course forms the foundation for much of the subsequent
work/research you will do in computer science. As you'll see, computation
theory is fascinating because there are problems which we can describe simply
which have not yet been solved.

The basic topics covered in this course are:

- formal models of computation ("how can we define computation in a mathematical way?")
- regular languages, context free languages
- deterministic finite automata, non-deterministic finite automata
- Turing machines

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

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

**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

My office location and 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 (order/content may be adjusted):

Week | Dates | Topics | Reading | Tuesday | Thursday |
---|---|---|---|---|---|

1 | Aug 22-26 | Introduction, discrete math foundations, proofs, languages | 0 | Assignment 0 | |

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) | Assignment 1 | |

3 | Sep 5-9 | Nonregular languages, pumping lemma for RLs | 1.4 | Assignment 2 | |

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 (CFL part) | Assignment 3 | |

5 | Sep 19-23 | Turing machines, variants of the TM, nondeterministic TMs | 3 | Assignment 4 | |

6 | Sep 26-30 | Exam 1 | |||

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

8 | Oct 10-14 | Recursion theorem, fixed-point theorem, compressibility and descriptional complexity | 6.1, 6.4 | ||

9 | Oct 17-21 | Oracle computations, hierarchy of undecidability, logic and decidability, incompleteness | 6.2, 6.3 | Assignment 6 | |

10 | Oct 24-28 | Computational complexity, models of computational efficiency, resource usage, complexity classes | 7.1 | ||

11 | Oct 31-Nov 4 | Exam 2 | |||

12 | Nov 7-11 | P and NP, polynomial-time reduction, TSP, Hamiltonian circuit and vertex cover | 7.2, 7.3 | Assignment 7 | |

13 | Nov 14-18 | Boolean satisfiability, Cook-Levin theorem, NP-completeness, survey of NP-complete problems | 7.4, 7.5 | Assignment 8 | |

14 | Nov 21-25 | More NP-Complete problems, co-NP, dealing with NP-completeness, space complexity and Savitch's theorem | 8.1-8.2, 8.4 | Thanksgiving break | |

15 | Nov 28-Dec 2 | Randomized polynomial time, probabilistic algorithms, primality | 10.1, 10.2 | Assignment 9 |

The final exam date will be Tuesday, December 13th, 2016, 14:00-16:00.

## Textbooks & resources

Required text: we will be using Michael Sipser's
textbook Introduction to the Theory of
Computation (3rd Edition). You can purchase this book from the bookstore or amazon,
among other places. Please note: using another edition will probably be fine,
but it may have different numbering of problems and exercises. I have seen
students lose credit for using "international" versions that are
*mostly* the same, except for the problems and exercises. Make sure you
are doing the problems as assigned.

Further online resources:

- We will use Canvas for keeping records of assignment grades.
- Please see this STL cheatsheet (1) and this STL cheatsheet (2) for a quick overview of the STL.
- LaTeX information: LaTeX introduction, another LaTeX introduction, LaTeX reference
- Here is a C++ style guidelines for the class. These guidelines also apply to Java.

## Grading

Grades will be assigned based on this breakdown:

- assignments: 35%
- midterm exams: 40%
- final exam: 25%

Final letter grades will be assigned at the discretion of the instructor, but
here is a minimum guideline for letter grades:

F <
60 ≤ D- <
62 ≤ D <
67 ≤ D+ <
70 ≤ C- <
72 ≤ C <
78 ≤ C+ <
72 ≤ C <
78 ≤ C+ <
80 ≤ B- <
82 ≤ B <
88 ≤ B+ <
90 ≤ A- <
92 ≤ A

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

Homeworks should be written up in (nice-looking) LaTeX. 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.

## Graduate credit

Students receiving graduate credit for this course will be required to complete additional components of several homework assignments. These components will give the advanced student an opportunity to explore topics, to implement algorithms, and to apply techniques that are not normally covered by undergraduates in this course. Scores on these additional components will be included in the homework assignment portion of the grade. Students receiving graduate credit will also have additional exam questions on these advanced topics, and the scores for these extra questions will be included in the examination portion of the grade. The set of topics for graduate credit include:

- the recursion and fixed-point theorems
- Kolmogorov complexity
- hierarchy of undecidability
- logic, decidability, and incompleteness
- space complexity
- randomized complexity classes

## Policies

- Check this website and your email regularly for updates and announcements. We only meet a few times a week, but I may post/email updates at any time. It is your responsibility to stay current on course changes.
**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's ECS 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.
- 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.

## Title IX Office

Baylor University does not discriminate on the basis of sex or gender in any of its education or employment programs and activities, and it does not tolerate discrimination or harassment on the basis of sex or gender. If you or someone you know would like help related to an experience involving sexual or gender-based harassment, sexual assault, sexual exploitation, stalking, intimate partner violence, or retaliation for reporting one of these type of prohibited conduct, please contact the Title IX Office at 1-254-710-8454 or report online at www.baylor.edu/titleix

The Title IX office understands the sensitive nature of these situations and can provide information about available on- and off-campus resources, such as counseling and psychological services, medical treatment, academic support, university housing, and other forms of assistance that may be available. Staff members at the office can also explain your rights and procedural options if you contact the Title IX Office. You will not be required to share your experience. If you or someone you know feels unsafe or may be in imminent danger, please call the Baylor Police Department (1-254-710-2222) or Waco Police Department (9-1-1) immediately. For more information on the Title IX Office, the Sexual and Gender-Based Harassment and Interpersonal Violence policy, reporting, and resources available, please visit the website provided above.

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

Computer Science Department

Baylor University