IMG_5657 - Version 2

Description of the course

The purpose of the course is to study the limits of computation, providing the formal tools and fundamental knowledge to study problems, both tractable and intractable, by a computer. The course is structured in two parts.

In the first part we consider the theory of formal languages and automata, moving from the simplest machines with finite states towards the most powerful Turing Machines and modern computer systems. We explore the limitations of all these systems in the hypothesis of no bound in computing resources such as time or space or energy, hence exploring the nature of problems that admit an algorithmic solution.

The second part considers instead the hierarchy of problems that can be computed within a fixed bound of resources (time and space), the interrelationships among complexity classes, and the study of both NP-complete and provably intractable problems, constituting the theory of computational complexity. The emphasis will be on written problem sets containing challenging problems. The key techniques to be learned are those of simulation of one computational model by another, reduction of one problem to another, and methods for classifying problem complexity.


Grading Scale and Policies

The final grade is based on the percentage of all available points that you receive. A typical example of how percentages might translate into letter grades is A: 91-100, B: 71-90, C: 51-70, D:31-50, E:0-30. Without prior arrangement, missed exams and late homework assignments are not graded for credit. In exceptional circumstances extra time can be requested.
The program is the same for graduate and undergraduate students. Undergraduate students will be assessed using the same scale as graduate students, with the percentage multiplied by a factor of 1.2 for evaluation purposes. Dedicated additional hours will be allocated for clarifications specifically intended for undergraduate students.

Schedule in Spring 2025: Tue & Thu 12:30pm - 1:45pm

The course on Theory of Computation (ToC) at UA

01/21: Introduction to ToC: the main problems in computability and complexity.
Slides 0

01/23: Cantor’s theorem, languages over an alphabet, and the Entscheidungsproblem (the decision problem).
Video HD, Video, Notes, Zoom.

Part 1 (Problems and Computation)

01/28: Regular languages, deterministic finite state automata and non-deterministic ones. The theorems of Rabin-Scott.
Video, Notes

01/30: Myhill-Nerode characterisation of regular languages.
Video, Notes

02/04: Pumping Lemma for regular languages. Examples of use. Context free languages. (Homework 1)
Video, Notes

02/06: Normal forms and Pumping Lemma context free languages.
Video, Notes

02/11: Exercises and closure properties of CFL.
Video, Notes

02/13: Exercises.
Video, Notes

02/18: Push Down Automata
Video, Notes

02/20: Primitive recursive functions, Turing Machines and computable functions. Church-Turing Thesis. Universality of the Turing model of computation.
Video, Notes

02/25: s-m-n theorem, compilation and interpretation by Futamura's projections. Non solvable problems.(Homework 2)
Video, Notes and a Beautiful Video with the Proof.

02/27: Recursive and recursive enumerable (re) sets, Post Theorem. Kleene theorem of characterisation of re sets.
Video, Notes

03/04: Recursion theorems and Rice Theorem.
Video, Notes

03/06: Rice Theorem: Examples
Video, Notes

Part 2 (Reduction: Towards Complexity Theory)

03/18: Reduction and completeness (Mid Term exam)
Video, Notes

03/20: Properties of functional reduction.
Video, Notes

03/25: Creative and productive sets. The Computability Hierarchy.
Video, Notes

03/27: Examples
Video, Notes

04/01: Examples and exercises
Video, Notes

04/02: Supplementary material on exercises. (GS701 at 10am-11:30am)
Video, Notes

04/03: Gödel Incompleteness. Computational complexity.
Video, Notes

04/08: Blum’s abstract theory of computational complexity. Properties of computational complexity. (Homework 3 & Backup 1)
Video, Notes

04/10: The Speed-up theorem
Video, Notes

04/15: P and NP: properties.
Video, Notes

04/17: P, NP and co-NP.
Video, Notes

04/22: Reductions and completeness: SAT and Cook's Theorem.
Video, Notes

04/24: Examples.
Video, Notes

04/29: Examples, EXP and NEXP. (Homework 4 & Backup 2)
Video, Notes

05/01: Time hierarchy, Ladner’s theorem and Space complexity.
Video, Notes

05/14: Final Exam!!