Free University of Bozen-Bolzano
Faculty of Computer Science
Master of Science in Computer Science
European Master in Computational Logic
Home page of the course
Theory of Computing
The midterm exam will be held on Tuesday 5/12/2017 at 14:00-16:00
in lecture room E2.20.
Please use this online form to register
for the midterm exam.
Registration is mandatory, and registrations will be closed on
30/11/2017 at 20:00.
- 29/11/2017: The lecture notes for
Exercise 6 and 7 are available. Exercise 7 is in preparation of the
midterm exam. The notes contain additional exercises that have not been
covered in class.
- 27/11/2017: The lecture notes for
Part 5 are available.
- 27/11/2017: The lecture notes for
Exercises 4 and 5 are available.
Objectives. The objective of the Theory of Computing course is to
introduce and study abstract, mathematical models of computation (such as
Turing machines, formal grammars, recursive functions), and to use the abstract
computation models to study the ability to solve computational problems, by
identifying both the intrinsic limitations of computing devices, and the
practical limitations due to limited availability of resources (time and
space). A second objective is to show how to reason and prove properties about
computations in a precise, formal, abstract way.
Prerequisites. There are no prerequisites in terms of courses to
attend. Students should be familiar with notions of mathematics and set theory,
and with basic proof techniques, as taught in the mathematics courses of a
bachelor in computer science.
[M1] Introduction to Automata Theory,
Languages, and Computation (3rd edition). J.E. Hopcroft, R. Motwani,
J.D. Ullman. Addison Wesley, 2007.
Additional reading material
Notes for Theory of Computing. Diego Calvanese. 2013. Available
as scanned pages in pdf.
[M3] Languages and Machines (3rd
edition). Thomas A. Sudkamp. Addison Wesley, 2005.
Only Chapter 13.
The Convenience of
Tilings. Peter van Emde Boas. In Complexity, Logic, and
Recursion Theory, volume 187 of Lecture Notes in Pure and
Applied Mathematics, pages 331-363, 1997.
Exercises on Theory of
Computing. Available as scanned pages in pdf.
Further interesting and fun material
- Elements of the Theory of Computation (2nd edition).
H.R. Lewis, C.H. Papadimitriou. Prentice Hall. 1998.
- Introduction to the Theory of Computation. M. Sipser. PWS
Publishing Company. 1997.
- Computational Complexity. C.H. Papadimitriou. Addison Wesley.
- The Universal Computer: The Road from Leibniz to Turing.
M. Davis. A K Peters/CRC Press. 2011.
Full text accessible to all unibz users at Safari Books Online.
Church-Turing Thesis. Copeland, B. Jack. The Stanford
Encyclopedia of Philosophy. Fall 2008 Edition.
- The Status of the P
versus NP Problem. Lance Fortnow. Communications of the ACM.
Vol. 52 No. 9, Pages 78-86, September 2009.
P, NP, and Computational Complexity. Moshe Y. Vardi.
Communications of the ACM. Vol. 53 No. 11, Page 5, November 2010.
the Unsolvable. Moshe Y. Vardi.
Communications of the ACM. Vol. 54 No. 7, Page 5, July 2011.
Begat Computing?. Moshe Y. Vardi.
Communications of the ACM. Vol. 56 No. 1, Page 5, January 2013.
Turing Have Won the Turing Award?. Moshe Y. Vardi.
Communications of the ACM. Vol. 60 No. 11, Page 7, November 2017.
Interview with Stephen A. Cook. Philip L. Frana.
Communications of the ACM. Vol. 55 No. 1, Pages 41-46, January 2012.
- Rosser's Theorem
via Turing machines. Scott Aaronson. Shtetl-Optimized - The
Blog of Scott Aaronson. 21 July 2011
- Office hours
- Teaching assistant: there is no teaching assistant for this course. The
exercise hours are taught by the lecturer.
- Schedule: The course is taught in the 1st semester: from October 4,
2017 to January 17, 2018.
See also the
timetable page for changes.
- Lectures (Lecture Room E223,
- Tuesday 8:30-10:30
- Wednesday 8:30-10:30
- Exercises (Lecture Room E220, usually): Tuesday 14:00-16:00
- Additional teaching material
- Lecture notes (made available during
- Esercises solved in
class (made available during the course)
- Course program
- Exam esercises from the last years (in
part with solutions).
Note that Part 1 of the exams up to June 2007 deals with topics that
are not covered anymore in this course. Also, Part 2 of some exams
contains exercises on circuit complexity, which is currently not part
of the course program, and has been substituted by the part on tiling
- Exam dates
- Midterm: end of November (precise date to be announced)
- Winter session: Tuesday, 12/2/2018, 14:00-18:00
- Summer session: Monday, 18/6/2018, 14:00-18:00
- Autumn session: Tuesday, 18/9/2018, 8:30-12:30
- Rules for the exam
- At the exam, the student has to solve exercises and/or
answer questions on the course topics in written or oral form.
- The exam is divided into two parts:
- The two parts of the exam can be taken together in the same
exam session, or separately in different exam sessions.
- Even when the two parts of the exam are taken together, they
can be passed separately.
- For a part to be passed, a minimum of 18/30 points is required
(half marks are rounded upwards).
- A passed part of the exam (or the passed midterm) is valid
until the end of the academic year (i.e., exam session of September).
If the other part is not passed by then, the passed part is lost
and cannot be carried over to the next academic year.
- For the written exam, each part has a duration of 90 minutes, with 15
minutes break between the two parts. During the exam, it
will not be possible to consult any kind of material, to use
laptops, smartphones, or tablets, or to leave the exam room before the
break/end of the exam.
teaching page of Diego Calvanese
Wednesday, 29-Nov-2017 10:34:08 CET