Free University of Bozen-Bolzano, Faculty of Computer Science Master of Science in Computer Science Theory of Computing Course presentation form A.Y. 2012/2013 Prof. Alessandro Cimatti acimatti@unibz.it 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. Teaching material M1 Introduction to Automata Theory, Languages, and Computation (3rd edition). J.E. Hopcroft, R. Motwani, J.D. Ullman. Addison Wesley, 2007. M2 Lecture Notes for Theory of Computing. Diego Calvanese. 2009. Will be made available on the course web page as scanned pages in pdf. M3 Languages and Machines (3rd edition). Thomas A. Sudkamp. Addison Wesley, 2005. Only Chapter 13. M4 Complexity Theory. Ingo Wegener. Springer, 2005. Only Chapter 14. Additional teaching material is available from the course web page. It includes a set of lecture notes and esercises solved in class (made available during the course), the course program, the exam esercises from the last years (in part with solutions). The material is kindly provided by Prof. Diego Calvanese, who taught the course of Theory of Computing in the preceding years. The course follows closely the program of the preceding years. About the Course • 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 4th 2012 to January 19th 2013, in Seminar Room E411, second floor, Sernesi E. • Lectures: Tuesday 10:30-12:30 and Friday 10:30-12:30 • Exercises: Friday 14:00-16:00 • Office hours Thursday and Friday 9:00-10:30, upon arrangement with the teacher. 1
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: Part 1 covers topics 1-4 of the course program; Part 2 covers topics 5-8 of the course program. 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 pocket calculators or palm PCs, or to leave the exam room before the break/end of the exam. Additional reading 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. 1995. • The 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. • On P, NP, and Computational Complexity. Moshe Y. Vardi. Communications of the ACM. Vol. 53 No. 11, Page 5, November 2010. • Solving the Unsolvable. Moshe Y. Vardi. Communications of the ACM. Vol. 54 No. 7, Page 5, July 2011. pdf • An Interview with Stephen A. Cook. Philip L. Frana. Communications of the ACM. Vol. 55 No. 1, Pages 41-46, January 2012. 2
Detailed Course Program 1. Basic notions [M1: Chapter 1] • basic notions about functions, relations, mathematical logic, formal languages • formal proofs (deductive proofs, proofs by contradiction, equivalences about sets, inductive proofs) 2. Turing Machines [M1: Chapter 8] • The ”basic” TM model • extended TMs 3. Decidability and undecidability [M1: Chapter 9] • recursive, recursively-enumerable, and non recursively enumerable languages • the diagonal and universal languages • arithmetization of TMs 4. Recursive functions [M3] • primitive recursive functions • mu-recursive functions • relationship between TMs and recursive functions 5. P, NP, NP-completeness [M1: Chapter 10] • the classes P and NP • reductions • NP-completeness and NP-complete problems 6. Polynomial Hierarchy and PSPACE [M1: Chapter 11, M2] • complements of languages in NP • polynomial hierarchy • the classes PSPACE and NPSPACE 7. Logarithmic space [M2] • logspace reductions • composition of function computations • the classes L and NL 8. Circuits and complexity of non-uniform problems [M4, M2] • circuits and boolean functions • non-uniform complexity classes • non-uniform TMs and their relationship to circuits • Binary Decision Diagrams and their relationship to non-uniform TMs 3
Recommend
More recommend