Concurrent Programming Holger Hermanns

News

21.06.2022

Practical Project and Lecture Evaluation

Dear students,

welcome to the practical project! The project description is now available in the course materials.

Please keep in mind that the deadline to register for the project is tomorrow, 22.06.2022, 23:59. Until then, you must

1. form a _Project... Read more

Dear students,

welcome to the practical project! The project description is now available in the course materials.

Please keep in mind that the deadline to register for the project is tomorrow, 22.06.2022, 23:59. Until then, you must

1. form a _Project Group_ consisting of exactly 2 students on your personal status page and
2. register an account in dGit and submit your dGit username on your personal status page.

If you are unable to complete step 1, you must send a message to @assistants in our discussion board to register for the project instead. In this case, we will assign you to a partner after the deadline has expired.

If you have any questions about the project, you're invited to pose them in the Project category of our discussion board.

In addition, we would like to ask you to evaluate the concurrent programming lecture (unless you have already done so) 

1. Lecture
2. Tutorials

Kind regards,
Your Concurrent Programming Team

15.06.2022

Exam Inspection -- Markings Adjusted

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

14.06.2022

Bonus Exercise H Available

Dear students,

the third bonus exercise is now available in the course materials.

Submitting bonus exercises is entirely optional, and we recommend you only work on them if you already have a deep understanding of the main materials presented in the... Read more

Dear students,

the third bonus exercise is now available in the course materials.

Submitting bonus exercises is entirely optional, and we recommend you only work on them if you already have a deep understanding of the main materials presented in the lecture.

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

Kind regards,
Your Concurrent Programming Team

13.06.2022

Registration for Exam A

Dear students,

if you are registered for exam T, you are also automatically registered for exam A.
In case you did not register for exam T but want to take exam A, please contact us by 01.08.2022.

Kind regards,

Your Concurrent Programming Team

31.05.2022

Results of the Exam and Exam Inspection

Dear Students,

you can now find the results of exam T on your personal status page. If you have obtained 28.5 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... Read more

Dear Students,

you can now find the results of exam T on your personal status page. If you have obtained 28.5 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/2cdr7zejnjbgfp8wlgao

The exam inspection will take place next Tuesday, June 7, between 13:00 and 15:00 in room 106 in building E1 1.

Kind regards,
Your Concurrent Programming Team

19.05.2022

Exam Seating and XXL Office Hour

Dear Students,

on Wednesday, May 25, 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 as... Read more

Dear Students,

on Wednesday, May 25, 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 as soon as possible.
Please arrive at your assigned lecture hall by 12:15. The exam will take 60 minutes.

To assist you in the final phase before the exam and answer your last-minute questions, our tutors are offering extended office hours on Monday, May 23 and Tuesday, May 24 from 10:15 to 18:00 in E1 3, room 528 (excluding the lecture time slots). We strongly recommend to commence your preparation well before these two days.

For your information: The re-exams for T and A are scheduled to take place on October 12, 2022 in the time frame 10:00-14:00.

Kind regards,
The Concurrent Programming Team

11.05.2022

Bonus Exercise C Available

Dear students,

the second bonus exercise is now available in the course materials.

Submitting bonus exercises is entirely optional, and we recommend you only work on them if you already have a deep understanding of the main materials presented in the... Read more

Dear students,

the second bonus exercise is now available in the course materials.

Submitting bonus exercises is entirely optional, and we recommend you only work on them if you already have a deep understanding of the main materials presented in the lecture.

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

Kind regards,
Your Concurrent Programming Team

03.05.2022

Registration and Preparation for Exam T

Dear students,

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

Dear students,

on Wednesday, May 25, we will write Exam T, covering units A-D. The exam will take 1 hour and take place between 12:00 and 14:00. We use the remaining time before and after for organizational matters. Please register in LSF until Wednesday, May 18. 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 extended office hours on Monday, May 23 and Tuesday, May 24 from 10:15 to 18:00 in E1 3, room 528, except for the lecture time slots. We strongly recommend to commence your preparation well before these two days.

Kind regards,
Your concurrent programming team

27.04.2022

Bonus Exercise B Available

Dear students,

the first bonus exercise is now available in the course materials.

Submitting bonus exercises is entirely optional, and we recommend you only work on them if you already have a deep understanding of the main materials presented in the... Read more

Dear students,

the first bonus exercise is now available in the course materials.

Submitting bonus exercises is entirely optional, and we recommend you only work on them if you already have a deep understanding of the main materials presented in the lecture.

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

Kind regards,
Your Concurrent Programming Team

23.04.2022

Upcoming Colloquia and Tutorials

Dear students,

on the upcoming Monday or Tuesday, you will have your first colloquium which covers the assignments of training sheet A (and secret questions on the topics of unit A). Please bring your solutions to the assignments to your colloquium. We will do an... Read more

Dear students,

on the upcoming Monday or Tuesday, you will have your first colloquium which covers the assignments of training sheet A (and secret questions on the topics of unit A). Please bring your solutions to the assignments to your colloquium. We will do an ID check in the first colloquium, so please bring your student ID with you. You can find your colloquium time slot, tutor and room on your personal status page. If your colloquium is online, please join our Discord server and join an audio channel in the Work Zone. To check your ID, it is necessary that you join with a working camera. Please be on time to avoid delays for later groups.

On Wednesday, the first tutorials will take place. If your tutorial takes place in presence, please come to room 107 in E1 3. We will divide you into groups and assign you a tutor there. If your tutorial is online, please join this Zoom room.

If you have any (organizational) questions, please use the forum. 

Kind regards,
Your Concurrent Programming Team

20.04.2022

Colloquium Assignments

Dear students,

on your personal status page in dCMS, you can now find your colloquium group, colloquium time slot and your assigned tutor. In addition, we made the forum user names of your team members available to you. This allows you to contact them by private... Read more

Dear students,

on your personal status page in dCMS, you can now find your colloquium group, colloquium time slot and your assigned tutor. In addition, we made the forum user names of your team members available to you. This allows you to contact them by private messages in the forum.

If we have assigned a person to your group that you cannot find in the forum, they may not have activated their forum account yet. Please try again tomorrow. If you still cannot reach them, let us know, and we'll make contact.

If you did not activate your forum account yet, please do so by visiting https://np22.pseuco.com/ and following the instructions.

Please bring your student ID to the first colloquium. For those who chose online colloquia, please make sure you can join Discord with a device equipped with a working camera.

Kind regards,
Your Concurrent Programming Team

12.04.2022

Scheduling of Colloquia, Tutorials, Training Sheet & Videos from 2020

Dear students,

the survey to schedule your preferred time slot for the colloquium appointment 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, 19.04.2022,... Read more

Dear students,

the survey to schedule your preferred time slot for the colloquium appointment 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, 19.04.2022, 23:59.

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

The first training sheet is also online.

Please note that we decided to upload the video material of the lectures from 2020 as additional materials. The videos will be made available here.

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).

The first lecture will be on Monday, 11.04., at 14:15 in E1 3, HS 002.
We will also attempt to stream the lecture here.

Concurrent Programming

Nowadays, multi-core CPUs and other parallel architectures (like graphics processors) can be found everywhere. Programming and working with such systems efficiently is a major challenge. This has foundational as well as practical reasons.

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

The participants of this course get acquainted with concurrency in computation as a far-reaching and foundational principle with respect to both theory and application of modern computing sciences. By analyzing and applying different formal models, the participants gain a deeper understanding of concurrency, and learn to apply formal computing concepts correctly. The theoretical knowledge acquired in the first part of the module is applied to practical programming in its second part. There, participants learn about the programming paradigms “shared memory” and “message passing”, starting off with the programming language pseuCo. In addition, participants learn to describe various phenomena of concurrent programming using formal models and to derive concrete solutions for practical problems from them. Moreover, the participants examine existing practitioner's concepts with respect to their adequacy and effectiveness. A specific aspect of this professional practice is the tactically adequate reaction to concurrency problems under tight time constraints.


Audience

This module is primarily targeting Bachelor students of computer science and related subjects. It can be attended as early as in the students' second term. The only requirement is prior successful participation in the module Programming 1.


Organisation

The module starts on 11.04.2022. Major elements are planned to be held in presence. Should the pandemic situation get worse, the module might need to switch to full online mode.

Details of the organisation can be found below. The formalities can be found on the Rules & Regulations page.

Per default, each week covers materials in the order of about two 90 min lectures (albeit only for a total of 8 weeks). These lectures are planned to be held in presence every Monday at 14:15-16:00 and Tuesday at 10:15-12:00 in the lecture hall HS 002 in building E1 3. However, the entire content will also be made available in the form of videos and other materials for those who prefer to study the materials independently. We will furthermore make attempts to stream the lectures live and give you a channel for asking questions via chat.

Our team of tutors will support you online and/or in presence. During registration, you can choose either an online tutorial or a tutorial in presence. We expect that choice to stay valid for the entirety of the term (unless the lecture enters full online mode). Tutorials will be offered on Wednesdays at 8:15-10:00 or at 10:15-12:00. In addition, there will be office hours on Thursdays from 14-16 and on Fridays from 12-14 where you can ask questions. At all times, you can get help in our forum.

In addition to lectures and tutorials, the module consists of weekly colloquia. Colloquia are units of 15 minutes duration which you are assigned to together with 2-3 fellow students (i.e., in a peer group of 3-4 students). In a colloquium, your tutor will check whether you have acquired competence in dealing with the current contents of the module to an appropriate extent. You successfully pass a colloquium by demonstrating your individual practical ability to reflect on the contents at hand, as spelled out in the preceding lectures and through specific assignments communicated to you beforehand. To prepare for the colloquium, you will receive a training sheet beforehand, with explicitly-marked assignments which will be discussed in the colloquium. The solutions to those assignments must be at hand at the time of the colloquium. They can be prepared for together in your peer group. The colloquium scope is not confined to these assignments. The training sheet contains further exercises for the purpose of deeper preparation and training. There will be a total of 8 colloquia spread over the teaching term, scheduled on Mondays or Tuesdays. Colloquia can be in presence or online, the choice of which is to be made at registration time by you. If you pass at least 7 colloquia, you can pass the entire module.

Note that this module spans the teaching term in a somehat unusual manner. Lecture season finishes early (prior to the practical project phase), and some weeks do not feature two lectures. All fixed dates are found in our calendar.


Examination in Presence

The contents of the Concurrent Programming lecturing are split in two blocks. They are called theory (𝓣) and application (𝓐). Each of these blocks spans a duration of about 4 weeks. Afterwards, a practical project (𝓟) concludes the teaching experience. It has to be passed successfully. For each of the blocks 𝓣 and 𝓐, we foresee an examination in presence. The examination 𝓣 will be on 25.05.2022 between 12:00 and 14:00. The examination 𝓐 will be on 08.08.2022 between 14:00 and 17:00. Re-examinations will be offered in early fall.


Registration

The registration will open during the first lecture on Monday 11.04.2022 at 14:15.


Literature

The lecture materials the participants will be provided with comprises a script and other elements which together cover the entirety of the contents of the lecture. Further literature can 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