Study Guide
CSE 322: Introduction to Formal Models in Computer Science
Autumn
1998
Midterm Exam, November 6, 1998
- Midterm Policies
-
The midterm is closed book.
-
An 8 1/2 X 11 inch blue (or green) book is required.
-
You may put your own hand written notes in your blue book to aid
you during the exam.
-
The exam begins promptly at 10:30 and ends at 11: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.
-
Regular expressions. Regular languages and ways to prove properties
about regular languages using induction on regular expression length.
-
Finite automata. the equivalence of
deterministic and nondeterministic finite automata.
The subset construction.
-
Finite automata and regular expressions. Equivalence of finite automata
and regular expressions. Finite automata constructions for union,
concatenation, Kleene star, complement, and intersection. The cross
product construction.
-
Nonregular languages. Direct proofs of nonregular languages using
the pigeon hole principle. The pumping lemma for regular languages
and its applications. Finding lower bounds on the number of states
for certain regular languages.
-
Algorithms for finite state automata. Algorithm for removing e-moves.
Polynomial time algorithm for testing membership for NFAs.
Algorithms for testing emptiness and finiteness of languages
accepted by finite automata. Boolean matrices to represent
graphs and their use in algorithms for finite state automata. Warshall's
algorithm.
-
Context-free grammars. Derivations, leftmost derivations, and
parse trees. Ambibuous grammars. Regular languages are also
context-free.
-
Study suggestions
-
Do the old midterm.
-
Work in study groups to help each other out in preparation
-
Review chapter 1, all sections, chapter 2, all sections except
section 2.5, and chapter 3, sections 1 and 2.
-
Do concrete problems from the book:
1.7- 1.7.4, 1.7.5, 1.7.6 |
1.8- 1.8.1, 1.8.2, 1.8.3, 1.8.5 |
2.1- 2.1.1, 2.1.3 |
2.2- 2.2.1, 2.2.3, 2.2.9 |
2.3- 2.3.4, 2.3.7 |
2.4- 2.4.5, 2.4.8 |
2.6- 2.6.2 |
3.1- 3.1.1, 3.1.2, 3.1,3, 3.1.4 |
3.2- 3.2.2, 3.2.3, 3.2.4 |
-
Practice with the techniques we used in class but are not found in the book:
showing lower bounds on the number of states needed to accept certain
regular languages and using Boolean matrices as an aid in solving
problems about finite automata.