The course sets the theoretical bases for being able to discuss two fundamental properties of computational problems.
Given a problem, we will initially be concerned about its computability:
When a problem is found out to be solvable, we can wonder how efficiently it can be done.
Basic notions of mathematical logic
At the end of the course, the students will be able to:
For the actual program, see below.
The following books may be useful, but none is mandatory. References to online material will be provided in the course program section.
Computational Complexity: A Modern Approach. Cambridge University Press, 2009. ISBN 9780521424264 [Draft of the book]and .
Introduction to Automata Theory, Languages and Computation. Pearson new International Edition, 2013. ISBN: 9781292039053, , and .
Computational complexity. Addison Wesley (Pearson College Div.), 1994. ISBN 9780020153085.
(See the lecture notes for details)
The exam consists of a written test, with exercises and theoretical questions. Examples will be provided in due time in the lecture notes. The “Computability” part will account for about 1/3rd of the final mark, “Computational Complexity” for the remaining 2/3rds.
During the course, there were two partial tests, the first on the Computability part, the second on Complexity. Only students passing the first partial test with a minimum 15/30 mark were admitted to the second one.
Students passing both partial tests with a minimum 15/30 mark received the weighted average of their partial marks (Complexity weighs twice) as their final course mark.