DM584: Concurrent Programming
Study Board for Natural Scientific IT Programmes
Teaching language: Danish or English depending on the teacher, but English if international students are enrolled
EKA: N330072102
Assessment: Second examiner: Internal
Grading: 7-point grading scale
Offered in: Odense
Offered in: Spring
Level: Bachelor
STADS ID (UVA): N330072101
ECTS value: 7.5
Date of Approval: 21-10-2025
Duration: 1 semester
Version: Approved - active
Internal Course Code
Entry requirements
Academic preconditions
Course introduction
The course aims at describing and explaining the fundamental concepts and techniques of concurrent programming, where programs use multiple interacting threads or processes. Besides a systematic treatment of concepts and methods for concurrency, the course focuses on applying the methods to gain experiences in concurrent programming.
Expected learning outcome
After the course the student is expected to be able to:
- identify the use of concurrency in programs
- describe the concurrency mechanisms covered in the course
- explain fundamental problems, techniques, and solutions for concurrent programs
- reason about properties of concrete concurrent programs
- design and implement non-trivial concurrent programs
- account for some common concurrent program architectures
Content
The following main topics are contained in the course:
- Processes
- threads
- monitor concept
- shared memory
- synchronization
- safety and liveness
- modellling of concurrency
- dynamic systems
- message passing
- concurrent architecture.
Literature
Examination regulations
Exam element a)
Timing
Spring
Tests
Mandatory project
EKA
N330072102
Assessment
Second examiner: Internal
Grading
7-point grading scale
Identification
Full name and SDU username
Language
Normally, the same as teaching language
Examination aids
All common aids allowed except generative AI
ECTS value
7.5
Indicative number of lessons
Teaching Method
Planned lessons:
Total number of planned lessons: 42
Hereof:
Common lessons in classroom/auditorium: 20
Team lessons in laboratory: 22
Up to 75% of teaching activities will take place online, both synchronously (live chat) and asynchronously (videos and exercises).
Both frontal lectures and training hours are focused on the application of techniques for concurrent programming to concrete problems. The difference is in the teaching method. In frontal lectures, learning will be driven by discussions directed by the teacher, whereas in training hours the students will have to try applying the concepts first.
Other planned teaching activities:
- Reading of course material
- Reflection on methods and theoretical concepts
Teacher responsible
Timetable
Administrative Unit
Team at Registration
Offered in
Recommended course of study
Transition rules
Transitional arrangements describe how a course replaces another course when changes are made to the course of study.
If a transitional arrangement has been made for a course, it will be stated in the list.
See transitional arrangements for all courses at the Faculty of Science.