02158  Concurrent Programming - Activity Plan
Technical University of Denmark DTU
02158 Concurrent Programming        Fall 2024
Activity Plan
Home Plan Material  

Week Day Lecture topics1   Texts2 Ex. Class/Lab Solutions Home work ex.3 Solutions Mini labs
1 Sep 5 Introduction
Basic concepts, Petri Nets
[Andrews 1]
[Basic 1]
Ex. Class 1 Sol. Class 1 [Aux] Petri.3, Petri.5 Sol. Week 1 Minilab 1
2 Sep 12 OS history, processes & threads, Java threads
Atomic actions, interleaving model, transition systems 
[Andrews 2.1, (6-6.1)], [Proc 1,2,4]
[Andrews 2.4-2.6]4, [Basic 2]
Lab. 1 Sol. Lab 1 [Aux] Trans.1, Trans.2*, Trans.5, Trans.6 Sol. Week 2 Minilab 2
3 Sep 19 Properties, safety and liveness
Critical regions, lock protocols
[Andrews 2.8]
[Andrews 3.1-3.3] + slides
Assignm. 1 - [Aux] Trans.3, Trans.4*
[Andrews] Ex. 2.11, 2.14  [Aux] (Share.1)
Sol. Week 3 -
4 Sep 26 Invariants, SPIN, test-and-set
Temporal logic intro
[Basic 3], [Spin 1-5]5
[Basic 4-4.3 (4.3.2 skim only)]
Ex. Class 2 Sol. Class 2 [Andrews] Ex. 3.3(a,b)6, (3.2) Sol. Week 4 -
5 Oct 3 Liveness
Barriers, spin-locks, memory models
Semaphores
[Basic 4.4-4.6], [Spin 6]
[Andrews 3.4, (3.5)], [Basic 2.5], ([Linux])
[Andrews 4.1-4.3]
Lab. 2 Sol. Lab 2 [Aux] (Theory.1 excl. 1.3.b)
[Aux] Sema.1, Sema.2, Sema.4*
Sol. Week 5 Minilab 3
6 Oct 10 Semaphore invariant
Semaphore techniques, semaphore variants
[Basic 3.6]
[Andrews 4.4, 4.5, (4.6)]7
Assignm. 2 - [Andrews] Ex. 4.24, 4.6, 4.14*   [Aux] Sema.3
[Aux p.15, 18] Exam. Dec.03, Prob.28, Exam. Dec.06, Prob.28
Sol. Week 6 -
Fall vacation
7 Oct 24 Monitors, Java monitors
Monitor techniques
Monitor invariants
[Andrews 5-5.2.1,5.4], [Sync 5]
[Andrews 5.2.2-5.2.4, (5.3)]
[Basic 5]
Ex. Class 3 Sol. Class 3 [Andrews] Ex. 5.4 (a,b,c,d*), (Ex. 5.8 (a,b,(c)) Sol. Week 7 Minilab 4
8 Oct 31 Monitor variants
Monitor testing
Deadlocks
[Andrews (5.5)] ([Sync])
 
[Deadlocks]
Lab. 3 Sol. Lab 3 [Aux] Mon.5, Mon.6
[Aux p.12] Dec.98 Prob.4, [Deadlocks] 7.11*
Sol. Week 8 -
9 Nov 7 Message passing
CSP
[Andrews 7.1-7.3.1, 7,4]
[Andrews 7.6-7.6.3, (7.6.4)]
Assignm. 3 - [Andrews] Ex. 7.3(a), 7.6* Sol. Week 9 -
10 Nov 14 Remote operations, rendezvous
Message passing variants: Go, Ada
[Andrews 8.1-8.4, (8.5)]
[Andrews (7.7-7.8)] ([GoProg])
Ex. Class 4 Sol. Class 4 [Aux p.10]Jun.94 Prob.3, [Andrews] Ex. 8.9, 8.12  
Exam. Dec.20189, Exam. Dec.20209
Sol. Week 10 Minilab 5
11 Nov 21 Parallel computation
Concurrency paradigms
[Andrews (7.8, III, (11), 12.1.2-12.1.3)]
 
Lab 4 Sol. Lab 4 [Aux p.13] ParComp.1
[Aux p.14, 16, 17] (Dec.02 Prob.3, Dec.03 Prob.3, Dec.04 Prob.3)
Sol. Week 11 -
12 Nov 28 Concurrent data structures
Transactions, STM
([NonBlock], [Herlihy], [Raynal])

Assignm. 4 - [Aux p.18, 21] (Dec.06 Prob.2, Dec.08 Prob.3) Sol. Week 12 -
13 Dec 5 Course ending ([Python], [Loom]) Ex. Class 5 All Sol.10 - - -

 
Legend:    Core Topics Supplementary Topics Laboratory Activities

 Notes:
1)Topics link to (selected) slides
2)In Texts, ( ... ) refers to supplementary reading.
3)( ... ) indicates supplementary exercises, while * indicates extra-curricular, more demanding exercises. The home work exercises are non-mandatory.
4)See Remark.1 about critical references
5)Skip [Spin 3.6] for now
6)Also try to prove your solution in (a). Does it hold for (b) too?
7)See [Reek] for an alternative to the passing-the-baton technique and [Downey] for many more examples.
8)Non-mandatory homework: You may hand in any parts of these exam problems for correction and feedback. Hand-in on paper at the lecture on October 24 or on October 31.
9)Non-mandatory homework: You may hand in up to three problems from these exams for correction and feedback. Hand-in on paper at the lecture on November 21.
10)Collection of all class and weekly solutions.

Subject to change.
Hans Henrik Løvengreen, Dec 6, 2024