MCS 441 Theory of Computation
Study Guide
The final exam will be on Wednesday December 8 from 8-10 in 307 AH.
The exam will be cummulative covering chapter 1-5.1
but roughly 2/3 of the exam will
cover material from chapter the later half of the course.
Office Hours Finals Week: Monday and Tuesday 1-3 or by
appointment.
Chapter 1
You should be familiar with the following concepts
- Deterministic and Nondeterministic Finite Automata
- Regular Languages and their closure properties
- Regular Expressions
- Pumping Lemma
You should be able to
- Construct DFA and NFA to recognize languages
- Convert NFA to DFA recognizing same language
- Given a DFA/NFA M find a regular expression R such that L(R)=L(M)
- Given a regular expression find an NFA M with L(R)=L(M)
- Use the pumping lemma to prove that a language is not regular
Chapter 2
You should be familiar with the following concepts
- Context free languages, contex free grammars, derivations, derivation trees
- Pumping Lemma for CFL
- Push down automata
- Equivalence of CFL and languages recognized by PDA
- Chomsky Normal Form
You should be able to
- Construct CFGs to describe languages
- Figure out what language is described by a CFG
- Use the pumping lemma to prove a language is not context free
- Construct PDA to recognize languages
- Given a CFG construct a PDA that recognizes the same language.
- Given a PDA find a CFG describing the same language (You need
to know this is possible but do not need to know the details
of how to do this)
- Given a CFG find an equivalent CFG in Chomsky Normal Form
Chapter 3
You should be familiar with the following concepts
- Turing machines
- configurations, computation histories
- Turing decidable languages
- Turing recognizable languages
- Turing enumerable languages
You should be able to
- construct Turning machines to recognize or decide languages
Key Results that you should be able to sketch the proof of and apply.
- L is Turing recognizable if and only if it is Turing Enumerable
- any language recognized by a mulitape Turing machine is
recognized by a single tape Turing machine.
- Closure of Turing decidable languages under union, intersection,
complement, concatination and *.
- Closure of Turing recognizable languages under union, intersection,
concatination and *.
Chapter 4
You should be familiar with the following concepts
- universal Turing machine
- countable sets
Key Results that you should be able to sketch the proof of and apply.
- There are uncountably many language but only countably many
Turing machines (DFA, PDA, CFG...)
- Decidability of acceptance, emptyness and equality for DFA.
- Decidability of acceptance and emptyness for CFG
- Undecidability of Halting Problem
- L is Turing decidable if and only if it is Turing recognizable
and co-Turing recognizable.
Chapter 5.1
You should be familiar with the following concepts
- linear bounded Turing machines
- proving decidability of problem A by reducing it to a know decidable
problem B
- proving undecidability of problem A by reducing a known undecidable
problem B to A
Key Results that you should be able to sketch the proof of and apply.
- undecidability of acceptance, emptyness and equality problems for
TM.
- decidability of acceptance problem for linear bounded TM,
- undecidability of emptyness or equality problem for linear bounded
TM
- undecidability of ALL and equality problem for CFL
- for f(n) a nice function like a polynomial, 2n, nlog_2(n),
the class T_f={(A,x): A is a Turing machine and A accepts x in
f(|x|) steps} and S_f={(A,x): A is a Turing machine and A accepts using
at most
f(|x|) tape cells} are decidable. [ Done in class]