News

06.06.2023

Exercise Sheet F

Dear students,

You will now find the Exercise Sheet F in dCMS.

Kind regards,
Your Concurrent Programming Team

06.06.2023

Exam Inspection T

Dear students,

The exam inspection for exam T is scheduled to take place on Thursday, June 15, between 13:15 and 14:45 in SR 014 in building E1 3. After the inspection, Concurrency Café will take place as usual until 16:00.

Kind regards
Your Concurrent Programming Team

31.05.2023

Exercise Sheet E

Dear students,

You will now find the Exercise Sheet E in dCMS.

Kind regards,
Your Concurrent Programming Team

24.05.2023

Results Exam T

Dear Students,

you can now find the results of exam T on your personal status page. If you have obtained 30 points or more, you have passed the exam. A grade for the entire course (including potential bonus points) will be calculated once the results of exam… Read more

Dear Students,

you can now find the results of exam T on your personal status page. If you have obtained 30 points or more, you have passed the exam. A grade for the entire course (including potential bonus points) will be calculated once the results of exam A are available.

However, you can determine a preliminary grade by comparing your point sum with the output of this pseuCo program (best viewed using the Random path feature): https://pseuco.com/#/edit/remote/7ahkuohtwu7vvtxpouk6

Kind regards,
Your Concurrent Programming Team

19.05.2023

Exam Seating

Dear Students,

on Monday, May 22, we will write Exam T, covering units A-D. If you registered for the exam, you will find your room and seat on your personal status page. If we did not assign you a seat and you think that this is an error, please notify us… Read more

Dear Students,

on Monday, May 22, we will write Exam T, covering units A-D. If you registered for the exam, you will find your room and seat on your personal status page. If we did not assign you a seat and you think that this is an error, please notify us immediately.
Please arrive at your assigned lecture hall no later than 14:15. The exam will take 60 minutes.

As a reminder, to assist you in the final phase before the exam and answer your last-minute questions, our tutors are offering an extended Concurrency Café today (Friday, May 19) from 12:00 to 16:00 in E1 3, room SR014.

Kind regards,
The Concurrent Programming Team

09.05.2023

Exercise Sheet D

Dear students,

You will now find the Exercise Sheet D in dCMS.

Note that you are required to hand in the solution for exercise ED.3 prior to the colloquium (14.05.2023, 23:59 at the latest). For this, you have to collaborate within your group.

Kind… Read more

Dear students,

You will now find the Exercise Sheet D in dCMS.

Note that you are required to hand in the solution for exercise ED.3 prior to the colloquium (14.05.2023, 23:59 at the latest). For this, you have to collaborate within your group.

Kind regards,
Your Concurrent Programming Team

09.05.2023

Registration and Preparation for Exam T

Dear students,

on Monday, May 22, we will write Exam T, covering units A-D. The exam will take 1 hour and take place in the time frame 14:00 and 16:00. We use the remaining time before and after for organizational matters. Please register in LSF until Monday,… Read more

Dear students,

on Monday, May 22, we will write Exam T, covering units A-D. The exam will take 1 hour and take place in the time frame 14:00 and 16:00. We use the remaining time before and after for organizational matters. Please register in LSF until Monday, May 15. If your study program does not use LSF registration, please register on your personal status page instead.

To assist you in the final phase before the exam and answer your last urgent questions, our tutors are offering an extended Concurrency Café on Friday, May 19 from 12:00 to 16:00 in E1 3, SR014. We strongly recommend to commence your preparation well before these two days.

Kind regards,
Your concurrent programming team

08.05.2023

Colloquia Room Change: 528 to 517

Dear students,

Starting tomorrow, 09.05.2023, all colloquia which previously took place in room 528 will now take place in room 517.

Kind regards,
Your concurrent programming team

05.05.2023

Bonus Exercise B-C

Dear students,

You will now find a Bonus Exercise B-C in dCMS.

Submitting solutions to this exercise is entirely optional, and we recommend you only work on it if you already have a deep understanding of the main materials presented in the lecture.

Note… Read more

Dear students,

You will now find a Bonus Exercise B-C in dCMS.

Submitting solutions to this exercise is entirely optional, and we recommend you only work on it if you already have a deep understanding of the main materials presented in the lecture.

Note that you may also submit partial solutions. If you do submit this exercise, you may be awarded bonus points. You can find more details on the bonus exercise sheet itself.

For this bonus exercise, you are not allowed to work in your group, i.e., you must solve it by yourself. Plagiarism will be punished by exclusion from the lecture and reporting to the examination board.

Kind regards,
Your Concurrent Programming Team

02.05.2023

Exercise Sheet C

Dear students,

You will now find the Exercise Sheet C in dCMS.

Note that you are required to hand in the solution for exercise EC.2 prior to the colloquium (07.05.2023, 23:59 at the latest). For this, you have to collaborate within your group.

Kind… Read more

Dear students,

You will now find the Exercise Sheet C in dCMS.

Note that you are required to hand in the solution for exercise EC.2 prior to the colloquium (07.05.2023, 23:59 at the latest). For this, you have to collaborate within your group.

Kind regards,
Your Concurrent Programming Team

24.04.2023

Exercise Sheet B

Dear students,

You will now find the Exercise Sheet B in dCMS.

Note that you are required to hand in the solution for exercise EB.2 prior to the colloquium (30.04.2023, 23:59 at the latest). For this, you have to collaborate within your group.

Kind… Read more

Dear students,

You will now find the Exercise Sheet B in dCMS.

Note that you are required to hand in the solution for exercise EB.2 prior to the colloquium (30.04.2023, 23:59 at the latest). For this, you have to collaborate within your group.

Kind regards,
Your Concurrent Programming Team

19.04.2023

Colloquia Groups and Submission of Exercise EA.3

Dear students,

We have finalized the formation of colloquia groups as well as the assignment of time slots to colloquia groups. You will find your group and slot on your personal status page in dCMS. To contact your teammates, use the forum. Their usernames… Read more

Dear students,

We have finalized the formation of colloquia groups as well as the assignment of time slots to colloquia groups. You will find your group and slot on your personal status page in dCMS. To contact your teammates, use the forum. Their usernames are provided on your personal status page as well. Make sure you have activated your forum account, otherwise your teammates will not be able to contact you!

Furthermore, the system now accepts submission of solutions for Exercise EA.3. Note that this is a group submission, i.e., you have to collaborate within your group and submit a single solution together. The submission deadline is 23.04.2023, 23:59.

Kind regards,
Your Concurrent Programming Team

17.04.2023

Exercise Sheet A and Tutorials

Dear students,

You will now find the Exercise Sheet A in dCMS.

Note that you are required to hand in the solution for exercise EA.3 prior to the colloquium (23.04.2023, 23:59 at the latest). For this, you have to collaborate within your group. We will… Read more

Dear students,

You will now find the Exercise Sheet A in dCMS.

Note that you are required to hand in the solution for exercise EA.3 prior to the colloquium (23.04.2023, 23:59 at the latest). For this, you have to collaborate within your group. We will finalize the colloquia groups in the next two days.

Furthermore, you will find your tutorial slot on your personal status page now.

Kind regards,
Your Concurrent Programming Team

13.04.2023

Scheduling of Colloquia

Dear students,

As explained, colloquia form an important component of our learning concept. See here for details.

The survey to schedule your preferred time slot for the colloquium is online now. You can find your personalized link to the survey on your… Read more

Dear students,

As explained, colloquia form an important component of our learning concept. See here for details.

The survey to schedule your preferred time slot for the colloquium is online now. You can find your personalized link to the survey on your personal status page in dCMS. You can update your preferences until Tuesday, 18.04.2023, 23:59. At least one member of each pre-formed group, and all students who do not pre-form a group, must submit the survey.

Until Tuesday, you can also form (and change) the colloquium groups yourself. Afterwards, we will complete the groups and assign you a time slot. You can find further information in the forum.

Kind regards,
Your Concurrent Programming Team

Show all

This is a module in the computer science Bachelor's programme and related programmes at Saarland University.

The module has been awarded the Preis des Fakultätentages Informatik 2013 and multiple Busy Beaver Awards for excellent teaching (in 2011, 2017, and 2019).


Concurrent Programming

In today's world, multi-core CPUs and other parallel architectures, such as graphics processors, are ubiquitous. However, programming and efficiently working with such systems is a major challenge, both theoretically and practically. This challenge arises due to the foundational principles underlying concurrency and the need to design efficient algorithms and software systems that can take advantage of these architectures.

The goal of the lecture is to familiarize students with the theory and application of concurrent programming. A tremendous challenge, without doubt.

In this course, participants will gain a comprehensive understanding of concurrency in computation as a foundational principle of modern computing sciences, both in theory and application. Through analysis and application of various formal models, participants will deepen their understanding of concurrency and learn to apply formal computing concepts correctly. The theoretical knowledge gained in the first part of the module will be applied to practical programming in the second part. Participants will learn about the programming paradigms "shared memory" and "message passing", starting with the programming language pseuCo. They will also learn to describe various phenomena of concurrent programming using formal models and derive concrete solutions for practical problems. Additionally, participants will examine concurrent programming practices with respect to their adequacy and effectiveness, focusing on the strategically adequate reaction to concurrency problems under tight time constraints.


Audience

The target audience of this module is primarily undergraduate students majoring in computer science or related fields. Students may enroll in this module as early as their second term. The only prerequisite is successful completion of the module Programming 1.


Organisation

The module starts on Tuesday, 11.04.2023. All elements will be held in-person.

Details of the organization and all formalities can be found on the Rules & Regulations page.

Lectures are scheduled to take place in-person on Mondays from 14:15 to 16:00 and on Tuesdays from 10:15 to 12:00 in the lecture hall HS 002 located in building E1 3.

Our team of tutors will provide support through tutorials that we plan to offer in English and German (depending on demand). During the registration process, you will have the option to indicate your preferred language. The tutorials will be held on Wednesdays either from 8:15 to 10:00 or from 10:15 to 12:00. Additionally, you can attend the Concurrency Café, where you can ask questions and receive more direct help. The Concurrency Café takes place on Thursdays from 14:00 to 16:00 and on Fridays from 14:00 to 16:00. You can also ask questions at any time in our forum.

In addition to lectures and tutorials, the module includes weekly colloquia. Colloquia are 15-minute sessions assigned to you and 2-3 other students in a peer group. In a colloquium, your tutor will assess whether you have adequately grasped the current module content. There will be a total of 8 colloquia scheduled on Mondays or Tuesdays throughout the teaching term. Passing at least 7 colloquia is a prerequisite for passing the module. You can find more information about the colloquia on the Rules & Regulations page.

Note that this module spans the teaching term in a somewhat unusual manner. Lecture season finishes early (prior to the practical project phase), and some weeks do not feature two lectures. Please refer to our calendar for all dates.

The schedule is still tentative and some dates may change.

Examination

The Concurrent Programming lecture is divided into two blocks: theory (𝓣) and application (𝓐), with each block spanning around four weeks. Following these blocks, the students will complete a practical project (𝓟) that concludes their learning experience. It is important to note that all three elements (𝓣, 𝓐, and 𝓟) must be passed to successfully pass the module (for more details, please refer to the Rules & Regulations page). There will be a written exam at the end of each lecture block, with the examination 𝓣 taking place on 22.05.2023 between 14:00 and 16:00 and the examination 𝓐 taking place on 01.08.2023 between 10:00 and 12:00. Re-examinations will be offered in early fall.


Registration

The registration will open during the first lecture on Tuesday, 11.04.2023 at 10:15.


Literature

The participants will get access to lecture material consisting of lecture notes and other resources that altogether cover the entire content of the lecture. Additional literature can also be found here.


Content

  • Concurrency as a Concept
    • Potential Parallelism
    • Actual Parallelism
    • Conceptional Parallelism
  • Concurrency in Practice
    • Object Orientation
    • Operation Systems
    • Multi-Core Processors, Coprocessors
    • Programmed Parallelism
    • Distributed Systems (Client-Server, Peer-to-Peer, Databases, Internet)
  • The Difficulty of Concurrency
    • Ressource Conflicts
    • Fairness
    • Mutual Exclusion
    • Deadlock
    • Livelock
    • Starvation
  • Foundations of Concurrency
    • Sequential vs. Concurrent Processes
    • States, Events, and Transitions
    • Transition Systems
    • Observable Behavior
    • Determinism vs. Nondeterminism
    • Algebras und Operators
  • CCS: The Calculus of Communicating Systems
    • Construction of Processes: Sequence, Choice, Recursion
    • Concurrency
    • Interaction
    • Structural Operational Semantics
    • Equivalence of Observations
    • Implementation Relations
    • CCS with Message Passing
  • Programming Concurrency
    • pseuCo
    • Message Passing in pseuCo
    • Shared Memory in pseuCo and Java
    • Monitors and Semaphors
    • Shared Objects and Threads in Java
    • Shared Objects and Threads as Transition Systems
  • Programming and Analysis Support
    • Deadlock Detection
    • Verification of Safety and Liveness
    • Model-Based Design Supporting Concurrency
    • Software-Architectures Supporting Concurrency
Privacy Policy | Legal Notice
If you encounter technical problems, please contact the administrators