Computability theory is the branch of the theory of computation that studies which problems are computationally solvable using different models of computation. A central question of computer science is to address the limits of computing devices by understanding the problems we can use computers to solve. One of the triumphs of 20th century mathematics is that it is possible to show clear limits to the ability of computers, even given arbitrarily vast computational resources, to solve even seemingly simple problems.
While most of the fundamental research problems have been dealt with, computability theory remains an active field of research and is commonly used to discover the computational expressiveness of new ideas in computer science, mathematics and physics.
The aim of this project is to acquaint the student with the fundamentals of computability theory and treat at least one subject of intermediate difficulty. This knowledge will come in handy at the graduate level as questions concerning computability, The Halting Problem, Turing machines, etc., permeate all branches advanced computer science. In addition, the student will be able to distinguish between what can, and what cannot be done with computers, whether they be desktop machines, Turing machines, humans, DNA computers, collections of membranes, or unspeakable alien devices from beyond the pale.
The project is of a purely theoretical nature, and some mathematical maturity is required. Matematisk bifag is an advantage, but not a prerequisite.
The project report should:
Literature for the above will be excerpts from classical textbooks in the area, e.g. [2,7,6,5]
In addition, the report should treat exactly one of the following - wonderful - extra subjects: