News
Re-Exam Inspection – Markings AdjustedWritten on 21.11.22 by Felix Freiberger Dear students, we have now updated the markings for the re-exams with the changes resulting from the exam inspection. The final results are displayed on your personal status page. Kind regards, |
Results of Re-Exam T and Re-Exam A - Final Grades of the CourseWritten on 18.10.22 by Michaela Klauck Dear students, you can now find the results of re-exam T and re-exam A on your personal status page. You have passed re-exam T if you have obtained 28.5 points or more. You have passed re-exam A if you have obtained 31.5 points or more. A grade for the entire course is calculated from the… Read more Dear students, you can now find the results of re-exam T and re-exam A on your personal status page. You have passed re-exam T if you have obtained 28.5 points or more. You have passed re-exam A if you have obtained 31.5 points or more. A grade for the entire course is calculated from the maximum points obtained in exam or re-exam T, plus the maximum points obtained in exam or re-exam A, plus bonus exercise points, plus project bonus. We use this grade scale. You can find your grade on your personal status page. The exam inspection for the re-exams will take place on Friday, November 4 from 9:30 to 10:30 in room 528 in E1 3. Kind regards, |
Re-Exams T and AWritten on 06.10.22 by Michaela Klauck Dear students, on Wednesday, October 12, we will write Re-Exam T and Re-Exam A. Each of the exams is planned to take 1 hour. We start with Re-Exam T at 11:00. Please be in front of the lecture hall at 10:45 at the latest if you are registered for Re-Exam T. Afterwards, there will be a break… Read more Dear students, on Wednesday, October 12, we will write Re-Exam T and Re-Exam A. Each of the exams is planned to take 1 hour. We start with Re-Exam T at 11:00. Please be in front of the lecture hall at 10:45 at the latest if you are registered for Re-Exam T. Afterwards, there will be a break of about 30 min in which those who plan to take both exams are free to leave the room to get some fresh air. We plan to start with Re-Exam A around 12:35. Please be in front of the lecture hall at 12:20 at the latest if you are registered for Re-Exam A. If you registered for one of the re-exams, you will find your seat identity on your personal status page. Note that, in case you have registered for both exams you will be assigned two distinct seats. If we did not assign you a seat and you think that this is an error, please notify us as soon as possible. Kind regards, |
Registration for Re-ExamsWritten on 13.09.22 by Michaela Klauck Dear students, The two re-exams for part T and A of our lecture will take place on Wednesday October 12, 2022 between 11:00 and 14:00. An exact schedule will be given later. You can expect that there is a break inbetween the two exams. Please note that you have to register for the re-exams in… Read more Dear students, The two re-exams for part T and A of our lecture will take place on Wednesday October 12, 2022 between 11:00 and 14:00. An exact schedule will be given later. You can expect that there is a break inbetween the two exams. Please note that you have to register for the re-exams in LSF (if required by your terms of study). In addition, you also have to register in dCMS. If your field of study does not allow to register in LSF, a registration in dCMS is sufficient. Registration in LSF and in dCMS closes on Wednesday, October 5, 2022. If you miss this deadline, you are not allowed to take part in any of the re-exams. Kind regards, |
Exam Inspection A – Markings AdjustedWritten on 12.09.22 by Michaela Klauck 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, |
Exam Inspection AWritten on 16.08.22 by Michaela Klauck Dear students, the exam inspection will take place on Tuesday, September 6, between 11:00 and 13:00 in HS 001 in building E1 3. Kind regards, |
Results of Exam A & Project BonusesWritten on 10.08.22 by Felix Freiberger Dear Students, you can now find the results of exam A on your personal status page. You have passed the exam if you have obtained at least 31.5 points (which corresponds to 50% of the points measuring your performance, plus the 3 points from checking “no answer” in the last exercise). In case it… Read more Dear Students, you can now find the results of exam A on your personal status page. You have passed the exam if you have obtained at least 31.5 points (which corresponds to 50% of the points measuring your performance, plus the 3 points from checking “no answer” in the last exercise). In case it is definite that you have passed the course (i.e. you have passed exams T and A and have already completed the project), a grade for the entire course is calculated from the sum of points obtained in exams T and A using this grade scale. You can find your grade on your personal status page, too. If you have obtained bonus points through the bonus exercises, they have been included in this sum. In addition, we are happy to announce that the following project groups have been awarded a bonus 🎉:
Congratulations to them! For these groups, an additional 5 bonus points (equivalent to one step in the grade scale) have been added as well. We will announce a date for the exam inspection soon. Kind regards, |
Results of the Project DefenseWritten on 04.08.22 by Felix Freiberger Dear students, the outcome of the project defense is now shown on your personal status page. In case you have not passed the defense, 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… Read more Dear students, the outcome of the project defense is now shown on your personal status page. In case you have not passed the defense, 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:
Once you are ready with your updates, send a personal message to your tutor in our discussion board. For every problem that has remained in the project defense, include a brief list of changes you made to address them. 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. Please ensure that you have rectified all open problems and that you explain 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 deadline is 12 October 2022 (the day of the re-exams). Kind regards, |
Exam Seating and XXL Office HourWritten on 02.08.22 by Michaela Klauck Dear students, on Monday, August 8, we will write Exam A, covering units E-H. The exam will take 1 hour and takes place between 14:00 and 16:00. We use the remaining time before and after for organizational matters. If you registered for the exam, you will find your room and seat on your … Read more Dear students, on Monday, August 8, we will write Exam A, covering units E-H. The exam will take 1 hour and takes place between 14:00 and 16:00. We use the remaining time before and after for organizational matters. 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. To assist you in the final phase before the exam and answer your last urgent questions, our tutors are offering an extended office hour before exam A on Friday, August 5 from 10:15 - 16:00 in room 407 in E1 1. We strongly recommend to commence your preparation well before this day. Kind regards, |
Project DefenseWritten on 29.07.22 by Felix Freiberger Dear students, we have scheduled the project defenses. You can find your appointment on your personal status page. Please bring your student… Read more Dear students, we have scheduled the project defenses. You can find your appointment on your personal status page. 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, |
Practical Project and Lecture EvaluationWritten on 21.06.22 by Michaela Klauck 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 … 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 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) Kind regards, |
Exam Inspection – Markings AdjustedWritten on 15.06.22 (last change on 10.08.22) by Michaela Klauck 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, |
Bonus Exercise H AvailableWritten on 14.06.22 by Michaela Klauck 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,… 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, |
Registration for Exam AWritten on 13.06.22 by Michaela Klauck Dear students, if you are registered for exam T, you are also automatically registered for exam A. Kind regards, Your Concurrent Programming Team |
Results of the Exam and Exam InspectionWritten on 31.05.22 by Michaela Klauck 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. 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. 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, |
Exam Seating and XXL Office HourWritten on 19.05.22 by Michaela Klauck 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. 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. 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, |
Bonus Exercise C AvailableWritten on 11.05.22 by Michaela Klauck 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,… 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, |
Registration and Preparation for Exam TWritten on 03.05.22 by Michaela Klauck 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… 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, |
Bonus Exercise B AvailableWritten on 27.04.22 by Felix Freiberger 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,… 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, |
Upcoming Colloquia and TutorialsWritten on 23.04.22 by Felix Freiberger 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,… 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, |
Colloquium AssignmentsWritten on 20.04.22 by Felix Freiberger 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… 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, |
Scheduling of Colloquia, Tutorials, Training Sheet & Videos from 2020Written on 12.04.22 by Michaela Klauck 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… 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, |
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).
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.
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