CSA 473/573 Automata, Formal Languages, & Computability (3 credits)
Typically offered during the fall semester.
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:
Course Objectives:
- To learn the fundamental principles which underlie Computer Science.
- Computability
- To understand some of the basics of the theory of computation.
- To see that some functions are not computable.
- Formal Languages.
- To develop some knowledge of the theory of formal languages.
- To develop some skill at the manipulation and construction of formal grammars.
- To understand the hierarchy of languages and grammars, and to understand the power and limitations of each.
- Automata.
- To understand some of the models of computation: Turning machines, mu recursive functions.
- To understand how Church's Thesis relates algorithms to these models of computation.
- To investigate many of the automata which are used as models of computation, and how they correspond to formal languages and grammars.
- To begin to perceive the ways in which the theory of computation, the theory of automata, and formal languages relate to programming and software.
Learning Outcomes: |
CSA 473.1: To be able to design and trace automata and grammars. |
CSA 473.2: Describe the elements of the Chomsky hierarchy. |
CSA 473.3: Explain how some problems have no algorithmic solution. |
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 CSA 573 will be given additional readings and/or assignments.
