Final Exam Study Guide
CSE 322: Introduction to Formal Models in Computer Science
Winter
2003
Final Exam, 2:30 - 4:20, Friday, December 12, 2003
- Final Exam Policies
-
The Final Exam allows for open book and open notes. Bring the text book and your
own personal notes including any
handouts from the class or pages downloaded from the 322 homepage. Nothing else.
-
The exam begins promptly at 2:30 and ends at 4:20.
- Topics covered
-
Alphabets, strings, and languages. Operations of concatenation and
reversal on strings. Operations of union, complement, intersection,
concatenation, powering, Kleene star, and reversal on languages.
-
Finite automata. The equivalence of
deterministic and nondeterministic finite automata.
The subset construction. The cross
product construction. Behavioral lemmas and their use.
Finding lower bounds on the number of states
for certain regular languages.
-
Regular expressions. Regular languages and ways to prove properties
about regular languages using induction on regular expression length.
-
Finite automata and regular expressions. Equivalence of finite automata
and regular expressions. Finite automata constructions for union,
concatenation, Kleene star, complement, and intersection and other operations.
State elimination
algorithm for finding a regular expression equivalent to a NFA.
-
Nonregular languages. Direct proofs of nonregular languages using
the pigeon hole principle. The pumping lemma for regular languages
and its applications.
-
Algorithms for finite state automata. Algorithm for removing e-moves.
Polynomial time algorithm for testing membership for NFAs without constructing
the equivalent DFA (running an NFA deterministically).
Algorithms for testing emptiness and finiteness of languages
accepted by finite automata. Expressing a problem about finite automata
as a problem about graphs. Warshall's algorithms for computing the reflexive,
transitive closure of a graph.
-
Context-free grammars. Abiguity and Chomsky normal form. Closure properties:
union, concatenation, Kleene star, reversal, prefix. Not closed under
complement and intersection.
- Pushdown automata. Equivalence with context-free grammars. Top-down
and bottom-up constructions of PDAs from grammars. Deterministic PDAs.
- Non-context-free languages. The pumping lemma and applications.
- Algorithms for context-free grammars. The CYK algorithms for membership.
Algorithms for testing emptiness and finiteness.
- Undecidable problems about context-free grammars. Ambiguity,
equivalence, and regularity. No proofs.
- Turing machines. Equivalence of multitape and single tape Turing machines.
Church-Turing thesis. The universal Turing machine.
- Decidability. The undecidability of the halting problem for Java
programs.
- The Sequitur algorithm for data compression.
- Basics of cellular automata.
-
Study suggestions
-
Do the old final exam in an exam setting.
-
Work in study groups to help each other out in preparation. Give each other
problems to do in an exam setting. After doing the problems alone, critique
each others answers.
- Practice each algorithm to improve understanding and accuracy.
Creating an equivalent DFA from a NFA.
Creating an equivalent regular expression from a NFA.
Creating an equivalent NFA from a regular expression.
Removing epsilon-transitions.
-
Review chapters 0,1,2, and the parts of chapters 3 and 4 that we covered in
class.
-
Do concrete problems from the book:
1.12, 1.14, 1.16, 1.17, 1.18, 1.23, 1.31, 1.32, 1.37,
2.4, 2.6, 2.7, 2.14, 2.15, 2.18,
3.8, 3.14, 3.15