Multi-threaded Programming
2012-2013 - IMT3801 - 5 ECTS


  • IMT2021 Algorithmic Methods

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
  • Game programming techniques
  • Distributed programming environments

Teaching Methods

Laboratory work

Teaching Methods (additional text)

Student will work 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 external and internal examiner.

Re-sit examination

Oral exam may be repeated

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.

This course will not be offered in 2012/2013.