Free University of Bolzano/Bozen
Faculty of Computer Science
Master of Science in Computer Science
Theory of Computing
Lectures A.Y. 2006/2007
Teaching material
[M1] Introduction to Automata Theory, Languages,
and Computation (2nd edition). J.E. Hopcroft, R. Motwani,
J.D. Ullman. Addison Wesley, 2003.
[M2] Lecture Notes for
Theory of Computing. Diego Calvanese. 2006. Available as scanned
pages in pdf.
[M3]
Exercises on Theory of
Computing. Available as scanned pages in pdf.
Lectures
Summary
Week |
Topics |
Monday
10:30-12:30 (lecture) |
Wednesday
10:30-12:30 (lecture) |
Wednesday
14:00-16:00 (exercise) |
Extra
(lecture) |
#1 Oct. 2 |
Course introduction
|
-- |
Course introduction, basic notions about languages
(Lec 1,2)
|
Formal proofs
(Exer 0)
|
#2 Oct. 9 |
Finite automata
|
Deterministic FA
(Lec 3,4)
|
Nondeterministic FA
(Lec 5,6)
|
DFAs and NFAs
(Exer 1)
|
Epsilon-NFAs
(Lec 7,8)
|
#3 Oct. 16 |
Regular expressions
|
Regular expressions, from REs to FAs
(Lec 9,10)
|
From DFAs to REs, closure properties for RLs
(Lec 11,12)
|
Epsilon-NFAs and RE
(Exer 2)
|
#4 Oct. 23 |
Regular languages
| Pumping lemma
(Lec 13,14)
|
Decision properties for RLs, NFA minimization
(Lec 15,16)
|
Regular languages
(Exer 3)
|
#5 Oct. 30 |
Formal grammars
| Formal grammars
(Lec 17,18)
|
-- |
-- |
#6 Nov. 6 |
Context free grammars
| Formal grammars
(Lec 19,20)
|
Context free grammars
(Lec 21,22)
|
Formal grammars
(Exer 4)
|
Simplifying CFGs
(Lec 23,24)
|
#7 Nov. 13 |
Properties of context free grammars
| Chomsky normal form, pumping lemma for CFLs
(Lec 25,26)
|
Closure properties and decision problems for CFLs
(Lec 27,28)
|
Topics for midterm exam
(Exer 5)
|
#8 Nov. 20 |
Decision problems for CFLs
| Midterm exam
(ME)
|
Undecidable problems
(Lec 29,30)
|
Context-free grammars
(Exer 6)
|
#9 Nov. 27 |
Turing Machines
| The Turing Machine
(Lec 31,32)
|
-- |
-- |
Programming techniques for TMs
(Lec 33,34)
|
#10 Dec. 4 |
Extended Turing Machine models
| -- |
Multitape and nondeterministic TMs
(Lec 35,36)
|
Closure properties of CFLs and TMs
(Exer 7)
|
#11 Dec. 11 |
Decidability and undecidability
| Closure properties of R.E. languages
(Lec 37,38)
|
Showing languages to be non-recursive/non-R.E.
(Lec 39,40)
|
Nondeterministic TMs and extensions of TMs
(Exer 8)
|
#12 Dec. 18 |
Decidability and undecidability
| Reductions, Rice's theorem
(Lec 41,42)
|
(In)tractable problems
(Lec 43,44)
|
Recursive and R.E. languages
(Exer 9)
|
#13 Jan. 16 |
Computational complexity
| NP-completeness
(Lec 45,46)
|
Complexity classes above NP
(Lec 47,48)
|
NP-complete problems
(Exer 10)
|
Details
Week 1:
Course introduction
Lectures 1,2 - 4/10/2006
- Topics
[M2: Part 1]
- course presentation
- basic definitions about languages
- What you should know after the lecture
- the formal meaning of alphabet, string, language
Exercise 0 - 4/10/2006
- Review of basic proof techniques
[M2:
Part 0]
- deductive proofs
- proving equivalences of sets
- proof by contradiction
- proof by induction
Week 2:
Finite automata
Lectures 3,4 - 9/10/2006
- Topics
[M2: Part 2]
- finite state machines
- deterministic finite automata (DFA)
- extended transition function for a DFA
- nondeterministic finite automata (NFA)
- What you should know after the lecture
- how a finite-state machine works (informally)
- the formal definitions of a DFA and of an NFA, and of the language
they accept
- construct a DFA and an NFA for a given language
Lectures 5,6 - 11/10/2006
- Topics
[M2: Part 2]
- relationship between DFAs and NFAs (subset construction)
- What you should know after the lecture
- how to prove that DFAs and NFAs accept the same class of languages
- how to contstruct a DFA from a given NFA
Exercise 1 - 11/10/2006
- Exercises on finite automata
[M3:
Exercise 1]
- [M1]: Exercises 2.2.2, 2.2.5, 2.2.8, 2.3.1
Lectures 7,8 - 13/10/2006
- Topics
[M2: Part 2]
- finite automata with epsilon-transitions
- eliminating epsilon-transitions
- What you should know after the lecture
- how to prove that epsilon-NFAs and NFAs accept the same class of
languages
- how to construct an NFA from a given epsilon-NFA
Week 3:
Regular expressions
Lectures 9,10 - 16/10/2006
- Topics
[M2: Part 3]
- regular expressions
- algebraic laws for regular expressions
- converting a regular expression to a finite automaton
- What you should know after the lecture
- what the language generated by a regular expression is
- what algebraic laws hold for regular expressions
- how to prove that each language generated by a R.E. is accepted by
some finite automaton
- how to construct a finite automaton from a given R.E.
Lectures 11,12 - 18/10/2006
- Topics
[M2: Part 3,
Part 4]
- converting a finite automaton to a regular expression
- closure properties of regular expressions
- What you should know after the lecture
- how to prove that finite automata accept exactly the regular
languages
- how to construct a R.E. from a given automaton
- that regular languages are closed under regular and boolean
operations
Exercise 2 - 18/10/2006
- Exercises on finite automata and regular expressions
[M3:
Exercise 2]
Week 4:
Regular languages
Lectures 13,14 - 23/10/2006
- Topics
[M2: Part 4]
- pumping lemma for regular languages
- proving languages not to be regular
- What you should know after the lecture
- how to prove that a languages is not regular
- what properties can be decided about regular languages
Lectures 15,16 - 25/10/2006
- Topics
[M2: Part 4]
- decision problems for regular languages
- minimization of finite automata
- What you should know after the lecture
- what properties about regular languages can be decided, and what is
the computational cost
- how to minimize a finite automaton
Exercise 3 - 25/10/2006
Week 5:
Formal grammars
Lectures 17,18 - 30/10/2006
- Topics
[M2: Part 5]
- Chomsky formal grammars
- derivation
- What you should know after the lecture
- what a Chomsky formal grammar is
- what the language defined by a formal grammar is
Week 6:
Context free grammars
Lectures 19,20 - 6/11/2006
- Topics
[M2: Part 5]
- classification of formal grammars
- grammars of type 0
- grammars of type 1 (or context-sensitive)
- grammars of type 2 (or context-free)
- grammars of type 3 (or regular)
- epsilon-productions in a grammar
- What you should know after the lecture
- how formal grammars are classified
- recognize what the type of a grammar is
- effect of the presence of epsilon-production in a grammar of type 1
Lectures 21,22 - 8/11/2006
- Topics
[M2: Part 5]
- context-free grammars
- parse-trees for context-free grammars
- ambiguous grammars
- What you should know after the lecture
- how to construct the parse-tree corresponding to a derivation
- recognize when a context-free grammar is ambiguous
Exercise 4 - 8/11/2006
Lectures 23,24 - 10/11/2006
- Topics
[M2: Part 7]
- simplifying context free grammars (eliminating useless symbols,
eliminating epsilon-transitions, eliminating unit-productions)
- What you should know after the lecture
- how to eliminate useless symbols from a CFG
- how to eliminate epsilon-productions from a CFG
- how to eliminate unit-productions from a CFG
Week 7:
Properties of context free grammars
Lectures 25,26 - 13/11/2006
- Topics
[M2: Part 7]
- Chomsky normal form for a CFG
- pumping lemma for context-free languages
- What you should know after the lecture
- how to convert a CFG into Chomsky normal form
- how to prove that a language is not context-free by applying the
pumping lemma
- under which operations contex-free languages are closed and not
closed
Lectures 27,28 - 15/11/2006
- Topics
[M2: Part 7b]
- closure properties for context-free languages
- complexity of decision problems for context-free languages
- conversion to Chomsky normal form
- testing emptiness of a CFL
- What you should know after the lecture
- which decision problems related to context-free languages can be
solved by an algorithm, and what is the computational cost of the
algorithm
Exercise 5 - 15/11/2006
- Exercises on regular languages, automata, and grammars
(preparation for midterm exam)
[M3:
Exercise 7]
Week 8:
Decision problems for CFLs
Midterm exam - 20/11/2006
- Topics
- regular languages
- automata
- formal grammars
Lectures 29,30 - 22/11/2006
- Topics
[M2: Part 8]
- testing membership in a CFL
- undecidable problems for CFLs
- an example for an undecidable problem: the Hello-world problem
- What you should know after the lecture
- decision properties for CFLs
- a technique to prove that a problem is undecidable
Exercise 6 - 22/11/2006
- Exercises on context-free grammars and closure properties of CFLs
[M3:
Exercise 7]
Week 9:
Turing Machines
Lectures 31,32 - 27/11/2006
- Topics
[M2: Part 8]
- proving undecidability by reduction to an undecidable problem
- the Turing Machine
- instantaneous description of a Turing Machine
- recursive enumerable and recursive languages
- What you should know after the lecture
- how one can exploit an undecidable problem to show that other
problems are also undecidable
- how a Turing Machine is formally defined
- relationship between acceptance by a TM and acceptance by a FA
Lectures 33,34 - 1/12/2006
- Topics
[M2: Part 8]
- examples of Turing Machines
- programming techniques for Turing Machines
- storage in the state
- multiple tracks
- What you should know after the lecture
- how one can program a TM easier by imposing structure on states and
tape symbols
Week 10:
Extended Turing Machine models
Lectures 35,36 - 6/12/2006
- Topics
[M2: Part 8]
- programming techniques for Turing Machines
- subroutines and procedure calls
- multi-tape Turing Machines
- running time of a Turing Machine
- nondeterministic Turing Machines
- What you should know after the lecture
- how one can simulate a procedure call with a TM
- how a multi-tape TM can be simulated by a single-tape TM
- how a nondeterministic TM can be simulated by a multi-tape TM (and
hence also by a single-tape TM)
- the cost of simulating a nondeterministic TM by a deterministic TM
Exercise 7 - 6/12/2006
- Exercises on closure properties of context-free languages and
Turing Machines
[M3:
Exercise 8]
Week 11:
Decidability and undecidability
Lectures 37,38 - 11/12/2006
- Topics
[M2: Part 8]
- classes of languages/problems
- recursive/decidable languages
- recursively enumerable (R.E.) languages
- non-R.E. languages
- closure properties of recursive and R.E. languages
- What you should know after the lecture
- how languages/problems can be classified
- how to prove closure properties of recursive and R.E. languages
Lectures 39,40 - 13/12/2006
- Topics
[M2: Part 9]
- showing languages to be nonrecursive/non-R.E.
- encoding Turing Machines as binary strings/integers
- enumerating binary strings/Turing Machines
- a non-R.E. language: the diagonalization languages
- a non-recursive language: the universal language
- What you should know after the lecture
- how to encode a Turing Machine as a binary string
- how to prove that the diagonalization language is non-R.E.
- how to prove that the universal language is non-recursive
Exercise 8 - 13/12/2006
- Exercises on nondeterministic Turing Machines and extensions of
Turing Machines
[M3:
Exercise 09]
Week 12:
Decidability and undecidability
Lectures 41,42 - 18/12/2006
- Topics
[M2: Part 9]
- the notion of reduction between problems/languages
- Rice's theorem
- What you should know after the lecture
- what a reduction is
- how to prove Rice's theorem
Lectures 43,44 - 20/12/2006
- Topics
[M2: Part 10]
- tractable and intractable problems
- the classes P and NP
- a problem in NP: SAT
- What you should know after the lecture
- how the classes P and NP are defined
- how to show a problem to be in NP
Exercise 9 - 20/12/2006
Week 13:
Computational complexity
Lectures 45,46 - 15/1/2007
- Topics
[M2: Part 10]
- SAT and CSAT
- poly-time reductions
- NP-hardness and NP-completeness
- Cook's theorem
- What you should know after the lecture
- how to polynomially reduce one problem to another
- sketch the proof of Cook's theorem
- how to show a problem to be NP-hard
Lectures 47,48 - 17/1/2007
- Topics
[M2: Part 10]
- coNP-complete problems
- oracle Turing Machines
- the polynomial hierarchy and PSPACE
- the classes EXPTIME, EXPSPACE, and the exponential hierarchy
- What you should know after the lecture
- what an oracle TM is
- how the polynomial hierarchy is defined
- typical problems complete for the classes EXPTIME and EXPSPACE
Exercise 10 - 17/1/2007
Course home page
Last modified:
Thursday, 29-May-2008 12:41:39 CEST