Course outline example image

COMa

|
Contact support

COURSE OUTLINE

1. GENERAL

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 ACTIVITIESWEEKLY TEACHING HOURSCREDITS

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

2. LEARNING OUTCOMES

Learning outcomes

The 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)

  • each class.; students are therefore able to keep track of current developments at the cutting edge of their field of knowledge

  • are able to use knowledge and understanding they have acquired in a way that shows a professional approach to their work or profession, and appropriately skilled to use mathematical models of computation for various problems within their field

  • have the ability to collect and interpret relevant data (typically within their field) to form judgments that include reflection on relevant social, scientific or ethical issues

  • are able to communicate information, ideas, problems and solutions to specialized and non-specialized audience

  • have developed knowledge acquisition skills necessary to further continue their studies with a high degree of autonomy

  • have become familiar with computational thinking and are able to exploit its advantages in scientific, professional and practical issues

In particular, students who regularly participate in course activities and successfully complete the course:

  1. have knowledge of definitions and properties of mathematical models of computation and corresponding methods for finite representation of particular classes of problems

  2. understand the relation between computational hardness of problems and relevant models of compuation

  3. are able to develop and apply abstraction and modelling for algorithmic and compuational problems according to their hardness (I.e., resources required for solving them)

  4. analyze problems / questions in order to gain understanding of their structure and components

  5. suggest solutions to these problems guided by their computational hardness

  6. evaluate findings (solutions or hardness results) through analysis

  7. are familiar with computational thinking

General competences

Taking 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

3. SYLLABUS

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

4. TEACHING AND LEARNING METHODS - EVALUATION

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

ActivitySemester workload
Lectures39
Problem solving sessions39
Intense cooperation among professor and students also using ICT42
Independent study60
Course total180
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

5. ATTACHED BIBLIOGRAPHY

- 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