Theory of Computation (CS 407)

2021 Spring
Faculty of Engineering and Natural Sciences
Computer Sci.& Eng.(CS)
6.00 / 6.00 ECTS (for students admitted in the 2013-14 Academic Year or following years)
Kemal ─░nan,
Click here to view.
Formal lecture,Interactive lecture,Recitation
Interactive,Communicative,Guided discovery
Click here to view.


Turing machines; recursive numbers and turing computability; solvability and unsolvable problems; concepts of and results on computational complexity; some NP complete problems.


To introduce the foundations of computations in terms of the hierarchy of expressibility of languages culminating with the Turing Machine ; the equivalences between different computational mechanisms as a warm-up to the Church-Turing thesis ; the theoretical limits of computation in terms of decidability and semidecidability of problems starting with the halting problem of a TM and computability of functions ; the practical limits to computation in terms of the tractability of problems , that is, the growth of necessary time and space resources as a function of the size of the problem instances ; recursion theorem as the critical and possibly the only link between existing human-made technologies and self-reproducing biological mechanisms.


Upon completion of the course, student should be able to :

Construct deterministic and nondeterministic Turing Machines and their multitape and other variants by using compositional techniques for formulating and solving decision problems of practical or theoretical significance
Demonstrate the equivalence between different computational tools such as different variants of the Turing Machines using concepts of decidability and semidecidability
Use random access machines (RAMs) and generalized grammars (or rewriting systems) as yet other tools of computation that are equivalent to the TM.
Demonstrate the fact that all multivariable functions on integers (primitive recursive functions) can be derived from simple functions by repeated use of composition and recursion
demonstrate that not all reasonably computable functions are recursive and extend this set to mu-recursive functions by introducing the minimalizable functions
Show that the computational power of generalized grammars, mu-recursive functions and Turing machines are identical
Understand and use the concept of a Universal Turing Machine (UTM) and compute a concrete version of it using either the classical 3-tape model or a RAM
Demonstrate the undecidability of the famous halting problem for TMs and using Turing-computable reductions generate a host of undecidable and un-semidecidable problems
Understand the significance of the busy-beaver problem as an example of the intuitively difficult concept of an uncomputable function
Show that a computer program can use its own definition within its program in a recursive manner by using the recursion theorem and apply this idea to a number of novel decidability problems
Formulate problems of computational complexity and use the associated tools to categorize a problem to be in the polynomial (P), nondeterministic polynomial (NP) , NP-complete or NP-hard class
Generate the starting branches of the tree of NP-complete problems by using polynomial reductions after establishing the SAT problem as the root of this tree using Cook's Theorem where the nodes involved in this tree are the well-known NP-complete problems like the Hamiltonian Cycle , Traveling Salesman and others
Extend the computational time complexity problem to space complexity and formulate some game-theoretic problems that are P-space complete


  Percentage (%)
Final 30
Midterm 25
Exam 35
Homework 10



MAIN TEXT: Elements of the Theory of Computation, Lewis & Papadimitrious, Prentice Hall 1998 (out of print and discontinued)


Introduction to the Theory of Computation, Sipser, 1997 PWS
Computers and Intractability, Garey& Johnson, Freeman 2000