Complexity Theory

Postgraduate course

Course description

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.



ECTS Credits


Level of Study

Bachelor, master

Semester of Instruction

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.
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 July 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.
Examination Support Material
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 Student adviser
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.