DM861: Concurrency Theory

Study Board of Science

Teaching language: Danish or English depending on the teacher, but English if international students are enrolled
EKA: N340005112, N340005102
Censorship: Second examiner: None
Grading: Pass/Fail, 7-point grading scale
Offered in: Odense
Offered in: Autumn
Level: Master

STADS ID (UVA): N340005101
ECTS value: 10

Date of Approval: 15-04-2021


Duration: 1 semester

Version: Approved - active

Comment

15019801(former UVA) is identical with this course description. 

Entry requirements

None

Academic preconditions

Students taking the course are expected to: Have knowledge of discrete mathematics.

Course introduction

Multi-core processors, cloud computing, and web services make concurrent systems widespread. However, designing and programming such systems correctly is challenging, since it requires predicting how multiple programs executed independently will interact.
This course aims at presenting and investigating models, reasoning techniques, and abstract programming disciplines for concurrent systems. These tools allow for translating concrete requirements and designs into precise mathematical definitions, which can be used to prove that the desired properties are provided (such as lack of deadlocks or safe usage of asynchronous channels).

Many of the models covered in the course are the bases of recent or emerging programming languages and design tools, such as BPMN, Go, and Jolie.

In relation to the competence profile of the degree it is the explicit focus
of the course to:
  • Give the competence to: plan and carry out scientific projects at a high professional level, including managing work and development situations that are complex, unpredictable, and require new solution.
  • Give skills to: describe, analyze, and solve advanced computational problems using the learned models; develop new variants of the methods learned.
  • Give knowledge and understanding of: a variety of specialized models and methods developed in computer science, based on the highest international research, including topics from the subject's research front; a scientific basis to reflect on the subject area and to identify scientific issues.

The course builds upon knowledge of concurrency obtained during the bachelor, and provides knowledge that can be used for a master thesis in the area of concurrency.

Expected learning outcome

The learning objective of the course is that the student demonstrates the
ability to:
  • represent real-world concurrent systems in the abstract models covered in the course;
  • identify and formalise typical useful properties of concurrent systems, like deadlock-freedom;
  • prove properties of concurrent systems;
  • prove general properties of formal models for concurrency.

Content

The following main topics are contained in the course:
  • Process models for concurrency.
  • High-level programming languages for concurrent systems.
  • Inference systems for safety property in concurrency.
  • Choreographies: languages, compilation, and synthesis.

Literature

See Blackboard for syllabus lists and additional literature references.

Examination regulations

Prerequisites for participating in the exam a)

Timing

Autumn

Tests

Assignments during the course

EKA

N340005112

Censorship

Second examiner: None

Grading

Pass/Fail

Identification

Full name and SDU username

Language

Normally, the same as teaching language

Examination aids

To be announced during the course

ECTS value

0

Additional information

The prerequisite examination is a prerequisite for participation in exam element a) 

Exam element a)

Timing

January

Prerequisites

Type Prerequisite name Prerequisite course
Examination part Prerequisites for participating in the exam a) N340005101, DM861: Concurrency Theory

Tests

Written exam

EKA

N340005102

Censorship

Second examiner: None

Grading

7-point grading scale

Identification

Student Identification Card

Language

Normally, the same as teaching language

Examination aids

Non aids allowed., a closer description of the exam rules will be posted in ItsLearning.

ECTS value

10

Additional information

The examination form for re-examination may be different from the exam form at the regular exam.

Indicative number of lessons

60 hours per semester

Teaching Method

In order to enable the students to achieve the learning objectives for the course, the teaching is organized so that there are 60 lecture hours in a semester. These teaching activities result in an estimated indicative distribution of the work effort of an average student in the following way:

  • Intro phase (lecture, class lectures) - Number of hours: 30
  • Training phase: Number of hours: 30
  • Total: Number of hours: 60
Frontal lectures will focus on the introduction of theoretical models, programming languages, and relevant proof techniques.
Training hours will focus on gaining practical experience with these tools.
The study phase will consist of the following activities:
  • Reading of written material distributed by the lecturer.
  • Comparison of different inference-based systems.

Teacher responsible

Name E-mail Department
Fabrizio Montesi fmontesi@imada.sdu.dk Datalogi, Institut for Matematik og Datalogi, Artificial Intelligence, Cybersecurity, and Programming Languages

Timetable

31
Monday
02-08-2021
Tuesday
03-08-2021
Wednesday
04-08-2021
Thursday
05-08-2021
Friday
06-08-2021
08 - 09
09 - 10
10 - 11
11 - 12
12 - 13
13 - 14
14 - 15
15 - 16
Show full time table

Administrative Unit

Institut for Matematik og Datalogi (datalogi, fiktiv)

Team at Registration & Legality

NAT

Recommended course of study

Profile Programme Semester Period