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:3012:30 (lecture) 
Wednesday
10:3012:30 (lecture) 
Wednesday
14:0016: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)

EpsilonNFAs
(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)

EpsilonNFAs 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)

Contextfree 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 nonrecursive/nonR.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
 NPcompleteness
(Lec 45,46)

Complexity classes above NP
(Lec 47,48)

NPcomplete 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 finitestate 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 epsilontransitions
 eliminating epsilontransitions
 What you should know after the lecture
 how to prove that epsilonNFAs and NFAs accept the same class of
languages
 how to construct an NFA from a given epsilonNFA
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 contextsensitive)
 grammars of type 2 (or contextfree)
 grammars of type 3 (or regular)
 epsilonproductions 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 epsilonproduction in a grammar of type 1
Lectures 21,22  8/11/2006
 Topics
[M2: Part 5]
 contextfree grammars
 parsetrees for contextfree grammars
 ambiguous grammars
 What you should know after the lecture
 how to construct the parsetree corresponding to a derivation
 recognize when a contextfree 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 epsilontransitions, eliminating unitproductions)
 What you should know after the lecture
 how to eliminate useless symbols from a CFG
 how to eliminate epsilonproductions from a CFG
 how to eliminate unitproductions 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 contextfree 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 contextfree by applying the
pumping lemma
 under which operations contexfree languages are closed and not
closed
Lectures 27,28  15/11/2006
 Topics
[M2: Part 7b]
 closure properties for contextfree languages
 complexity of decision problems for contextfree languages
 conversion to Chomsky normal form
 testing emptiness of a CFL
 What you should know after the lecture
 which decision problems related to contextfree 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 Helloworld 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 contextfree 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
 multitape 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 multitape TM can be simulated by a singletape TM
 how a nondeterministic TM can be simulated by a multitape TM (and
hence also by a singletape TM)
 the cost of simulating a nondeterministic TM by a deterministic TM
Exercise 7  6/12/2006
 Exercises on closure properties of contextfree 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
 nonR.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/nonR.E.
 encoding Turing Machines as binary strings/integers
 enumerating binary strings/Turing Machines
 a nonR.E. language: the diagonalization languages
 a nonrecursive 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 nonR.E.
 how to prove that the universal language is nonrecursive
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
 polytime reductions
 NPhardness and NPcompleteness
 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 NPhard
Lectures 47,48  17/1/2007
 Topics
[M2: Part 10]
 coNPcomplete 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, 29May2008 12:41:39 CEST