CS 4384: Automata Theory

Course Information

Title: CS 4384: Automata Theory
Course Registration Number: 81309
Times: MW 2:30-3:45
Location: ECSS 2.306
Instructor: Dr. Kevin Hamlen (hamlen AT utdallas)
Instructor's Office Hours: MW 4:00-5:00 in ECSS 3.704
Teaching Assistant: Tatiana Erekhinskaya (erekhinskaya AT hlt DOT utdallas)
TA's Office Hours: Tue 1:00-2:00, Fri 11:00-1:00 in ECSS 3.417

Course Summary

This course covers foundational theory and practice of finite state machines, regular expression matching, and context-free grammars. The following are the course learning objectives:

  1. design of finite state automata and regular expressions
  2. conversion amongst DFAs, NFAs, and regular expressions
  3. prove that a language is not regular
  4. design of push-down automata and context-free grammars
  5. conversion amongst push-down automata and context-free grammars
  6. prove that a language is not context-free

Through taking this course, students will learn the theoretical and practical significance of automata theory and its application to important real-world problem domains, such as parsing, programming language design, security policy specification, natural language processing, and many others. The material will also be linked to important theoretical foundations of computer science, such as complexity theory.

The course is open to undergraduates and must be taken for letter grade only.

Prerequisites: CS 3305 Discrete Math for Computing II


Homework (30%): There will be 6 homework assignments assigned at a rate of approximately one assignment every 2 weeks. Problems will consist of discrete math and proofs. There may also be some programming problems to be completed in Java. Homeworks must be submitted by the start of class on the due date. No late homeworks will be accepted.

Quizzes (15%): Pop quizzes will be administered during class on randomly chosen dates. The quizzes will typically be short, consisting of about 5 multiple-choice or short-answer questions, and are intended to help the student stay current with the material presented in lectures.

Midterm (20%): A midterm exam will be administered in class on Wednesday, October 17.

Final (35%): The final exam for the course is scheduled for Monday, December 17th at 2:00pm. The exam will be cumulative, covering all material in the course. Students will have 2 hours and 45 minutes to complete it.

Homework Policy

Students may work individually or together with other students presently enrolled in the class to complete the assignments, but they must CITE ALL COLLABORATORS AND ANY OTHER SOURCES OF MATERIAL that they consulted, even if those sources weren't copied word-for-word. Copying or paraphrasing someone else's work without citing it is plagiarism, and may result in severe penalties such as an immediate failing grade for the course and/or expulsion from the computer science program. Therefore, please cite all sources!

Students may NOT collaborate with students who are not currently enrolled in the class. In particular, it is a violation of the class homework policy to collaborate with a student who took the class in a previous semester or to consult their old homework solutions. These sources are off-limits because such "collaborations" tend to involve simply copying or paraphrasing someone else's answer to a similar homework problem, which does not show that you have learned the material yourself and does not prepare you for the exams.


Lectures and homework assignments for the course will be self-contained, so there is no mandatory textbook. However, students are strongly encouraged to obtain one of the following recommended texts, both of which cover all material in the course:

In addition, homework 4 requires students to learn the basics of the JavaCC parser-generator. Documentation for it can be found online at that link.

Tentative Course Schedule

Date Topic Assignments
Regular Languages
Lecture 1:
Mon 8/27
Course Introduction: Deterministic Finite Automata (DFAs)
Lecture 2:
Wed 8/29
Non-determinism: Non-deterministic Finite Automata (NFAs) Assignment 1 due
Monday 9/17
No Class:
Mon 9/3
No class: Labor Day
Lecture 3:
Wed 9/5
Applications of NFAs: Regular Expressions (REs)
Lecture 4:
Mon 9/10
Conversions: DFA-NFA
Lecture 5:
Wed 9/12
Conversions: NFA-RE
Properties of Regular Languages
Lecture 6:
Mon 9/17
Proving Non-regularity: Pumping Lemma Assignment 2 due
Monday 10/1
Lecture 7:
Wed 9/19
Proving Regularity: Closure Properties
Lecture 8:
Mon 9/24
Regular Decision Problems: Emptiness, Finiteness
Lecture 9:
Wed 9/26
Regular Decision Problems: Language Equivalence, DFA Minimization
Lecture 10:
Mon 10/1
Applications of Automata Theory: Cyber-security Assignment 3 due
Monday 10/15
Context-free Grammars
Lecture 11:
Wed 10/3
CFG Derivation Trees
Lecture 12:
Mon 10/8
Proving Correctness of CFGs
Lecture 13:
Wed 10/10
Regular Grammars
Lecture 14:
Mon 10/15
Midterm Review
Sample Midterm Exam with Solutions
Assignment 4 due
Wednesday 10/31
Wed 10/17
Midterm Exam: Located in CN1.102
Properties of Context-free Languages
Lecture 15:
Mon 10/22
Chomsky Normal Form
Lecture 16:
Wed 10/24
Proving Non-context-freedom: Pumping Lemma for CFLs
Lecture 17:
Mon 10/29
Push-down Automata Assignment 5 due
Wednesday 11/14
Lecture 18:
Wed 10/31
CFG-PDA Equivalence
Closure Properties of CFLs
Lecture 19:
Mon 11/5
CFL Decision Algorithms: Emptiness, Membership
Computational Complexity
Lecture 20:
Wed 11/7
Turing Machines
Lecture 21:
Mon 11/12
Universal Turing Machines
Lecture 22:
Wed 11/14
No Class:
Mon 11/19
No class: Fall break
No Class:
Wed 11/21
No class: Fall break
Lecture 23:
Mon 11/26
Undecidability and Reductions Assignment 6 due
Wednesday 12/12
Lecture 24:
Wed 11/28
P vs. NP
Lecture 25:
Mon 12/3
Undecidability of CFL Problems
Wed 12/5 Quiz day (no lecture)
Lecture 26:
Mon 12/10
Final Review
Sample Final Exam with Solutions
Lecture 27:
Wed 12/12
Final Review
Mon 12/17
Final Exam: Located in the TI Auditorium