Title: CS 4384: Automata Theory
Course Registration Number: 3491
Times: MW 2:30-3:45
Location: ECSS 2.412
Instructor: Dr. Kevin Hamlen (hamlen AT utdallas)
Instructor's Office Hours: Thur 3:30-5:30 in ECSS 3.704
Teaching Assistant: Micah Jones (micah.jones1 AT student.utdallas)
TA's Office Hours: F 12:00-2:00 in ECSS 3.613
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:
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 the language of your choice. Homeworks must be turned on Friday the week that they are due. No late homeworks will be accepted.
Quizzes (15%): Pop quizzes will be administered at the start of class on randomly chosen dates. The quizzes will typically be very 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 Monday, October 11. It will cover all material up to that date, including DFA's, NFA's, 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 13th 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 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.
The course will loosely follow the following textbook:
Purchase of the text is encouraged but not required. Lectures and homework assignments will be self-contained, so will not require explicit access to the textbook. The text has also been placed on reserve in the McDermott Library.
In addition, homework 4 requires students to learn the basics of the Unix programs flex and bison. The following eBook is a good resource and is available through the McDermott Library. You will need to login using your UTD ID number.
Date | Topic | Assignments | |
Regular Languages | |||
Lecture 1: Mon 8/23 |
Course Introduction: Deterministic Finite Automata (DFA's) | ||
Lecture 2: Wed 8/25 |
Non-deterministic Automata: NFA's and Regular Expressions | Assignment 1 due Friday 9/10 |
|
Lecture 3: Mon 8/30 |
DFA-NFA Conversion | ||
Lecture 4: Wed 9/1 |
NFA-RE Conversion | ||
NO CLASS: Mon 9/6 |
Labor Day (university closed) | ||
Properties of Regular Languages | |||
Lecture 5: Wed 9/8 |
Proving non-regularity: Pumping Lemma | Assignment 2 due Friday 9/24 |
|
Lecture 6: Mon 9/13 |
Proving regularity: Closure properties | ||
Lecture 7: Wed 9/15 |
Regular Decision Problems: Emptiness, Finiteness | ||
Lecture 8: Mon 9/20 |
Regular Decision Problems: Language equivalence | ||
Lecture 9: Wed 9/22 |
DFA Minimization | Assignment 3 due Friday 10/8 |
|
Context-free Grammars | |||
Lecture 10: Mon 9/27 |
CFG's: Derivation Trees | ||
Lecture 11: Wed 9/29 |
CFG's: Proving correctness of CFG's | ||
Lecture 12: Mon 10/4 |
Regular Grammars | ||
Lecture 13: Wed 10/6 |
Midterm Review | ||
Midterm: Mon 10/11 |
Midterm Exam | ||
Lecture 14: Wed 10/13 |
Midterm Debriefing: Prep for the Final Exam | Assignment 4 due Friday 10/29 |
|
Lecture 15: Mon 10/18 |
Chomsky Normal Form | ||
Push-down Automata | |||
Lecture 16: Wed 10/20 |
Push-down Automata | ||
Lecture 17: Mon 10/25 |
Proving non-context-freedom: Pumping Lemma for CFL's | ||
NO CLASS: Wed 10/27 |
Class Canceled | Assignment 5 due Friday 11/12 |
|
Properties of Context-free Languages | |||
Lecture 18: Mon 11/1 |
CFG-PDA Equivalence | ||
Lecture 19: Wed 11/3 |
Closure Properties of CFL's | ||
Lecture 20: Mon 11/8 |
CFL Decision Algorithms: Emptiness and finiteness | ||
Lecture 21: Wed 11/10 |
CFL Decision Algorithms: Membership | Assignment 6 due Friday 12/3 |
|
Computational Complexity | |||
Lecture 22: Mon 11/15 |
Turing Machines | ||
Lecture 23: Wed 11/17 |
Decidability and Undecidability | ||
Lecture 24: Mon 11/22 |
P vs. NP | ||
NO CLASS: Wed 11/24 |
Class Canceled (Thanksgiving break) | ||
Lecture 25: Mon 11/29 |
Security Automata and In-lined Reference Monitors Lecture Slides |
||
Lecture 26: Wed 12/1 |
Final review | ||
Lecture 27: Mon 12/6 |
Final review | ||
Mon 12/13 2:00-4:45pm |
Final Exam |