Single-Course English 5 ECTS

Concurrent Programming

Overall Course Objectives

To provide the participants with a conceptual and practical basis for construction of systems comprising multiple interacting concurrent activities.

Learning Objectives

  • model and analyse concurrent activities using mathematical models
  • explain the workings of classical synchronization and communication mechanism as well as their mutual relationships
  • apply knowledge of number of common communication and coordination solutions for solving new problems
  • verify correctness of concurrent algorithms using formally based verification tools
  • identify relevant usage of concurrent activities within development of usual applications
  • implement concurrent activities efficiently using tasks, threads and processes
  • apply concurrency for utilization of modern machine architectures
  • use concurrency related concepts for concise problem analysis and documentation of solutions

Course Content

Concurrent programming: Processes, synchronization, communication. Process models, atomic actions.
Safety and liveness properties. Deadlock. Verification techniques and tools.
Critical regions, semaphores, monitors, synchronous and asynchronous message passing, call mechanisms, distributed objects, tupple spaces. Concurrent data structures.

System design: Common communication patterns and algorithms. Client-server paradigm. Transactions and concurrency control. Asynchronous and task-based programming.

Recommended prerequisites

02100/02101/02102/01017/01019/02105/02132/02135/02141, Skills in sequential, object-oriented programming, e.g. in Java.
Knowledge of computation modelling and application of predicate logic. Use of basic data structures. Basic knowledge of computer systems organization.

Teaching Method

Lectures, exercise classes, and programming laboratories.



The course is a specialization course within the bachelor programme in Software Technology.

See course in the course database.





13 weeks




DTU Lyngby Campus

Course code 02158
Course type Bachelor
Semester start Week 35
Semester end Week 48
Days Thurs 13-17

7.500,00 DKK