Computer Laboratory

Course pages 2015–16

Concurrent and Distributed Systems

Lecture notes

There are eight handouts available for the first part of the course (Concurrent Systems):

Corrections: An update was made to Lecture 3 to correct slide 11's example of producer-consumer via monitors. The label for the producer signalling the consumer incorrectly stated that this occurred when the buffer was full; in fact, the signal is generated (as the code example shows) when the buffer is no longer empty.

There are eight handouts available for the second part of the course (Distributed Systems):

Corrections: An update was made to Lecture 2 to correct slide 19: arguments of return values should have read arguments or return values. An update was made to Lecture 3 to clarify slide 16: in REST, "POST" is the referred create operation; "PUT" overwites an existing object (but can also be used to create); and "PATCH" is a newer operation to perform a partial update of an object "in place" on the server.

Supervision material

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:

Additional material

No additional material has been made available yet.

Last year’s course materials are still available.