News

Re-Exams Inspection

Written on 09.10.24 by Nazareno Garagiola

Dear Students,

The exam inspection for the re-exams will take place on Tuesday, October 22, from 16:00 to 17:00 in Room 528 in E1 3. Remember to bring your student ID to the inspection.

Kind regards,
Your Concurrent Programming Team

Project Bonus

Written on 07.10.24 by Felix Freiberger

Dear Students,

based on the criteria

  • effective and elegant use of concurrency,
  • quality of documentation,
  • community support, and
  • excellent performance,

we're awarding a bonus to four project groups:

  • Logically Limitless Lelicopters 🚁
  • 👀 Manchmal ist das Leben halt so…
  • 🦀 on… Read more

Dear Students,

based on the criteria

  • effective and elegant use of concurrency,
  • quality of documentation,
  • community support, and
  • excellent performance,

we're awarding a bonus to four project groups:

  • Logically Limitless Lelicopters 🚁
  • 👀 Manchmal ist das Leben halt so…
  • 🦀 on your door
  • ☕️🐌

Congratulations to the following students! 🎉

  • Daniel Düpont
  • Carlos Zender Fernandez
  • Albert-Antoniu Greaca
  • Fabian Pütz
  • Adrian Scherhag
  • Niklas Scholz
  • Kamila Szewczyk
  • Qifan Yang

To each one of them, 5 bonus points (equivalent to one step in the grade scale) will be added to the final points.

Kind regards,
Your Concurrent Programming Team

Results of Re-Exams

Written on 07.10.24 by Felix Freiberger

Dear Students,

you can now find the results of the re-exams on your personal status page.

For re-exam T, if you have obtained 31 points or more, you have passed the exam. 60% of participating students have passed the exam, the highest score achieved was 55 out of 60 points, the median was 31… Read more

Dear Students,

you can now find the results of the re-exams on your personal status page.

For re-exam T, if you have obtained 31 points or more, you have passed the exam. 60% of participating students have passed the exam, the highest score achieved was 55 out of 60 points, the median was 31 points.

For re-exam A, if you have obtained 31 points or more, you have passed the exam. 71% of participating students have passed the exam, the highest score achieved was 53.5 out of 60 points, the median was 36.25 points.

Unless your project grading is still pending, you will also see the final grade for the entire course on your personal status page. The gradescale used for this is unchanged from the main exams, i.e. if you achieved higher marks in a re-exam, the score will replace the main exam result.

We will announce a date and time for the exam inspection soon.

Kind regards,
Your Concurrent Programming Team

Re-Exam Seats

Written on 30.09.24 by Felix Freiberger

Dear Students,

on Tuesday, October 1st, we will write both re-exams. If you registered for any of them, you will find your room and seat(s) 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.

For re-exam T, please… Read more

Dear Students,

on Tuesday, October 1st, we will write both re-exams. If you registered for any of them, you will find your room and seat(s) 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.

For re-exam T, please arrive at the assigned lecture hall no later than 09:50.
For re-exam A, please arrive at the assigned lecture hall no later than 11:20. Please do not enter until the doors have been opened!

If you are taking both re-exams, there will be a short break in-between. Please note that you will switch seats between the exams. We'll announce details at the end of re-exam T.

Kind regards,
Your Concurrent Programming Team

Registration for Re-Exams (again)

Written on 23.09.24 by Felix Freiberger

Dear students,

we have two updates regarding the re-exams:

  • We would like to remind you to register for the re-exams in LSF. Please register in LSF until Tuesday, 24.09.2024. If your study program does not use LSF registration, please register on your personal status page instead.
  • In… Read more

Dear students,

we have two updates regarding the re-exams:

  • We would like to remind you to register for the re-exams in LSF. Please register in LSF until Tuesday, 24.09.2024. If your study program does not use LSF registration, please register on your personal status page instead.
  • In addition to this (mandatory) registration, to help us prevent printing unneeded exams, we now also ask you to register for the specific re-exams you intend to take on your personal status page. There are two registrations, one for re-exam T, one for re-exam A. If you intend to write both exams, please register for both.
    Please note that this registration is only there to save paper. You must register in LSF to be allowed to take the exams.

If you have any questions or problems concerning exam registration, please send us a message before the end of the registration deadline.

Kind regards,
Your Concurrent Programming Team

Registration for Re-Exams

Written on 11.09.24 by Felix Freiberger

Dear students,

the two re-exams for part T and A of our lecture will take place on Tuesday, 01.10.2024, between 09:00 and 13:00. Both exams will run consecutively, with a break in-between. We'll announce exact times at a later date.

Please note that you have to register for the re-exams in LSF… Read more

Dear students,

the two re-exams for part T and A of our lecture will take place on Tuesday, 01.10.2024, between 09:00 and 13:00. Both exams will run consecutively, with a break in-between. We'll announce exact times at a later date.

Please note that you have to register for the re-exams in LSF (if required by your terms of study). Please register in LSF until Tuesday, 24.09.2024. If your study program does not use LSF registration, please register on your personal status page instead.

Please note that to enable registration in LSF, we had to export grades for the first attempt to LSF. If you did not pass the project yet, we have exported a failing grade to LSF. We will correct this once you have passed the project. Please feel free to contact us if this causes any issues or confusion.

Kind regards,
Your Concurrent Programming Team

Exam Inspection – Markings Adjusted

Written on 04.09.24 by Felix Freiberger

Dear students,

We have now updated the markings for exam A with the changes resulting from the exam inspection. The final results are displayed on your personal status page.

Kind regards,
Your Concurrent Programming Team

Exam Inspection A

Written on 22.08.24 by Nazareno Garagiola

Dear students,

the exam inspection for exam A is scheduled to take place on Friday, August 30, between 10:00 and 12:00 in room SR016 in building E1 3.

Kind regards,
Your Concurrent Programming Team

Results of Exam A

Written on 17.08.24 by Felix Freiberger

Dear Students,

you can now find the results of exam A on your personal status page. If you have obtained 31 points or more, you have passed the exam (why?). 73% of participating students have passed the exam, the highest score achieved was 57 out of 60 points, the median was 33 points.

In case… Read more

Dear Students,

you can now find the results of exam A on your personal status page. If you have obtained 31 points or more, you have passed the exam (why?). 73% of participating students have passed the exam, the highest score achieved was 57 out of 60 points, the median was 33 points.

In case it is definite that you have passed the course (i.e., you passed exams T and A and completed the project), a preliminary grade for the entire course is calculated from the sum of points obtained in exams T and A (plus any potential points from the bonus exercises) using this grade scale and shown on your personal status page. (Any potential project bonus will be added at a later date.)

Kind regards,
Your Concurrent Programming Team

Results of Milestone Ω

Written on 16.08.24 by Felix Freiberger

Dear students,

the results of Milestone Ω are now shown on your personal status page.

In case you have not passed Milestone Ω, you will need to rectify the remaining issues (assuming you fulfill the formal requirements to be able to do so).

For this second attempt, we expect the following in… Read more

Dear students,

the results of Milestone Ω are now shown on your personal status page.

In case you have not passed Milestone Ω, you will need to rectify the remaining issues (assuming you fulfill the formal requirements to be able to do so).

For this second attempt, we expect the following in your repository:

  1. Your updated implementation. Take care that you have rectified any open issues and that your code is adequately commented and self-explanatory.
  2. Your (possibly updated) documentation.

Once you are ready with your updates, send a personal message to your tutor in our discussion board. For each remaining issue, include a brief list of changes you made to address it. We plan to inspect your updates soon after notification and will give you feedback then.

There will not be a second defense, your submission will be inspected solely based on the material you will have delivered. It is in your genuine interest to ensure that you have evidently rectified all open issues and that you have explained the changes clearly.

If you are unsure about what issues need to be addressed, please contact your tutor directly.

We highly recommend that you finish the second submission as soon as possible. The ultimate deadline is 29 September 2024.

Kind regards,
Your Concurrent Programming Team

Exam Seating

Written on 12.08.24 (last change on 12.08.24) by Felix Freiberger

Dear Students,

on Wednesday, August 14, we will write Exam A, covering units E-H. 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… Read more

Dear Students,

on Wednesday, August 14, we will write Exam A, covering units E-H. 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 10:00.

Kind regards,
Your Concurrent Programming Team

Project Defenses

Written on 09.08.24 by Felix Freiberger

Dear students,
 
we have scheduled the project defenses. You can find your appointment on your personal status page.
If you cannot make the appointment we assigned to you, please message us in the forum immediately.
 
The defenses start at the time shown on your status page and should… Read more
Dear students,
 
we have scheduled the project defenses. You can find your appointment on your personal status page.
If you cannot make the appointment we assigned to you, please message us in the forum immediately.
 
The defenses start at the time shown on your status page and should last about 30 minutes. Please wait in front of the assigned room, your tutor will pick you up there.
Please bring your student ID, and a laptop with your project (in the version that is shown on Mission Control) ready to run, to the defense.
 
Kind regards,
Your Concurrent Programming Team

Concurrency Café XXL

Written on 05.08.24 by Nazareno Garagiola

Dear students,

in one week, on Wednesday, 14.08.24, we'll write exam A. To help you prepare, we are offering another installment of Concurrency Café XXL on Friday, 09.08.24. It will start at 14:00 and run until 18:00. We will use E1 3, SR 016.

Aditionally, we would also like to remind you, as… Read more

Dear students,

in one week, on Wednesday, 14.08.24, we'll write exam A. To help you prepare, we are offering another installment of Concurrency Café XXL on Friday, 09.08.24. It will start at 14:00 and run until 18:00. We will use E1 3, SR 016.

Aditionally, we would also like to remind you, as stated on the Project Mission Briefing, to let us know if for the 16th of August any member of your project groups is unavailable for the defence so we can make a different appointment (preferably on the 13th of August).

Kind regards,
Your Concurrent Programming Team

Project Repositories and Infrastructure

Written on 04.07.24 by Felix Freiberger

Dear students,

we have created the project repositories in dGit for you. In case you cannot access your repository, please contact us immediately via the forum.

Please also have a look at the Projects category in the forum. In particular, the post How to Project in VS Code explains how to set up… Read more

Dear students,

we have created the project repositories in dGit for you. In case you cannot access your repository, please contact us immediately via the forum.

Please also have a look at the Projects category in the forum. In particular, the post How to Project in VS Code explains how to set up your IDE for working on the project, and the post Running Automatic Tests contains further details about the automatic testing infrastructure.

On your personal status page, you will now also find your assigned project tutor.

Have fun coding!

Kind regards,
Your Concurrent Programming Team

Practical Project

Written on 01.07.24 by Felix Freiberger

Dear students,

welcome to the practical project! The mission briefing is now available in the course materials. Please keep in mind that the deadline to register for the project is Wednesday, 03.07.2024, 23:59. Until then, you must complete the three steps outlined in the Groups & RegistrationRead more

Dear students,

welcome to the practical project! The mission briefing is now available in the course materials. Please keep in mind that the deadline to register for the project is Wednesday, 03.07.2024, 23:59. Until then, you must complete the three steps outlined in the Groups & Registration section of the project description. If you have any questions about the project, you're invited to pose them in the Project category of our discussion board.

Kind regards,
Your Concurrent Programming Team

Exam Inspection – Markings Adjusted

Written on 01.07.24 by Nazareno Garagiola

Dear students,

We have now updated the markings for exam T with the changes resulting from the exam inspection. The final results are displayed on your personal status page.

Kind regards,
Your Concurrent Programming Team

Course Evaluation

Written on 24.06.24 by Nazareno Garagiola

Dear students,

we would like to ask you to evaluate the Concurrent Programming lecture (unless you have already done so). You can do so here:

Kind regards,
Your Concurrent Programming Team

Exam Inspection T

Written on 04.06.24 by Nazareno Garagiola

Dear students,

the exam inspection for exam T is scheduled to take place on Friday, June 14, between 15:00 and 17:00 in room SR014 in building E1 3.
This will replace the corresponding Concurrency Café on that Friday.

Kind regards,
Your Concurrent Programming Team

Results Exam T

Written on 30.05.24 (last change on 30.05.24) by Felix Freiberger

Dear Students,

you can now find the results of exam T on your personal status page. If you have obtained 31 points or more, you have passed the exam (why?). 72% of participating students have passed the exam, the highest score achieved was 58.5 out of 60 points, the median was 37 points.

A grade… Read more

Dear Students,

you can now find the results of exam T on your personal status page. If you have obtained 31 points or more, you have passed the exam (why?). 72% of participating students have passed the exam, the highest score achieved was 58.5 out of 60 points, the median was 37 points.

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, approximative 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/tuimx2ew7uicpv87m9o3

Kind regards,
Your Concurrent Programming Team

Exam Seating

Written on 22.05.24 by Felix Freiberger

Dear Students,

on Tuesday, May 28, 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… Read more

Dear Students,

on Tuesday, May 28, 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 10:15.

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é XXL tomorrow (Thursday, May 23) from 14:00 in E1 1, room 407, and on Friday (May 24) from 14:00 in E1 3, SR014 (moving to E1 1, room 407 at 16:00).

Kind regards,
Your Concurrent Programming Team

Exam T Preparation

Written on 14.05.24 by Felix Freiberger

Dear students,

in two weeks, on Tuesday, 28.05.24, we’ll write exam T. To help you prepare, we are offering two additional events:

  • Next Tuesday at 10:15, we will replace the lecture with a Q&A session (in the usual lecture hall). There, you’ll have the opportunity to ask questions on anything… Read more

Dear students,

in two weeks, on Tuesday, 28.05.24, we’ll write exam T. To help you prepare, we are offering two additional events:

  • Next Tuesday at 10:15, we will replace the lecture with a Q&A session (in the usual lecture hall). There, you’ll have the opportunity to ask questions on anything covered in the lecture so far.
    You can ask questions live in the lecture. However, we encourage you to pre-submit your questions so we can prepare an answer.
    The Q&A session will not be recorded.
  • Next week, both Concurrency Cafés are being supersized and turn into Concurrency Café XXL. They start at 14:00 but run longer, and our tutors have prepared additional training exercises for you. The Thursday session will be in E1 1, room 407; the Friday session will start in the usual room (E1 3, SR 014) but move to E1 1, room 407 at 16:00.

We would also like to remind you to register in LSF for the exam. The registration closes one week before the exam. If you miss this deadline, you will be unable to participate in the exam – no exceptions.
If your course of study does not use LSF, you must register in dCMS on your personal status page, and may need to register with your examination office.

Kind regards,
Your Concurrent Programming Team

Bonus Exercise C Available

Written on 08.05.24 by Felix Freiberger

Dear students,

you will now find the Bonus Exercise Sheet 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. You will have time to submit your answer… Read more

Dear students,

you will now find the Bonus Exercise Sheet 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. You will have time to submit your answer until May 15 AoE.

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, 2019, 2023).


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. Successful completion of the module Programming 1 and basic knowledge of Java are helpful.


Organisation

The module starts on Monday, 15.04.2024. 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. We'll announce dates and times for the Concurrency Café at a later date. 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 28.05.2024 between 10:00 and 12:00 and the examination 𝓐 taking place on 14.08.2024 between 10:00 and 12:00. Re-examinations will be offered in early fall.


Registration

The registration will open during the first lecture on Monday, 15.04.2024 at 10:15.

Registration will close on Tuesday, 16.04.2024 at 23:59

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