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:

Classroom: DBH 165 / online

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

Homework assignments will be given and submitted in Canvas.