Syllabus
CSCI 4602
Automata and Formal Languages
Section 001
Fall 2018
(Revised)

Class meeting 11:00-11:50 MWF Howell North 106
Instructor Karl Abrahamson
Office Sci&Tech C-113
Office hours
MW 3:00–3:50pm and 5:00–5:50pm
F 3:00–3:50pm
or by appointment
Phone 328-9689
Email abrahamsonk@ecu.edu
Course web page www.cs.ecu.edu/~karl/4602/fall18/
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 2405 and 2530 or equivalent. 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.

Student competencies

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

  1. Analyze a given DFA and/or NFA and determine the language recognized by it.

  2. Design a DFA and/or NFA recognizing a specified language.

  3. Analyze and design a regular expression specifying a given language.

  4. Prove that a given language in not regular.

  5. Perform an elementary closure proof for a given class of languages.

  6. Explain the significance of Church-Turing Thesis.

  7. Discuss the notion of universal Turing machine.

  8. Define computability

  9. Recognize properties of reductions.

  10. Use reductions to prove interesting results.

  11. Describe a few computational problems that are not solvable by computers.

  12. Define the complexity classes P and NP.

  13. Define NP-complete problems.

  14. List several NP-complete problems.

  15. Explain the practical consequences of a problem being NP-complete.

  16. Demonstrate the NP-Completeness of some computational problems by reduction.

  17. Explain the significance of the P = NP question.

  18. Students should both realize the importance of theory to the field of computer science and develop the abstract thinking needed to pursue it further as desired by them. This is more important than any of the specific outcomes listed above.

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 have completed work of acceptable quality and quantity that it is realistic that you can pass the course with a little more work.

Grading

There will be a midterm exams on each of the following dates.

  1. Wednesday, September 19
  2. Friday, October 12
  3. Wednesday, October 31
  4. Wednesday, November 28

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

The final exam will take place on Monday, December 10, from 11:00 to 1:30 in regular classroom. 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–25%
4 midterm exams 40–60%
A comprehensive final exam 20–35%

Percentages will be chosen on an individual basis from the indicated range to give you your best score. All midterm exams 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

This schedule has been revised to account for days lost to Hurricane Florence.

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

Exam dates list review material for the exam.

This outline is tentative and might need to be adjusted, based on how many questions there are, how quickly we are able to cover topics and whether there are weather emergencies that force the university to close.

Some of the topics are short and will allow prior or subsequent topics to be addressed on the same day. Some topics might need to be skipped if time does not allow covering them.

Date Topics Reading
M. 8/20 Syllabus.
Sets, set notation, operations on sets, sets of sets.
Alphabets and strings. Languages.
Correspondence between strings and nonnegative integers.
0.1
0.2
 Sets  Strings and languages.
W. 8/22 Sets as computational problems.
Algorithms that compute sets.
Examples of algorithms that compute sets.
Functions.
Functions as computational problems.
Algorithms that compute functions.
Examples of algorithms that compute functions.
0.2
 functions
0.3
0.4
F. 8/24 Classes of problems induced by models of computation.
Separating problems from algorithms.
Deterministic finite-state machine (DFA) diagrams.
"Running" a DFA.
1.1
 finite automata
 examples of finite automata
 designing finite automata
M. 8/27 Assignment 1 assigned
Examples of DFAs.
States correspond to sets of strings.
Definition of a DFA.
Definition of the set accepted by a DFA.
1.1
 designing finite automata
 formal definition of a finite automaton
 formal definition of computation
W. 8/29 The class of 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.
F. 8/31 Examples of proofs that a language is not finite state.
M. 9/3 Holiday
W. 9/5 Assignment 1 due.
Go over assignment 1.
Nondeterministic finite-state machines (NFAs).
Definition of an NFA.
Definition of the set accepted by an NFA.
1.2
 nondeterminism
 formal definition of a NFA
F. 9/7 Equivalence of computational power of DFAs and NFAs.
The subset construction.
1.2
 nondeterminism
 formal definition of a NFA
 equivalence of NFAs and DFAs
M. 9/10 Assignment 2 assigned.
Closure results for finite-state languages.
Regular operations.
Regular expressions.
1.1
 the regular operations
1.2
 closure under the regular operations
1.3
 regular expressions
Tu. 9/11 – Tu. 9/16 ECU closed due to hurricane.
W. 9/19 Regular languages.
Proof that all finite-state languages are regular.
1.3
 equivalence with finite automata
F. 9/21 Assignment 2 due.
Go over assignment 2.
General models of computation.
Turing machines.
Turing machines that compute sets.
Turing machines that compute functions.
3.1
 Turing machines (TMs)
 examples of TMs
M. 9/24 Turing machines as strings.
Interpreters.
Turing-decidable (computable) sets.
Examples of Turing-decidable sets.
3.1
 formal definition of a TM
W. 9/26 Turing-recognizable (partially computable) sets. Enumerators.
Equivalance of enumerability and partial computability.
3.2
 enumerators
 variants of TMs,
 multi-tape TMs
F. 9/28 Exam 1 Preliminaries.
DFAs.
Definition of DFAs.
Proof that a language is not finite-state.
M. 10/1 Assignment 3 assigned.
The Church/Turing thesis.
Computable questions about DFAs.
3.3
 the definition of an algorithm
 the Church/Turing thesis
 Terminology for describing Turing machines
4.1
 decidable problems concerning regular languages
W. 10/3 Problems about TMs.
Apparent difficulty of problems about TMs.
3.3
 Hilbert's problems
4.2
 undecidability
F. 10/5 The Halting Problem.
Diagonalization.
4.2
 the diagonalization method
 undecidability
 an undecidable language
5.1
 halting problem
M. 10/8 Fall break
W. 10/10 Assignment 3 due.
Go over assignment 3.
More diagonalization.
F. 10/12 M-reductions between sets.
M-reducibility.
Properties of m-reducibility.
Using m-reducibility to prove undecidablility.
5.3
 mapping reducibility
M. 10/15 Proofs of uncomputability using m-reducibility. 5.1
 Theorems 5.2–5.4
W. 10/17 Exam 2 The Church/Turing Thesis.
Computability.
Enumerators.
Problems about Turing machines.
F. 10/19 Assignment 4 assigned.
Rice's theorem.
Rices theorem
M. 10/22 M-complete problems.
The halting problem is m-complete.
Every m-complete set is uncomputable.
W. 10/24 Polynomial time.
Class P.
Examples of problems in P.
7.1
 measuring complexity
 big-O and small-o notation
7.2
F. 10/26 Assignment 4 due.
Go over assignment 4.
Non-polynomial-time algorithms.
Separating problems from algorithms.
M. 10/29 Nondeterministic polynomial-time algorithms.
Class NP.
Examples of problems in NP.
7.3
 the class NP
 examples of problems in NP
W. 10/31 Polynomial-time m-reductions.
Properties of polynomial-time m-reducibility.
NP-completeness.
7.4
 NP-completeness
 polynomial time reducibility
F. 11/2 Assignment 5 assigned The Satisfiability Problem for propositional logic.
The Cook/Levin Theorem.
7.4
 the Cook-Levin theorem
M. 11/5 Exam 3 Diagonalization. M-reductions and m-reducibility. Properties of m-reducibility. Proof of uncomputability using m-reducibility. Rice's theorem.
W. 11/7 The P = NP question.
Using reductions to show NP-completeness.
An NP-complete problem.
7.3
 the P versus NP question
7.4
 Theorem 7.32
 Corollary 7.42
F. 11/9 Assignment 5 due.
Go over assignment 5.
More NP-complete problems.
7.5
 the Vertex Cover problem
 the Subset Sum problem
M. 11/12 More NP-complete problems. 7.5
 the Hamilton Path problem
W. 11/14 Elementary reductions: special cases.
F. 11/16 Assignment 6 assigned.
coNP and coNP-complete problems.
NP ∩ coNP.
Turing reductions and NP-hard problems.
7.3
 paragraph just above "the P vs NP question"
M. 11/19 Practical consequences of NP-completeness.
Approximation algorithms.
10.1
 approximation algorithms
W. 11/21 to F. 11/23 Thanksgiving break.
M. 11/26 Assignment 6 due.
Go over assignment 6.
W. 11/28 Exam 4 Deterministic and nondeterministic polynomial-time algorithms.
P and NP. The P = NP question.
Polynomial-time m-reductions.
NP-completeness.
Proof of NP-completeness.
coNP and coNP-complete problems.
F. 11/30 Probilistic algorithms 10.2
 probabilistic algorithms
M. 12/3 Review.
Tu. 12/4 Reading day.  
M. 12/10 Final exam, 11:00am–1:30pm.  

Additional information

For information about

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