BÄ°L604 - COMPUTATIONAL THEORY

Course Name Code Semester Theory
(hours/week)
Application
(hours/week)
Credit ECTS
COMPUTATIONAL THEORY BÄ°L604 Any Semester/Year 3 0 3 8
Prequisites
Course languageTurkish
Course typeElective 
Mode of DeliveryFace-to-Face 
Learning and teaching strategiesLecture
Discussion
Preparing and/or Presenting Reports
Project Design/Management
 
Instructor (s)Department Responsible (bbm-bologna@cs.hacettepe.edu.tr) 
Course objectiveThe objective of this course is to introduce students to this fundamental area of computer science which enables students to focus on the study of abstract models of computation. These abstract models allow the students to assess via formal reasoning what could be achieved through computing when they are using it to solve problems in science and engineering. The course exposes students to the computability theory, as well as to the complexity theory. The goal is to allow them to answer fundamental questions about problems, such as whether they can or not be computed, and if they can, how efficiently.  
Learning outcomes
  1. Synthesize finite automata with specific properties.
  2. Use the relationship between recognizability and decidability to determine decidability properties of problems.
  3. Describe concrete examples of undecidable problems from different fields.
  4. Describe concrete examples of NP-complete problems from different fields.
  5. Define deterministic and nondeterministic computation time and space, and explain the relationships among them.
Course ContentThis course gives an introduction to the mathematical foundations of computation. The course will look at Turing machines, universal computation, the Church-Turing thesis, the halting problem and general undecidability, Rice?s theorem, the recursion theorem, efficient computation models, time and space (memory) bounds, deterministic and nondeterministic computation and their relationships, the P versus NP problem and hard problems for NP and beyond. 
References? Computability and Complexity Theory, Steve Homer and Alan Selman.
? The Theory of Computation, Bernard M.Moret. Addison-Wesley.
 

Course outline weekly

WeeksTopics
Week 1Overview
Week 2Computable Functions
Week 3Primitive Recursive Functions
Week 4A Universal Program
Week 5Turing Machines
Week 6Time Complexity
Week 7Midterm Exam
Week 8Space Complexity
Week 9Complexity of Counting
Week 10Complexity of Counting: Toda's Theorem
Week 11PRAM and Circuit Models
Week 12Student presentations
Week 13Student presentations
Week 14Project presentations
Week 15Final Exam Preparation
Week 16Final Exam

Assesment methods

Course activitiesNumberPercentage
Attendance1410
Laboratory00
Application00
Field activities00
Specific practical training00
Assignments520
Presentation110
Project00
Seminar00
Midterms110
Final exam150
Total100
Percentage of semester activities contributing grade succes2150
Percentage of final exam contributing grade succes150
Total100

WORKLOAD AND ECTS CALCULATION

Activities Number Duration (hour) Total Work Load
Course Duration (x14) 14 3 42
Laboratory 0 0 0
Application000
Specific practical training000
Field activities000
Study Hours Out of Class (Preliminary work, reinforcement, ect)12560
Presentation / Seminar Preparation13030
Project000
Homework assignment5840
Midterms (Study duration)12828
Final Exam (Study duration) 14040
Total Workload34114240

Matrix Of The Course Learning Outcomes Versus Program Outcomes

D.9. Key Learning OutcomesContrubition level*
12345
1. Graduates should have a mastery of computer science as described by the core of the Body of Knowledge.X    
2. Graduates need understanding of a number of recurring themes, such as abstraction, complexity, and evolutionary change, and a set of general principles, such as sharing a common resource, security, and concurrency. X    
3. Graduates of a computer science program need to understand how theory and practice influence each other.  X  
4. Graduates need to think at multiple levels of detail and abstraction.     X
5. Students will be able to think critically, creatively and identify problems in their research.    X
6. Graduates should have been involved in at least one substantial project.     X
7. Graduates should realize that the computing field advances at a rapid pace.    X 
8. Graduates should conduct research in an ethical and responsible manner.   X  
9. Graduates should have good command of technical terms in both Turkish and English.    X
10. Graduates should understand the full range of opportunities available in computing.  X  
11. Graduates should understand that computing interacts with many different domains.    X 
12. Graduates should develop the knowledge acquired at master level and apply scientific methods in order to solve scientific problems.     X

*1 Lowest, 2 Low, 3 Average, 4 High, 5 Highest