Theory of Computation (CS 503)

2022 Spring
Faculty of Engineering and Natural Sciences
Computer Sci.& Eng.(CS)
Kemal İnan,
Click here to view.
Doctoral, Master
Formal lecture,Interactive lecture,Recitation
Interactive,Learner centered,Communicative
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


1. Develop and deepen the current and advanced knowledge in the field with original thought and/or research and come up with innovative definitions based on Master's degree qualifications 5

2. Conceive the interdisciplinary interaction which the field is related with ; come up with original solutions by using knowledge requiring proficiency on analysis, synthesis and assessment of new and complex ideas. 4

3. Evaluate and use new information within the field in a systematic approach. 2

4. Develop an innovative knowledge, method, design and/or practice or adapt an already known knowledge, method, design and/or practice to another field; research, conceive, design, adapt and implement an original subject. 4

5. Critical analysis, synthesis and evaluation of new and complex ideas. 4

6. Gain advanced level skills in the use of research methods in the field of study. 4

7. Contribute the progression in the field by producing an innovative idea, skill, design and/or practice or by adapting an already known idea, skill, design, and/or practice to a different field independently. 4

8. Broaden the borders of the knowledge in the field by producing or interpreting an original work or publishing at least one scientific paper in the field in national and/or international refereed journals. 2

9. Demonstrate leadership in contexts requiring innovative and interdisciplinary problem solving. 4

10. Develop new ideas and methods in the field by using high level mental processes such as creative and critical thinking, problem solving and decision making. 4

11. Investigate and improve social connections and their conducting norms and manage the actions to change them when necessary. 1

12. Defend original views when exchanging ideas in the field with professionals and communicate effectively by showing competence in the field. 2

13. Ability to communicate and discuss orally, in written and visually with peers by using a foreign language at least at a level of European Language Portfolio C1 General Level. 1

14. Contribute to the transition of the community to an information society and its sustainability process by introducing scientific, technological, social or cultural improvements. 4

15. Demonstrate functional interaction by using strategic decision making processes in solving problems encountered in the field. 3

16. Contribute to the solution finding process regarding social, scientific, cultural and ethical problems in the field and support the development of these values. 2

1. Develop the ability to use critical, analytical, and reflective thinking and reasoning 4

2. Reflect on social and ethical responsibilities in his/her professional life. 1

3. Gain experience and confidence in the dissemination of project/research outputs 1

4. Work responsibly and creatively as an individual or as a member or leader of a team and in multidisciplinary environments. 2

5. Communicate effectively by oral, written, graphical and technological means and have competency in English. 3

6. Independently reach and acquire information, and develop appreciation of the need for continuously learning and updating. 3

1. Design and model engineering systems and processes and solve engineering problems with an innovative approach. 3

2. Establish experimental setups, conduct experiments and/or simulations. 2

3. Analytically acquire and interpret data. 4

1. Develop, interpret and use statistical analyses in decision making.

1. Display knowledge of contemporary issues in molecular biology, genetics and bioengineering and apply them to a particular problem.

2. To develop knowledge and theory by using data and scientific methods in molecular biology, genetics and bioengineering.

3. Display a good command of scientific literature in biology, genetics and bioengineering for developing novel projects, improving the quality of research and products

1. Apply knowledge of mathematics, science, and engineering in computer science and engineering related problems. 5

2. Display knowledge of contemporary issues in computer science and engineering and apply to a particular problem. 4

3. Demonstrate the use of results from interpreted data to improve the quality of research or a product in computer science and engineering. 3

1. To have acquired basic theoretical knowledge and technical infrastructure in the field of cyber security,

2. To have developed a deep experience and understanding on the basic methods and human-induced and techinal weaknesses followed by the existing and future cyber attacks, threats and counterfeiting,

3. To be able to analyze an IT infrastructure comprehensively and to determine risk by monitoring the existing weaknesses and to determine a cyber security strategy,

4. To take the necessary measures to prevent possible costs and destruction during the occurrence of cyber attacks,

5. To be able to use current cyber security software tools and related software for professional purposes

1. Understand the conceptual foundations of analytical methods and techniques for data science

2. Understand the theory and practice of applied information systems by developing the necessary computer software skills

3. Transform high-volume data sets into actionable information format and use statistical data analysis tools to support decision making within the corporate structure

4. Understand and apply quantitative modeling and data analysis techniques to extract information from big data and use these findings to analyze business problems, present results using data visualization tools and report findings

5. Understand data quality, data integrity and data veracity, recognize ethical aspects of business related to intellectual property and data privacy

1. Use advanced Math (including probability and/or statistics), advanced sciences, advanced computer and programming, and advanced Electronics engineering knowledge to design and analyze complex electronics circuits, instruments, software and electronic systems with hardware/software. 4

2. Analyze and design advanced communication networks and systems, advanced signal processing algorithms or software using advanced knowledge on diff. equations, linear algebra, complex variables and discrete math. 3

1. Design and model energy systems and processes that will increase efficiency, decrease costs and reduce environmental impact.

2. Develop a basic understanding of the multidisciplinary aspect of energy area and understand the interactions between technical, economic, social and policy aspects.

3. Develop the scientific and technical fundamentals to understand and communicate the working principles of energy systems such as wind turbines, energy storage and conversion devices, electrical power systems, etc.

4. Apply scientific and engineering principles to energy systems for creating innovative solutions to world's energy related problems such as scarce resources, sustainability, energy efficiency and climate change.

5. Interact with researchers from different disciplines to exchange ideas and identify areas of research collaboration to advance the frontiers of present knowledge and technology; determine relevant solution approaches and apply them by preparing a research strategy.

6. Take part in ambitious and highly challenging research to generate value for both the industry and society.

1. Establish a strong theoretical background in several of a broad range of subjects related to the discipline, such as manufacturing processes, service systems design and operation, production planning and control, modeling and optimization, stochastics, statistics. 2

2. Develop novel modeling and / or analytical solution strategies for problems in integrated production and service systems involving human capital, materials, information, equipment, and energy, also using an interdisciplinary approach whenever appropriate. 3

3. Implement solution strategies on a computer platform for decision-support purposes by employing effective computational and experimental tools. 2

4. Acquire skills to independently explore and tackle problems related to the discipline that were not encountered previously. Develop appropriate modeling, solution, implementation strategies, and assess the quality of the outcome. 3

1. Apply a broad knowledge of structure & microstructure of all classes of materials, and the ability to use this knowledge to determine the material properties. 1

2. Apply a broad understanding of the relationships between material properties, performance and processing. 1

3. Apply a broad understanding of thermodynamics, kinetics, transport phenomena, phase transformations and materials aspects of advanced technology. 1

4. Demonstrate hands-on experience using a wide range of materials characterization techniques. 1

5. Demonstrate the use of results from interpreted data to improve the quality of research, a product, or a product in materials science and engineering. 1

1. Develop abstract mathematical thinking and mathematical intuition.

2. Demonstrate a broad understanding of several areas of advanced mathematics and of their interrelations.

3. Have knowledge of the fundamental and advanced concepts, principles and techniques from a range of topics.

4. The ability to tackle complex problems, reveal structures and clarify problems, discover suitable analytical and/or numerical methods and interpret solutions.

5. Analyze problems of the area of specialization, plan strategies for their solution, and apply notions and methods of abstract and/or applied mathematics to solve them.

1. Apply software, modeling, instrumentation, and experimental techniques and their combinations in the design and integration of electrical, electronic, control and mechanical systems. 4

2. Interact with researchers from different disciplines to exchange ideas and identify areas of research collaboration to advance the frontiers of present knowledge and technology; determine relevant solution approaches and apply them by preparing a research strategy. 4

3. Take part in ambitious and highly challenging research to generate value for both the industry and society. 4

1. To have knowledge and experience in the research, design, analysis and development of advanced manufacturing and production systems and the machinery and equipment of these systems

2. Identify product performance and manufacturing processes relationship and optimize process parameters

3. Interpret the resultant data to improve the quality and performance of a product

4. Research and apply manufacturing engineering knowledge on industrial applications

1. Display knowledge of contemporary issues in physics and apply them to specific problems in the field of study.

2. Interpret and criticize newly developed theoretical models and experimental results in a particular field in physics

3. Display a good command of scientific literature in physics for developing novel projects, improving the quality of research and products

4. Apply knowledge of mathematics to analyze experimental results and to solve problems in physics

1. Employ mathematical methods to solve physical problems and understand relevant numerical techniques. 4

2. Conduct basic experiments or simulations. 2

3. Analytically acquire and interpret data. 3

4. Establish thorough understanding of the fundamental principles of physics. 2


  Percentage (%)
Final 30
Midterm 25
Quiz 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