Course Syllabus for

Concurrent Programming
Flertr├ądad programmering

EDAP10F, 7.5 credits

Valid from: Autumn 2020
Decided by: Professor Thomas Johansson
Date of establishment: 2020-09-24

General Information

Division: Computer Science (LTH)
Course type: Course given jointly for second and third cycle
The course is also given at second-cycle level with course code: EDAP10
Teaching language: Swedish


Concurrent programs combine parallel, asynchronous activities, frequently interacting with a physical environment. Applications include control systems, network communication, and interactive systems. The course aims to give students ability and skills to design robust, efficient, and well-structured concurrent programs.


Knowledge and Understanding

For a passing grade the doctoral student must

Competences and Skills

For a passing grade the doctoral student must

Judgement and Approach

For a passing grade the doctoral student must

Course Contents

Basic concepts: concurrent activities, busy-wait and polling, synchronization and communication, atomic operations such as test-and-set, and mutual exclusion. Synchronization and signaling in shared-memory applications: locks, monitors. Synchronization and signaling in message-passing applications. Concurrency in interactive systems with callbacks. Analysis of deadlock and livelock. Central aspects of the Java concurrent package, such as locks, semaphores, thread pools, atomics, and blocking queues. Overview of real-time operating systems, scheduling, multicore hardware, lock-free algorithms. Brief introduction to more advanced frameworks in the Java concurrent package.

Course Literature

Goetz, B.: Java Concurrency in Practice. Addison-Wesley, 2006. ISBN 0321349601.
Additional materials provided by the department.

Instruction Details

Types of instruction: Lectures, laboratory exercises

Examination Details

Examination formats: Written exam, written assignments. Compulsory lab work and written examination. The final grade of the course is based on the result of the written examination.
Grading scale: Failed, pass

Admission Details

Admission requirements: EDAA01 Programming - Second Course or EDAA30 Programming in Java - Second Course

Course Occasion Information

Contact and Other Information

Course coordinators:
Web page:

Complete view