Student Pages
Postgraduate course

Complexity Theory

Main content

ECTS Credits


Level of Study

Bachelor, master



Teaching semester


Objectives and Content

Objectives: The complexity of a problem describes whether the problem can be solved using algorithms, and how much resources (in form of time and space) it takes to solve a problem algorithmically. The course studies problems that cannot be solved and problems for which it is difficult to design efficient algorithms. We see how we can recognize such hard problems.


The course gives a precise definition of what an algorithms is via Turing machines. The main focus is on central complexity classes, in particular NP-complete problems.

Learning Outcomes

On completion of the course the student should have the following learning outcomes defined in terms of knowledge, skills and general competence:


The student

  • Understands what an algorithm is, and which problems that be solved by an algorithm.
  • Understands the relationship between formal languages and Turing machines.
  • Knows about various complexity classes and the relationship between them


The student is able to

  • Recognize problems that cannot be solved computationally, and recognize NP-hard problems.
  • Prove the NP-completeness of some of the most basic hard problems.
  • Perform polynomial-time reductions

General competence

  • The student can recognize computationally hard problems, and contribute to research on classification of new problems as tractable or intractable.

Required Previous Knowledge

For incoming exchange students: At least 60 ECTS in Computer Science and at least 10 ECTS in mathematics.

Recommended Previous Knowledge


Credit Reduction due to Course Overlap

I235: 10 ECTS

Access to the Course

Access to the course requires admission to a programme of study at The Faculty of Mathematics and Natural Sciences

Teaching and learning methods

Lectures, 4 hours per week, group sessions, 2 hours per week.

Compulsory Assignments and Attendance


Compulsory assignments are valid two semesters, the semester of the approval and the following semester.

Forms of Assessment

Oral exam.
Up to 30% of the final grade may be based on course activities during the semester, such as in-class midterms or hand-in assignments. The students will be notified of these activities and their final weight in the grade at the beginning of the semester.

Examination Support Material


Grading Scale

The grading scale used is A to F. Grade A is the highest passing grade in the grading scale, grade F is a fail.

Assessment Semester

Examination both spring semester and autumn semester. In semesters without teaching the examination will be arranged at the beginning of the semester.

Reading List

The reading list will be available within June 1st for the autumn semester and December 1st for the spring semester.

Course Evaluation

The course will be evaluated by the students in accordance with the quality assurance system at UiB and the department.

Programme Committee

The Programme Committee is responsible for the content, structure and quality of the study programme and courses.

Course Coordinator

Course coordinator and administrative contact person can be found on Mitt UiB, or contact studieveileder@ii.uib.no

Course Administrator

The Faculty of Mathematics and Natural Sciences represented by the Department of Informatics is the course administrator for the course and study programme.


Student adviser:

mailto:studieveileder@ii.uib.no">Student adviser

T: 55 58 42 00

Exam information