Department of Computer Science
CSU Stanislaus
California State University
CS4410-002:
Automata, Computability, and Formal Language
Spring 2024
Instructor: Dr. Xuejun Liang
My Office: DBH 282
Office Hours: M 2:00PM - 3:00PM & WF 10:00AM-11:00AM (ZOOM Meeting ID 4438930033)
Phone: (209) 667-3169, Email: xliang@csustan.edu
Class Information:
Class
Days & Times: MWF 1:00PM-11:50PM
Class Website: https://www.cs.csustan.edu/~xliang/Courses2/CS4410-24S
Course Materials
Textbook:
An Introduction to Formal Languages and Automata, Sixth Edition, by Peter Linz, Jones & Bartlett Learning, 2017, ISBN: 978-1-284-07724-7.
JFLAP
JFLAP is a package of graphical tools which can be used as an aid in learning the basic concepts of Formal Languages and Automata Theory.
Lecture Slides
Chapter 1 Introduction to the Theory of Computation
Chapter 2 Finite Automata
Chapter 3 Regular Languages and Regular Grammars
Chapter 4 Properties of Regular Languages
Chapter 5 Context-Free Languages
Chapter 6 Simplification of Context-Free Grammars and Normal Forms
Chapter 7 Pushdown Automata
Chapter 8 Properties of Context-Free Languages
Chapter 9 Turing Machines
Chapter 10 Other Models of Turing Machines
Chapter 11 A Hierarchy of Formal Languages and Automata
Chapter 12 Limits of Algorithmic Computation
Chapter 13 Other Models of Computation
Chapter 14 An Overview of Computational Complexity
New Lecture Slides
Chapter 1 Introduction to the Theory of Computation (A, B)
Chapter 2 Finite Automata (A, B)
Chapter 3 Regular Languages and Regular Grammars (A, B, C)
Chapter 4 Properties of Regular Languages (A, B)
Chapter 5 Context-Free Languages (A)
Chapter 6 Simplification of Context-Free Grammars and Normal Forms (A)
Chapter 7 Pushdown Automata (A)
Chapter 8 Properties of Context-Free Languages (A, B)
Chapter 9 Turing Machines (A)
Chapter 10 Other Models of Turing Machines (A)
Chapter 11 A Hierarchy of Formal Languages and Automata (A)
Chapter 12 Limits of Algorithmic Computation (A)
Chapter 13 Other Models of Computation
Chapter 14 An Overview of Computational Complexity (A)
Course Syllabus and Major Topics
Course
Description
CS4410 Automata, Computability, and Formal Language. (3 units) Pre-requisites: CS 4100. Finite state concepts; sequential machines and state minimization; Chomsky grammar; algorithms on grammars; computability and Turing machines; non-computable functions |
Course Outcomes:
Students who successfully complete the course should be able to
1. |
Define the three basic concepts
in the theory of computation: automaton, formal language, and grammar and
perform related operations. |
2. |
Construct a finite state machine
(DFA and NFA) and the equivalent regular expression and regular grammar,
transform an arbitrary NFA to an equivalent DFA, and apply the pumping lemma
to show that a language is not regular |
3. |
Construct pushdown automata and
the equivalent context-free grammars, construct derivation trees for strings
generated by a context-free grammar, show that a context-free grammar is
ambiguous, rewrite a grammar to remove ambiguity, simplify context-free grammars,
transform a context-free grammar into an equivalent grammar in Chomsky normal
form, and apply the pumping lemma to show that a language is not
context-free. |
4. |
Construct a Turing machine to
accept a specific language or to compute a simple function, and state
Turing’s thesis and discuss the circumstantial evidence supporting it. |
5. |
Describe the structure and
components of the Chomsky hierarchy |
6. |
Understand limits of algorithmic
computations and have a basic understanding of the complexity classes P and
NP, and concepts of intractability and NP-completeness. |
Homework Assignments