Syllabus
CSCI 4602
Theory of Automata and Linguistics
Section 001
Fall 2016

Class meeting 2:00-3:15 TuTh Brewster D-309
Instructor Karl Abrahamson
Office Sci&Tech C-113
Office hours
MWF 10:00–10:50pm and MW 2:00–3:15
or by appointment
Phone 328-9689
Email abrahamsonk@ecu.edu
Course web page www.cs.ecu.edu/~karl/4602/fall16/
My web page www.cs.ecu.edu/~karl/
Text: Introduction to the Theory of Computation (third edition) by Michael Sipser

Contents

  1. Prerequisites
  2. Course objectives
  3. Student competencies
  4. Attendance policy
  5. Grading
  6. Recommendations for success
  7. Lecture schedule and reading assignments
  8. Additional information

Prerequisites

The prerequisite for this course is CSCI 2427 or 2400 or equivalent knowledge of discrete mathematics. You should have enough of a knowledge of computer programming to understand how simple programs are written. There will be no programming assignments for this course.

This course is mathematical in nature, and you should have seen mathematical proofs before. You will be expected to produce your own proofs. We will go over proofs, and how to find and write them in specific cases.

Course objectives

This is a course in the theory of computation. The fundamental question that we will ask is, "What is computable?" Some of the answers are surprising. For example, we will encounter some problems that are easy to express but that are so difficult, no computer program can be written to solve them.

We will also ask what can be computed efficiently. We will encounter problems that can be solved, but only by programs that run for a very long time.

Before asking what can be computed, we need a good understanding of the nature of computation. We will study simple models of computation and explore what they can compute.

It turns out that a study of models of computation leads to the study of sets of strings, which are called languages. We will study various means of describing languages, some of them computational and some not based on computation.

Student competencies

After successful completion of this course, you should be able to do the following.

  1. Demonstrate an understanding of how to describe and work with sets of strings and descriptions of computational problems.
  2. Create a finite-state machine for a given computational problem.
  3. Prove that a given computational problem cannot be solved by a finite state machine.
  4. Write a regular expression that describes a given set of strings.
  5. Define a given language using a context-free grammar.
  6. Produce a parse tree for a given string according to a given context-free language.
  7. Define computability.
  8. Explain the Church/Turing thesis.
  9. Recognize some uncomputable problems.
  10. Perform elementary reductions between given problems, and prove that a given problem is not computable by performing a reduction.
  11. Define P and NP.
  12. Demonstrate that a given problem is in P.
  13. Demonstrate that a given problem is in NP.
  14. Prove that a given problem is NP-complete.
  15. Explain the practical consequences of a problem being NP-complete.
  16. Perform an elementary closure proof for a given class of languages.

Attendance policy and incompletes

I will not take attendance. It is up to you to attend class. If you miss a class, it is up to you to obtain notes and any other information that was provided in the class. Excuses that you did not know about something because you did not come to class and did not obtain the information will not count for anything at all.

Those who choose not to attend class can count on doing poorly in this course. If you choose not to attend class, then you must live with the consequences of that choice, however bad they are. If you are planning to graduate this accademic year, give careful thought before you decide not to attend class.

No incompletes will be issued in this course except for extraordinary circumstances, and even then only if you are nearly done already, and have done work of acceptable quality that it is realistic that you can pass the course.

Grading

There will be a quizzes on each of the following dates.

  1. Thursday, September 1
  2. Thursday, September 15
  3. Thursday, September 29
  4. Thursday, October 13
  5. Thursday, October 27
  6. Thursday, November 10
  7. Thursday, December 1

You can bring one prepared 8.5x11" piece of paper, written on both sides, to each quiz. You can write anything that you like on that paper. I will not collect them.

The lowest quiz score will be dropped, leaving 6 quizzes. There will be no makeups for missed quizzes. A missed quiz will be counted as a 0.

The final exam will take place on Tuesday, December 13, from 2:00 to 4:30 in Brewster D-309. You can bring two prepared 8.5x11" pieces of paper to the final exam.

Computing grades

Grades will be computed as follows.

Grading
Homework 10–20%
6 quizzes (best 6 of 7) 45–65%
A comprehensive final exam 20–40%

Percentages will be chosen from the indicated range to give you your best score. All quizzes will have the same weight.

Tentative cutoffs for grades will be as follows. These cutoffs will not be raised.

Grade cutoffs
A 93%
A– 90%
B+ 87%
B 83%
B– 80%
C+ 77%
C 73%
C– 70%
D+ 67%
D 63%
D– 60%

Recommendations for success

  1. Attend class. Arrive on time.

  2. Do not bring distractions to class. If you read your email, listen to music, send and receive text messages or engage in other distracting activities during class, you will get very little out of class. That will show up in your grade.

  3. Ask questions in class. If you do not understand something, ask a question about it.

  4. Ask questions outside of class. Either come to office hours or use email.

    For email, please use a subject indicating that you are asking a question for CSCI 4602, and always include your name in your email. Please send email to the address listed on the first page of this syllabus. Do not expect immediate answers. Give yourself time to get answers.

  5. Schedule time to work outside of class.

  6. Read relevant sections of the book twice. Take a break (a whole day or longer) in between. Later in the term, go back over your notes and book sections that you looked at earlier in the term. You will learn much more that way.

  7. Get adequate sleep. Sleep is important both before and after you learn new concepts. Sleep before enables you to concentrate and think clearly, and sleep afterwards is critical for moving new information into permanent memory.


Lecture schedule and reading assignments

The following schedule lists brief topics along with sections from the book that cover them. All reading assignments are from Sipser.

Quiz dates list review material for the quiz.

This outline is tentative and might need to be adjusted, based on how many questions there are and on how quickly we are able to cover topics.

Date Topics Reading
Tu. 8/23 Introduction.
Syllabus. General advice.
Grading.
Automata, computability and complexity.
Mathematical preliminaries.
Sets and set notation.
Set comprehensions.
Operations on sets.
Infinite sets.
0.1
0.2
 sets
Th. 8/25 Alphabets and strings.
Functions.
Algorithms.
Functions as computational problems.
Sets as computational problems.
Classes of problems.
Assignment 1 assigned
0.2
 functions
 strings and languages
0.3
0.4
Tu. 8/30 Finite-state machines (FSMs).
Using FSMs to recognize languages.
Understanding FSMs.
Assignment 1 due.
1.1
 finite automata
 examples of finite automata
 designing finite automata
Th. 9/1 Quiz 1.
The formal definition of a FSM.
Definition of computation by a FSM.
The class of finite-state languages.
1.1
 formal definition of a finite automaton
 formal definition of computation

Quiz review topics.
 Sets, set notation, set comprehensions.
 Operations on sets.
 Alphabets and strings.
 Functions.
 Sets as computational problems.
 Be able to describe an algorithm to compute a language.

Quiz review sections.
 0.1
 0.2
  sets
  functions
  strings and languages
 0.3
 0.4
Tu. 9/6 Non-finite-state languages.
Proving that a language is not finite-state.
1.4
 first few paragraphs

We will use a method that is much simpler than the pumping lemma, but is just as rigorous.
Th. 9/8 Nondeterministic FSMs.
Equivalence of deterministic and nondeterministic machines.
Assignment 2 assigned
1.2
 nondeterminism
 formal definition of a NFA
 equivalence of NFAs and DFAs
Tu. 9/13 Regular operations.
Regular expressions.
Regular languages.
Closure results for regular languages.
All regular languages are finite-state.
Assignment 2 due.
1.1
 the regular operations
1.3
 regular expressions
Th. 9/15 Quiz 2.
Generalized FSMs.
All finite-state languages are regular.
1.3
 equivalence with finite automata

Quiz review topics.
 Finite-state machines (FSMs).
 The formal definition of a FSM.
 Definition of computation by a FSM.
 Be able to show that a given language is finite-state.
 Non-finite-state languages.
 Be able to prove that a language is not finite-state.
 Nondeterministic FSMs.
 Equivalence of deterministic and nondeterministic machines.
 Be able to carry out a conversion from NFA to equivalent DFA.

Quiz review sections.
 1.1
  finite automata
  examples of finite automata
  designing finite automata
  formal definition of a finite automaton
  formal definition of computation
 1.2
  nondeterminism
  formal definition of a NFA
  equivalence of NFAs and DFAs
 1.4
  proving that a language is not regular
Tu. 9/20 Context-free grammars (CFGs).
Derivations.
Parse trees.
Formal definition of a CFG.
The language of a CFG.
2.1
 CFGs
 formal definition of a CFG
 examples of CFGs
 designing CFGs
Th. 9/22 Ambiguity.
Eliminating ambiguity.
Push-down automata (PDAs).
Assignment 3 assigned
2.1
 ambiguity
2.2
 pushdown automata
 examples of pushdown automata
Tu. 9/27 Nondeterministic PDAs.
Equivalence with CGFs.
Assignment 3 due.
2.2
 equivalence with context-free grammars
Th. 9/29 Quiz 3.
Quiz review topics.
 Regular operations.
 Regular expressions.
 Be able to show a closure result for the regular languages.
 All finite-state languages are regular.
 Context-free grammars (CFGs).
 Derivations.
 Parse trees.
 Be able to produce a derivation and a parse tree
  for a given string and a given grammar.
 The language of a CFG.
 Ambiguity.
 Be able to show that a given CFG is ambiguous.

Quiz review sections.
 1.1
  the regular operations
 1.3
  regular expressions
  equivalence with finite automata
 2.1
  CFGs
  formal definition of a CFG
  examples of CFGs
  designing CFGs
  ambiguity
Tu. 10/4 Turing machines (TMs).
Turing-recognizable languages.
Turing-decidable (computable) languages.
Enumerators
Equivalence of enumerability and Turing recognizability.
Assignment 4 assigned
3.1
 Turing machines (TMs)
 formal definition of a TM
 examples of TMs
Th. 10/6 The Church/Turing thesis.
Assignment 4 due.
3.2
 variants of TMs,
 multi-tape TMs
3.3
 the definition of an algorithm
 the Church/Turing thesis
M. 10/10 and Tu 10/11 Fall break  
Th. 10/13 Quiz 4.
Computability
3.3
 Hilbert's problems
 Terminology for describing Turing machines

Quiz review topics
 CFGs.
 Be able to write a CFG for a given language.
 Push-down automata (PDAs).
 Nondeterministic PDAs.
 Equivalence with CGFs.
 Be able to give definitions and be aware of results.
 Turing machines (TMs).
 Turing-recognizable languages.
 Turing-decidable (computable) languages.
 The Churce/Turing thesis.
 Enumerators.
 Be able to give definitions and be aware of results.

Quiz review sections.
 2.2
  pushdown automata
  examples of pushdown automata
  equivalence of NPDAs and context-free grammars
 3.1
  Turing machines (TMs)
  formal definition of a TM
  examples of TMs
Tu. 10/18 Computable problems.
Problems about FSMs.
4.1
 decidable problems concerning regular languages
Th. 10/20 Uncomputable problems.
Problems about TMs.
The Halting Problem.
The Halting Problem is uncomputable.
Diagonalization.
Assignment 5 assigned
4.2
 undecidability
 an undecidable language
5.1
 halting problem
Tu. 10/25 Relationships between languages.
Reductions.
Relations induced by kinds of reduction.
Properties of reducibility.
Using reductions to prove undecidability.
Assignment 5 due.
5.3
 mapping reducibility
Th. 10/27 Quiz 5.
Rice's theorem.
Exercise 5.28

Quiz review topics.
 Computability.
 Computable problems.
 Be prepared to give definitions.
 Problems about FSMs.
 Be prepared to give algorithms to solve specific problems.
 Uncomputable problems.
 Problems about TMs.
 The Halting Problem.
 Be aware of results about uncomputable problems .

Quiz review sections.
 3.2
  variants of TMs,
  multi-tape TMs
 3.3
  the definition of an algorithm
  the Church/Turing thesis
 4.1
  decidable problems concerning regular languages
 4.2
  undecidability
  an undecidable language
 5.1
  halting problem
Tu. 11/1 Polynomial-time computation.
The class P.
Examples of problems in P.
Separating problems from algorithms.
7.2
Th. 11/3 Nondeterministic polynomial-time computation.
The class NP.
Examples of problems in NP.
Assignment 6 assigned
7.3
Tu. 11/8 Polynomial-time reductions.
Properties of polynomial-time reducibility.
NP-completeness.
Assignment 6 due.
7.4
 NP-completeness
Th. 11/10 Quiz 6.
The satisfiability problem.
7.4
 the Cook-Levin theorem

Quiz review topics.
 Relationships between languages.
 Reductions.
 Be prepared to give definitions.
 Be prepared to give a reduction from one given problem to another.
 Properties of reducibility.
 Using reductions to prove undecidability.
 Rice's theorem.
 Be prepared to use Rice's theorem to show that a given problem is not decidable.
 The class P.
 Be prepared to demonstrate that a given problem is in P.
 Nondeterministic polynomial-time computation.
 The class NP.
 Be prepared to demonstrate that a given problem is in NP.

Quiz review sections.
 5.3
  mapping reducibility
 Exercise 5.28
 7.2
 7.3
Tu. 11/15 Consequences of NP-completeness.
Examples of NP-complete problems.
Reductions to show NP-completness.
7.5
Th. 11/17 More NP-complete problems.
Assignment 7 assigned
 
Tu. 11/22 Space complexity.
Savitch's theorem.
Assignment 7 due.
8.1
W. 11/23 to F. 11/25 Thanksgiving break  
Tu. 11/29 PSPACE.
PSPACE-completeness.
A PSPACE-complete problem.
8.2
8.3.
Th. 12/1 Quiz 7.
Another PSPACE-complete problem.
8.3
 winning strategies for games
 generalized geography

Quiz review topics.
Polynomial-time reductions.
Properties of polynomial-time reducibility.
Be prepared to give a polynomial-time reduction between two given problems.
NP-completeness.
The satisfiability problem.
Be prepared to show that a given problem is NP-complete.
Be aware of definitions and results.

Quiz review sections.
7.4
 NP-completeness
 the Cook-Levin theorem
7.5
Tu. 12/6 Reading day.  
Tu. 12/13 Final exam, 2:00pm–4:30pm.  

Additional information

For information about

please see the auxiliary information at http://www.cs.ecu.edu/~karl/4602/fall16/syllabus-aux.html.