Supervision material and notes from 2013

Many of the ideas in concurrent systems can feel quite abstract in the absence
of real-world experience; more glibly put, you can't understand a race
condition without having debugged one!
An introduction to concurrency primitives in Java, as well as several
practical exercises, can be found here: