DM584: Concurrent Programming

Study Board of Science

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: 02-03-2023


Duration: 1 semester

Version: Approved - active

Entry requirements

None

Academic preconditions

The content of DM574 Introduction to Programming should be known.

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.

The course builds on the knowledge acquired in the course DM574 Introduction to Programming, and gives an academic basis for studying the topics DM510 Operating Systems, that are part of the degree.

In relation to the competence profile of the degree it is the explicit focus of the course to:
  • Give the competence to: handle complex and development-oriented situations in academic and work settings; identify own learning needs and structure own learning in different learning environments.
  • Give skills to: make and justify decisions based on the education; describe, formulate and communicate problem statements and results to peers and non-specialists or partners and users.
  • Give knowledge and understanding of principles for the design of computer systems, including distributed and parallel systems.

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

See itslearning for syllabus lists and additional literature references.

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

To be announced during the course

ECTS value

7.5

Indicative number of lessons

42 hours per semester

Teaching Method

Teaching activities are reflected in an estimated allocation of the workload of an average student as follows:

  • Intro phase (lectures) - 20 hours
  • Training phase: 22 hours, including 22 hours laboratory 

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.

Activities during the studyphase:

  • Reading of course material
  • Reflection on methods and theoretical concepts

Teacher responsible

Name E-mail Department
Fabrizio Montesi fmontesi@imada.sdu.dk Concurrency

Timetable

Administrative Unit

Institut for Matematik og Datalogi (datalogi)

Team at Educational Law & Registration

NAT

Offered in

Odense

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.