DM563: Concurrent Programming

Study Board of Science

Teaching language: Danish or English depending on the teacher, but English if international students are enrolled
EKA: N330041102
Assessment: Second examiner: Internal
Grading: 7-point grading scale
Offered in: Odense
Offered in: Spring
Level: Bachelor

STADS ID (UVA): N330041101
ECTS value: 10

Date of Approval: 27-09-2021


Duration: 1 semester

Version: Approved - active

Comment

DISCONTINUED - last offered spring 2022.

Entry requirements

None

Academic preconditions

The content of DM550 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 DM550 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
  • describe and analyze concurrent architectures using model-based approaches
  • 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

N330041102

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

10

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 

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

Profile Education Semester Offer period
BSc major in Computer Science - Registration 1 September 2018 Bachelor of Science in computer science | Odense 2 E21
BSc major in Computer Science - Registration 1 September 2019 Bachelor of Science in computer science | Odense 2 E22
BSc major in Computer Science - Registration 1 September 2019 Bachelor of Science in computer science | Odense 2 E21
BSc major in Computer Science - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 2 E22
BSc major in Computer Science - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 2 E23
BSc major in Computer Science - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 2 E21
BSc major in Computer Science and minor in Mathematics - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 2 E23
BSc major in Computer Science and minor in Mathematics - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 2 E22
BSc major in Computer Science and minor in Mathematics - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 2 E21
BSc major in Computer Science and minor subject - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 2 E23
BSc major in Computer Science and minor subject - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 2 E22
BSc major in Computer Science and minor subject - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 2 E21
BSc major in Computer Science and minor subject - Registration 1 September 2018 Bachelor of Science in computer science | Odense 2 E21
BSc major in Computer Science and minor subject - Registration 1 September 2019 Bachelor of Science in computer science | Odense 2 E22
BSc major in Computer Science and minor subject - Registration 1 September 2019 Bachelor of Science in computer science | Odense 2 E21
No longer applicable (31 August 2019): BSc major in Computer Science - Registration 1 September 2018 Bachelor of Science in computer science | Odense 2 E21
No longer applicable (31 August 2019): BSc major in Computer Science and minor in Mathematics - Registration 1 September 2018 Bachelor of Science in computer science | Odense 2 E21
No longer applicable (31 August 2020): BSc major in Computer Science - Registration 1 September 2018 and 2019 Bachelor of Science in computer science | Odense 2 E21
No longer applicable (31 August 2020): BSc major in Computer Science - Registration 1 September 2019 Bachelor of Science in computer science | Odense 2 E22
No longer applicable (31 August 2020): BSc major in Computer Science and minor subject - Registration 1 September 2018 and 2019 Bachelor of Science in computer science | Odense 2 E21
No longer applicable (31 August 2020): BSc major in Computer Science and minor subject - Registration 1 September 2019 Bachelor of Science in computer science | Odense 2 E22
No longer applicable (31 August 2020): BSc major in Computer Science and minor subject area - Registration 1 September 2018 and 2019 Bachelor of Science in computer science | Odense 2 E21
No longer applicable (31 August 2020): BSc major in Computer Science and minor subject area - Registration 1 September 2019 Bachelor of Science in computer science | Odense 2 E22

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.