# CSE 473/573 Automata, Formal Languages, and Computability (3 credits)

## Catalog description:

Regular expressions. Closure properties. Sequential machines and finite state transducers. State minimization. Chomsky hierarchy grammars, pushdown acceptors and linear bounded automata. Closure properties of algorithms on grammars. Turing machine as acceptor and transducer. Universal machine. Computable and noncomputable functions. Halting problem.

## Prerequisites:

CSE 274 / CSE 606 or equivalent, and Discrete Math (MTH 231).

## Required topics (approximate weeks allocated):

- Introduction
- mathematical preliminaries (1.0)
- set theory
- relations and functions
- recursive definitions
- mathematical induction

- mathematical preliminaries (1.0)
- Context-free grammars and parsing
- context-free grammars (1.5)
- regular grammars
- context-free grammars and languages

- parsing (1.5)
- left most derivations
- top-down parsing
- bottom-up parsing
- shift-reduce parsing

- normal forms (1.0)

- context-free grammars (1.5)
- Automata and Languages
- finite automata (1.0)
- deterministic finite automata
- state diagrams
- nondeterministic automata
- removing nondeterminism
- finite automata and regular sets

- regular languages and sets (2.0)
- regular grammars and finite automata
- nonregular languages
- pumping lemma
- closure of regular languages

- pushdown automata and context-free languages (1.0)
- pumping lemma for context-free languages
- closure properties of context-free languages

- turing machines (2.0)
- standard Turing machines
- Turing machines as language acceptors
- nondeterministic Turing machines
- equivalence of Turing machine variants

- the Chomsky hierarchy (1.0)
- context-sensitive languages
- linear bounded automata

- finite automata (1.0)
- Decidability (2.0)
- decision problems
- church-Turing hypothesis
- the halting problem
- universal Turing machine
- reducibility
- undecidable problems

- Exams/Review (1.0)

## Graduate students:

Students enrolled in CSE 573 will be given additional readings and/or assignments.

## Learning Outcomes:

**1: Design and trace automata and grammars.**

1.1: Design and trace finite state machines, pushdown automata, linear bounded automata, and Turing machines.

1.2: Describe and use non-deterministic automata.

1.3: Describe and use regular expressions.

1.4: Describe and determine the absolute and relative computational capabilities of automata variants.

1.5: Apply standard conversion algorithms to process automata and grammars.

1.6: Read and create proofs establishing the equivalence or non-equivalence of automata and/or grammars.

1.7: Design context-free grammars to describe a particular set of strings.

1.8: Describe and prove the closure properties of regular and context-free languages.

**2: Describe the elements of the Chomsky hierarchy.**

2.1: Describe the power and limitations of automata and grammars.

2.2: Describe the hierarchy of languages and grammars.

2.3: Describe the Church-Turing Thesis and its implications.

2.4: Prove that a language has a particular location in the Chomsky hierarchy.

**3: Explain how some problems have no algorithmic solution.**

3.1: Describe the basics of the theory of computation.

3.2: Provide examples of problems that are undecidable and unrecognizable.

3.3: Determine if a problem is decidable or recognizable.

3.4: Describe the operation of a Universal Turing Machine.

3.5: Describe the nature of the Halting problem and prove that it is undecidable and recognizable.

3.6: Demonstrate reducibility of one problem to another problem in proving that a problem is undecidable, recognizable, or decidable.

** **