## Topics

• Languages
• All computational problems can be reframed as questions of membership in a language (set).
• Drawing Deterministic Finite Automata (DFAs).
• Drawing Nondeterministic Finite Automata (NFAs).
• Converting NFAs to DFAs
• Regular Languages, Closure properties of Regular languages.

## Problems to work on

1. What is a language?
2. Draw a DFA that accepts the strings ending in 01.
3. Draw a DFA that accepts the strings that have an even number of zeros.
4. Draw a DFA that accepts the strings that have an even number of zeros or end in 01.
5. Draw a DFA that accepts the strings that have an even number of zeros and end in 01.
6. Draw a DFA that accepts the strings that have an even number of zeros but don't end in 01.
7. Draw an NFA that accepts the strings that end in 01. Try to make it as simple as possible.
8. Draw an NFA that accepts the strings that have an even number of zeros or end in 01 using six states.
9. Draw an NFA that accepts any string that is a concatenation of a string that has an even number of zeros with a string that ends in 01.
10. Draw an NFA that accepts the strings that have an even number of zeros and end in 01.
11. Draw an NFA that accepts the language 0, using only two states.
12. Convert the previous NFA into a DFA using the method described in class.
13. Draw an NFA with two states that corresponds to the language 0?2*.
14. Convert the previous NFA to a DFA.
15. What is a regular language?
16. Draw the DFA that corresponds to the language 10*10*.
17. What is the Prefix of the language corresponding to the language 10*10*.
18. Draw the DFA for the prefix of the language corresponding to the regular expression 10*10*.
19. What is the MIN of the language 10*10*?
20. Draw the DFA corresponding to the MIN of the language 10*10*.

Dimitri Kountourogiannis, dimitrik@alu\ m.mit.edu