| 
        Lecturer(s)
     | 
    
        
            
                - 
                    Jančar Petr, prof. RNDr. CSc.
                
 
            
         
     | 
    | 
        Course content
     | 
    
        <ol> <li>Introduction to computability: Turing machine (TM) definition, concept of computation, language recognized by TM (configuration, etc.), language decided by TM, TM computable function, Church-Turing thesis.</li> <li>Variants of TM: TM with two-way infinite tape, multiple-tape TM, equivalences with basic TM.</li> <li>Universal TM: definition, description of computation.</li> <li>Languages and problems: Partial recursive and recursive languages, decision problems, reducibility of decision problems to languages, existence of languages which are not partial recursive.</li> <li>Non-recursive languages, non-computable problems: Halting problem, Post correspondence problem and its applications.</li> <li>Recursive nad partial recursive languages and their relationship to the languages from Chomsky hierarchy.</li> <li>Further results: Rice theorem, recursion theorem, applications.</li> <li>Further models of computation: Post machines, non-deterministic TM, probabilistic TM.</li> <li>Complexity: complexity of algorithms and problems.</li> <li>Basic complexity classes: class P, class NP, NP-complete problems, selected NP-complete problems,proving NP-completeness.</li> <li>Further complexity classes: class PSPACE, class NPSPACE, PSPACE-complete problems.</li> <li>Applications of hard problems: Cryptography, RSA method.</li> </ol>
         
         
     | 
    | 
        Learning activities and teaching methods
     | 
    | 
        
        Lecture, Demonstration
        
        
     | 
    
    
        
        
            | 
                Learning outcomes
             | 
        
        
            
                
                The students become familiar with basic concepts of computability and complexity.
                 
                1. Knowledge Identify unsolvable problems and solvable problems and their computational complexity. 
                 
                
             | 
        
        
            | 
                Prerequisites
             | 
        
        
            
                
                
                unspecified
                
                
                    
                        
                    
                    
                
                
  
             | 
        
        
            | 
                Assessment methods and criteria
             | 
        
        
            
                
                    
                        Oral exam, Written exam
                        
                        
                         
                        
                    
                    
                
                 Active participation in class. Completion of assigned homeworks. Passing the oral (or written) exam.
                 
             | 
        
    
    | 
        Recommended literature
     | 
    
        
            
                
                - 
                    Copeland B.J. et al. (2015). Computability: Turing, Goedel, Church, and Beyond. MIT Press. 
                
 
            
                
                - 
                    Hopcroft J. E., Motwani R., Ullmann J. D. (2003). Introduction to Automata Theory, Languages, and Computation. Pearson Education. 
                
 
            
                
                - 
                    Koubková, A., Pavelka, J. (1998). Úvod do teoretické informatiky. Matfyzpress, Praha. 
                
 
            
                
                - 
                    Kozen D. C. (1997). Automata and Computability. Springer. 
                
 
            
                
                - 
                    Kučera, L. (1989). Kombinatorické algoritmy. SNTL, Praha. 
                
 
            
                
                - 
                    Lewis, H. R., Papadimitriou, C. H. (1998). Elements of the Theory of Computation. Prentice Hall, Upper Saddle River (NJ). 
                
 
            
                
                - 
                    Papadimitriou, C. H. (1995). Computational Complexity. Addison-Wesley, Reading (MA). 
                
 
            
                
                - 
                    Sipser M. (1997). Introduction to the Theory of Computation. PWS Publishing Company, Boston, MA. 
                
 
            
         
         
         
     |