Assignments:
- Each student will prepare a 50-minute talk on one of the topics above.
Grading
- Lecture (at least 85%),
- Participation (at most 15%),
- Reduction of 5 points for each (unjustified) absence. A justified absence requires a summary of the missed lecture.
- The talk will be graded by: Knowledge of the material, Slides effectiveness, Communication of the ideas, and working within the time limit of 50 minutes.
- Main goal: make people understand!
Administrative
- Course syllabus (in Hebrew)
- Prerequisites: Algorithms 1 (234247) and Operating Systems (234123). Further knowledge in concurrent systems will help to understand the topics presented.
Material Covered in the Seminar:
The day that every (new) computer employs parallel processing has arrived. But writing concurrent programs is notoriously difficult and a large amount of traditional sequential code exists. A major challenge to the industry and (applied) research today is to find ways to make the programming for concurrent systems easier and accessible for all programmers. We will present concurrency programming setting, discuss several concurrent data structures, and present server architecture. Another major challenge is the debugging and more generally the reliability of concurrent programs. Some bugs only appear infrequently under specific scheduling scenarios. What are the right tools to discover such bugs and fix them? What are the tools to verify that a code is correct? More challenges relate to progress guarantees, specifically, lock-freedom. In this seminar, we will discuss some of these questions and check which answers exist today.