Student Pages
Undergraduate course

Concurrent programming

Main content

ECTS Credits


Level of Study


Teaching semester


Objectives and Content

The course introduces principles for programming secure, reliable and robust software in a multi-threaded or multi-process environment.

Concurrent programming techniques are particularly central to the course, but related techniques such as event-driven programming may also be covered. The course combines a strong theoretical foundation with practical exercises.

Learning Outcomes

The student

  • knows common models for concurrency (software and data structures), such as shared memory, message-passing, actors, futures, and data-parallelism primitives,
  • can explain the potential run-time problems arising from the concurrent operation of many separate tasks,
  • can prove the most important synchronisation protocols.

The student

  • can write correct concurrent programs using appropriate programming models,
  • can use synchronisation primitives in appropriate ways,
  • can model a concurrent process using a formal method, and
  • can use tools for analysis and verification of concurrent processes.

General competence
The student

  • can solve a varied set of problems using concurrency,
  • can communicate independent work and masters language and terminology of the academic field, and
  • can communicate with concurrency specialists about academic issues, analyses and conclusions in the field.

Required Previous Knowledge

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

Recommended Previous Knowledge

MNF130, INF101, INF122.

Credit Reduction due to Course Overlap


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: up to 4 hours per week in 13 weeks, a total of about 40 hours.

Exercise class: 2 hours per week for.

In addition, exercises and self-studies, for a total of 270 study hours.

Compulsory Assignments and Attendance

The compulsory assignments have to be passed.
Compulsory assignments are valid two semesters: the semester when they are approved and the succeeding semester.

Forms of Assessment

Written exam (3 hours). The exam may be digital (using a computer), with a tool that handles text, the relevant programming and formal notation, and the analysis and verification tools used in the course. Compulsory exercises may count towards the final grade.

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

Students who have been admitted to a program of study at the University of Bergen that includes access to this course are eligible to register. For information about admission requirements see Admission.

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.

Contact Information

This course is administered by the Department of Informatics.

Contact studieveileder@ii.uib.no

Exam information

  • For written exams, please note that the start time may change from 09:00 to 15:00 or vice versa until 14 days prior to the exam.

  • Type of assessment: Written examination

    21.11.2023, 09:00
    3 hours
    Withdrawal deadline
    Examination system
    Digital exam