Search for contacts, projects,
courses and publications

Theory of Computation

Description

COURSE OBJECTIVES

The class introduces the fundamental mathematical properties of computer hardware, software, and certain applications thereof.

 

COURSE DESCRIPTION
The course explores what can and cannot be solved on a computer, how quickly, with how much memory, and on which type of computational model. The class is divided into two major parts: computability theory and complexity theory. Computability theory deals primarily with the question of whether a problem is solvable at all on a computer. Complexity theory considers how efficiently the problem can be solved. Two major aspects are considered: time complexity and space complexity, which respectively address a problem of how many steps does it take to perform a computation, and how much memory is required to perform that computation.

 

LEARNING METHODS
The theory subjects have strong connections with engineering practice. In addition to theory lectures, the course will offer practical exercises and labs which will involve experimentation with various tools.

 

EXAMINATION INFORMATION
There will be a written final exam covering both theory and practice of computability and complexity theories.

 

PREREQUISITES

  • Algorithms & Data Structures
  • Automata & Formal Languages

 

REFERENCES

  • Introduction to the Theory of Computation; Michael Sipser, 2006, second edition (Required)

People

 

Sharygina N.

Course director

Additional information

Semester
Spring
Academic year
2020-2021
ECTS
6
Language
English
Education
Bachelor of Science in Informatics, Elective course, Lecture, 3rd year