Title: CS 4384: Automata Theory
Course Registration Number: 81438
Times: MW 2:303:45
Location: ECSS 2.306
Instructor: Dr. Kevin Hamlen (hamlen AT utdallas)
Instructor's Office Hours: W 3:455:45 in ECSS 3.704
Teaching Assistant: Emrah Cem (Emrah.Cem AT utdallas)
TA's Office Hours: Tu 11:301:30 in ECSS 4.703
Final exam scores (the FinExam row), final averages (the FinAve row), and final letter grades (the FinAveLetter row) are now available through eLearning. If you wish to see your exam, please email me for an appointment by the end of Thursday 12/15 at the latest.
This course covers foundational theory and practice of finite state machines, regular expression matching, and contextfree grammars. The following are the course learning objectives:
Through taking this course, students will learn the theoretical and practical significance of automata theory and its application to important realworld 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 the language of your choice. 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 multiplechoice or shortanswer 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 19. It will cover all material up to that date, including DFAs, NFAs, regular expressions, regular closure properties, regular emptiness, finiteness, and equivalence decision algorithms.
Final (35%): The final exam for the course is scheduled for Monday, December 12th 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.
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 wordforword. 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 offlimits 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 selfcontained, 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 parsergenerator. Documentation for it can be found online at that link.
Date  Topic  Assignments  
Regular Languages  
Lecture 1: Wed 8/24 
Course Introduction: Deterministic Finite Automata (DFAs)  
Lecture 2: Mon 8/29 
Nondeterministic Automata: NFAs and Regular Expressions  Assignment 1 due Monday 9/12 

Lecture 3: Wed 8/31 
DFANFA Conversion  
NO CLASS: Mon 9/5 
Labor Day (university closed)  
Lecture 4: Wed 9/7 
NFARE Conversion  
Properties of Regular Languages  
Lecture 5: Mon 9/12 
Proving nonregularity: Pumping Lemma  Assignment 2 due Wednesday 9/28 

Lecture 6: Wed 9/14 
Proving regularity: Closure properties  
Lecture 7: Mon 9/19 
Applications of Automata Theory  
NO CLASS: Wed 9/21 
Class canceled  
Lecture 8: Mon 9/26 
Regular Decision Problems: Emptiness, Finiteness  
Lecture 9: Wed 9/28 
Regular Decision Problems: Language equivalence  Assignment 3 due Monday 10/17 

Lecture 10: Mon 10/3 
DFA Minimization  
Contextfree Grammars  
Lecture 11: Wed 10/5 
CFGs: Derivation Trees  
Lecture 12: Mon 10/10 
CFGs: Proving correctness of CFGs  
Lecture 13: Wed 10/12 
Regular Grammars  
Lecture 14: Wed 10/17 
Midterm Review Sample Midterm Exam & Solutions 
Assignment 4 due Monday 10/31 

Midterm: Wed 10/19 
Midterm Exam  
Properties of Contextfree Languages  
Lecture 15: Mon 10/24 
Chomsky Normal Form  
Lecture 16: Wed 10/26 
Proving noncontextfreedom: Pumping Lemma for CFLs  
Lecture 17: Mon 10/31 
Pushdown Automata  Assignment 5 due Wednesday 11/16 

Lecture 18: Wed 11/2 
CFGPDA Equivalence  
Lecture 19: Mon 11/7 
Closure Properties of CFLs  
Lecture 20: Wed 11/9 
CFL Decision Algorithms: Emptiness, finiteness, membership  
Computational Complexity  
Lecture 21: Mon 11/14 
Turing Machines  
Lecture 22: Wed 11/16 
Decidability  Assignment 6 due Monday 12/5 

Lecture 23: Mon 11/21 
Undecidability  
NO CLASS: Wed 11/23 
Thanksgiving break  
Lecture 24: Mon 11/28 
P vs. NP  
Lecture 25: Wed 11/30 
Final review Sample Final Exam & Solutions 

Lecture 26: Mon 12/5 
Final review  
Mon 12/12 2:004:45pm 
Final Exam 