| UNIVERSITY | University of Patras | ||||
|---|---|---|---|---|---|
| SCHOOL | Engineering | ||||
| DEPARTMENT | Computer Engineering and Informatics | ||||
| LEVEL OF STUDIES | Undergraduate | ||||
| COURSE CODE | CEID_24Y301 | SEMESTER | 6 | ||
| COURSE TITLE | Theory of computation and complexity theory | ||||
| INDEPENDENT TEACHING ACTIVITIES | WEEKLY TEACHING HOURS | CREDITS | |||
Lectures | 3 | 6 | |||
Problem solving sessions | 3 | ||||
| COURSE TYPE | Specialised general knowledgge | ||||
| PREREQUISITE COURSES | - | ||||
| LANGUAGE OF INSTRUCTION AND EXAMINATIONS | greek | ||||
| IS THE COURSE OFFERED TO ERASMUS STUDENTS | No | ||||
| COURSE WEBSITE (URL) | https://tinyurl.com/uedad854 | ||||
Learning outcomesThe course learning outcomes, specific knowledge, skills and competences of an appropriate level, which the students will acquire with the successful completion of the course are described. |
|---|
Theory of Computation contains three central areas: automata, computability and complexity. These areas are linked by the following important question: What are the fundamental capabilities and inherent limitations of computers? This question is interpreted differently in each of these three areas and corresponding answers are shaped accordingly. In the context of computability theory, the goal is to characterize the various problems as solvable or not. In complexity theory, the goal is to categorize solvable problems into easy and difficult and the central question is: What is it that makes some problems computationally hard and some other easy? One of the most important achievements of complexity theory is an elegant system of classifying problems according to their computational hardness. Automata theory deals with the definitions and properties of mathematical models of computation. These models are used in practice in several areas of computer science. For example, finite automata are used in string searching and pattern matching, word processing, compiler and hardware design. Another model, context-free grammars, is used in programming languages and artificial intelligence. Automata theory is a particularly interesting area that allows practice with formal definitions of computation which are highly significant in the theory of computability and complexity where a precise definition of the computer is required. Students who regularly participate in course activities and successfully complete the course: - have knowledge and understanding for definitions and properties of mathematical models of computation (like, for instance, finite automata, push-down automata, Turing machine) and for corresponding methods (i.e., regular expressions, grammars, algorithms) for finite representation of particular classes of problems as well as for the definition of complexity classes for languages and problems (like for example decidable and undecidable languages, recognizable languages, class P, class NP, NP-complete problems) and the identification of problems in each class (decidability, reducibility)
In particular, students who regularly participate in course activities and successfully complete the course:
|
General competencesTaking into consideration the general competences that the degree-holder must acquire (as these appear in the Diploma Supplement and appear below), at which of the following does the course aim? |
|---|
Adapting to new situations, Decision-making, Team work, Working in an international environment, Working in an interdisciplinary environment, Production of new research ideas, Project planning and management, Familiarity with computational thinking, Search for, analysis and synthesis of data and information, with the use of the necessary technology, Working independently , Respect for the natural environment, Showing social, professional and ethical responsibility and sensitivity to gender issues, Criticism and self-criticism , Production of free, creative and inductive thinking |
Theory of Computation contains three central areas: automata, computability and complexity. These areas are linked by the following important question: What are the fundamental capabilities and inherent limitations of computers? This question is interpreted differently in each of these three areas and corresponding answers are shaped accordingly. In the context of computability theory, the goal is to characterize the various problems as solvable or not. In complexity theory, the goal is to categorize solvable problems into easy and difficult and the central question is: What is it that makes some problems computationally hard and some other easy? One of the most important achievements of complexity theory is an elegant system of classifying problems according to their computational hardness. Automata theory deals with the definitions and properties of mathematical models of computation. These models are used in practice in several areas of computer science. For example, finite automata are used in string searching and pattern matching, word processing, compiler and hardware design. Another model, context-free grammars, is used in programming languages and artificial intelligence. Automata theory is a particularly interesting area that allows practice with formal definitions of computation which are highly significant in the theory of computability and complexity where a precise definition of the computer is required. In the context of this particular course we address issues in automata theory and complexity theory (the Church–Turing Thesis, decidability, reducibility). Lectures are scheduled as follows: Mathematical preliminaries sets, functions, proofs, alphabets, languages Regular languages/Finite automata regular expressions, regular languages, deterministic finite automata, non-deterministic finite automata, equivalence, Pumping lemma for regular languages Context-free language/Puschdown automata context-free-grmmars, context-free- languages, pushdown automata, equivalence, Pumping lemma for context-free languages Turing machines/Computability formal definition of Turing Machine and vaiants, algorithms, Church-Turing thesis, decidable and undecidable langiages, recognizable and non-recognizable languages, reducibility Time complexity class P, class NP, class co-NP, ΝP-completeness, ΝP-complete problems, reducibility |
| DELIVERY | Face-to-face, Distance learning | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| USE OF INFORMATION AND COMMUNICATIONS TECHNOLOGY | Use of ICT in teaching, Use of ICT in communication with students, Use of ICT for progress monitoring and evaluation | ||||||||||||
| TEACHING METHODS The manner and methods of teaching are described in detail. The student's study hours for each learning activity are given as well as the hours of nondirected study according to the principles of the ECTS |
| ||||||||||||
| STUDENT PERFORMANCE EVALUATION Description of the evaluation procedure Language of evaluation, methods of evaluation, summative or conclusive, multiple choice questionnaires, short-answer questions, open-ended questions, problem solving, written work, essay/report, oral examination, public presentation, laboratory work, clinical examination of patient, art interpretation, other. Specifically-defined evaluation criteria are given, and if and where they are accessible to students. | Written examination |
- Suggested bibliography: INTRODUCTION TO THE THEORY OF COMPUTATION, Michael Sipser ELEMENTS OF THE THEORY OF COMPUTATION, Harry R. Lewis, Christos Papadimitriou - Related academic journals: Theoretical Computer Science, Elsevier Theory of Computing Systems, Springer |