DM861: Concurrency Theory (10 ECTS)

STADS: 15019801

Level
Master's level course

Teaching period
The course is offered in the autumn semester.

Teacher responsible
Email: fmontesi@imada.sdu.dk

Timetable
Group Type Day Time Classroom Weeks Comment
Common I Monday 10-12 IMADA semi 39
H1 TE Monday 10-12 IMADA semi 36-38,41,43-51
H1 TE Tuesday 09-11 IMADA semi 43,51
H1 TE Wednesday 10-12 IMADA semi 36-38,40-41,43-47,49-51
H1 TE Thursday 12-14 IMADA semi 48
H1 TE Friday 12-14 U146 40
Show entire timetable
Show personal time table for this course.

Comment:
Ubegrænset deltagerantal.

Prerequisites:
None

Academic preconditions:
Students taking the course are expected to: Be confident with the content of DM519 Concurrent Programming.


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.


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 and communication safety;
  • prove properties of concurrent systems;
  • prove general properties of formal models for concurrency.
Subject overview
The following main topics are contained in the course:
  • Process models for concurrency, including: CCS, pi-calculus and
  • some of its variants.
  • High-level programming languages for concurrent systems.
  • Type systems for concurrency, including: types for process calculi,
    choreography-based type systems.
    Choreographies: languages, types, compilation, and synthesis.
Literature
    Meddeles ved kursets start.


Website
This course uses e-learn (blackboard).

Prerequisites for participating in the exam
  1. Assignments during the course.
Assessment and marking:


Expected working hours
The teaching method is based on three phase model.
Intro phase: 30 hours
 - Tutorials: 30 hours

Educational activities

Educational form
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.


Language
This course is taught in Danish or English, depending on the lecturer.

Course enrollment
See deadline of enrolment.

Tuition fees for single courses
See fees for single courses.