Foundations of Computing (2010/2011)

Course code
Name of lecturer
Roberto Giacobazzi
Roberto Giacobazzi
Number of ECTS credits allocated
Other available courses
Academic sector
Language of instruction
I semestre dal Oct 4, 2010 al Jan 31, 2011.
Web page

Lesson timetable

Learning outcomes

The course covers standard principles and methods in theoretical computer science, notably in automata theory and computability. The course is structured in two parts: in the first part we cover automata, regular languages, context-free grammars, normal forms and formal Chomsky's language hierarchy. In the second part we cover the notion of computable function, decidability and issues in the mathematical or recursion.

The course requires the standard courses on Programming, Algorithms, Discrete mathematics and logic.


Automata and formal languages (20h): Formal languages and grammars, finite state automata, regular languages, context-free languages, normal forms, Push-down automata, Chomsky classification of formal languages. Computability (25h): intuitive notion of algorithm, Turing analysis of computable functions, Turing machines and WHILE-programs, Church thesis, Goedelization, universality, Theorem s-m-n, unsolvable problems and halting problem, metaprogramming, recursive and recursive enumerable sets, Recursion theorems, Rice Theorem, reducibility, complete, creative and productive sets.

Assessment methods and criteria

Written exam