In this course, the textbook plays an important role, and the lectures will be keyed to it whenever possible. We will use slides from the book as well as slides of our own. These will not in general be available before the lecture, as the content of each lecture is decided dynamically depending on classroom discussions, Many of these discussions will use the blackboard.
It is therefore important that you bring a notebook and make your own notes, and that you understand that the slides are in no sense "lecture notes", or any kind of substitute for the textbook or even for the lectures. Slides are visual aides for the lecture, that is all. After the lecture, they may help you remember what was discussed.
You can see last year's web page to get an idea of the material (do not read the contents related to the programming language JR)."
All the Erlang's material for the lectures is here
To be uploaded
To be uploaded
More Semaphores, on to Monitors
More Semaphores, on to Monitors cont
On Monday 8 September, we did a detailed recap of the first week.
So the uploaded slides ("lecture 4") were in fact mostly used on Thursday 11 Sep. We also introduced (loop) invariants that day.
The tutorial on Friday 12 Sep dealt with the numbers of interleavings (Exercise 2.1 from the book) and with invariants. Here is a useful link for invariants: http://www.cs.uofs.edu/~mccloske/courses/cmps144/invariants_lec.html.
The lecture on 15 Sep 2014 will introduce monitors and, if time permits, protected objects.
Monitors and Protected objects
On Thursday 18 Sep we did a detailed proof of correctness for the readers-writers problem using protected objects, complementing the book's proof for monitors. We also did a proof for the dining philosophers problem.
The tutorial on Fri 19 Sep covered exercises 6.1-6.4, 6.6, and 6.7 in the book.
Distributed Programming with Erlang - A crash course
Resources used during the tutorial
Message Passing (concluded) and Linda
Critical Sections revisited, and Reasoning about Programs
Critical Sections revisited, and Reasoning about Programs