DM519: Concurrent Programming (5 ECTS)

STADS: 15009701

Level
Bachelor course

Teaching period
The course is offered in the spring semester.
3 th quarter.

Teacher responsible
Email: fmontesi@imada.sdu.dk

Timetable
Group Type Day Time Classroom Weeks Comment
Common I Monday 14-16 U140 5-7,9-11
Common I Tuesday 12-14 U140 13
Common I Wednesday 12-14 U48A 5
Common I Wednesday 12-14 U140 7,10,13
D2 TE Wednesday 14-16 U154 6,9
D2 TE Wednesday 14-16 U26A 11
D2 TE Thursday 12-14 IMADA ComputerLab 5-7,9-11,13
D3 TE Friday 08-10 IMADA ComputerLab 5-7,9-11,13
D3 TE Friday 12-14 U24 6,9,11
Show entire timetable
Show personal time table for this course.

Comment:
Ubegrænset deltagerantal.

Prerequisites:
None

Academic preconditions:
The content of DM550 Introduction to Programming should be known.

Course introduction
The course aims to describe and explain important concepts and techniques in concurrent programming, i.e., programs using 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.

Qualifications
The students will gain knowledge that prepares them to design and implement co-operating, concurrently executed processes. More precisely, the course will give competences in the application of the following subjects.

  • Basic programming primitives applicable to concurrent programming.
  • Design patterns for good structuring of solutions for programming problems in concurrent programming.
  • Terms for and characteristics of co-operating, concurrently executed processes.
  • Facilities for concurrent programming in modern object-oriented programming languages and program libraries.
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
  • describe and analyze concurrent architectures using model-based approaches
  • design and implement non-trivial concurrent programs
  • account for some common concurrent program architectures
Subject overview
Processes, threads, monitor concept, shared memory, synchronization, safety and liveness, modellling of concurrency, dynamic systems, message passing, concurrent architecture.

Literature
    Meddeles ved kursets start.


Website
This course uses e-learn (blackboard).

Prerequisites for participating in the exam
None

Assessment and marking:
Mandatory project with marks according to the Danish 7-mark scale and external evaluation.

Reexam after the 2nd quarter.
The re-exam may differ from the ordinary exam.

Expected working hours
The teaching method is based on three phase model.
Intro phase: 20 hours
Skills training phase: 22 hours, hereof:
 - Tutorials: 14 hours
 - Laboratory exercises: 8 hours

Educational activities Study phase: 8 hours

Language
This course is taught in Danish or English, depending on the lecturer. However, if international students participate, the teaching language will always be English.

Course enrollment
See deadline of enrolment.

Tuition fees for single courses
See fees for single courses.