Multi-threaded Programming
Study plans 2016-2017 - IMT3801 - 5 ECTS

On the basis of

IMT2021 Algorithmic Methods or equivalent

It is strongly recommended that IMT2021 is passed prior to the course in Multi-threaded Programming.

Expected learning outcomes

On completion of this course the students will be able to:Understand the classic examples of concurrency problems

  • Understand the benefits and difficulties of developing multi-threaded applications
  • Demonstrate knowledge of thread-safe implementations of design patterns commonly used in game development
  • Evaluate the performance of multi-threaded and optimised programs
  • Communicate the design decisions, data flow and synchronisation of parallel algorithms in both written and oral form


  • Multi-threaded programming
  • Profiling and performance evaluation
  • Algorithmic complexity
  • Design Patterns
  • Function Pointers and Callbacks
  • Game programming techniques
  • Distributed programming environments

Teaching Methods

Laboratory work

Teaching Methods (additional text)

Student will work primarily in C++ using various parallel programming libraries, in a problem based learning approach.  

Form(s) of Assessment

Oral exam, individually
Evaluation of Project(s)

Form(s) of Assessment (additional text)

  • Portfolio of internally completed work 60%
  • Oral exam 40%
  • Both parts must be passed

Grading Scale

Alphabetical Scale, A(best) – F (fail)

External/internal examiner

Projects evaluated by lecturer.
Oral exam will have two internal examiner and we will use external examiner every fifth year, next time 2016.

Re-sit examination

Re-sit for the oral examination in August.

Examination support


Coursework Requirements


Teaching Materials

No required textbooks.  Books, monographs, and research articles will be recommended during the course.

Additional information

In case there are fewer than 5 students which apply for the course the form of presentation and assessment may change to suit the class size.