Course book

The assigned course book is Principles of Concurrent and Distributed Programming, 2nd Edition by Mordechai (Moti) Ben-Ari. Addison-Wesley, ISBN 0-321-31283-X. The book covers the topics given in the course and we refer to it in the lectures in order to point you out what to read for each lecture.

General Background

Wikipedia and links from there.

Turing Awards

Computer Science has no Nobel prize. The nearest we have is the Turing award. I've asked generations of Chalmers/GU students in computer science what this award is, who has won it, and for what. They typically have no idea. I think this reflects a failing on the part of the department, so here is a first attempt to fix our lack of historical awareness.

http://en.wikipedia.org/wiki/Turing_Award

Below is a list of researchers who won the Turing award mostly for work in concurrency, though many of the other winners too did related work.

  1. http://en.wikipedia.org/wiki/Edsger_W._Dijkstra
  2. http://en.wikipedia.org/wiki/Tony_Hoare
  3. http://en.wikipedia.org/wiki/Robin_Milner
  4. http://en.wikipedia.org/wiki/Butler_Lampson
  5. http://en.wikipedia.org/wiki/Amir_Pnueli
  6. http://en.wikipedia.org/wiki/Leslie_Lamport

You can read their acceptance speeches (the Turing lectures), and all the others, at

  1. http://amturing.acm.org/lectures.cfm

The others you should read are, at least,

  1. Clarke, Emerson and Sifakis (2007).
  2. Wirth (1984).
  3. Floyd (1978).

You will no doubt be tempted by the titles of several of the others. Give in! In fact, glancing through the whole lot (they are all informal and easy to read) will introduce you to several other related issues, whether to do with computers or programming languages, and is an excellent way to get a broad liberal computer science education. Learn from the masters!

The talks also frequently mention other researchers who did not get the Turing award (they only give one a year). It's useful to pick up names.

Classic Papers

A small selection of classic papers.

  1. E. D. Dijkstra (1968) "Cooperating sequential processes"

    http://www.cs.utexas.edu/~EWD/transcriptions/EWD01xx/EWD123.html

  2. Tony Hoare, "Monitors: an operating system structuring concept"

    http://i.stanford.edu/pub/cstr/reports/cs/tr/73/401/CS-TR-73-401.pdf

    (you can read the CACM 1974 typeset paper via the library)

  3. Tony Hoare's CSP book is online.

    http://www.usingcsp.com/cspbook.pdf

    His paper of the same name, CACM 1978, can be read via the library, or at

    http://www.cs.ucf.edu/courses/cop4020/sum2009/CSP-hoare.pdf

  4. Carriero and Gelernter's LINDA paper is available at

    http://www.ics.uci.edu/~andre/informatics223s2011/caprierogelernter.pdf

For most other references from the textbook, you will have to use the library. As and when we locate other versions online, we will add links here. A major failing of Ben-Ari is that he does not link to Milner's work. Read his papers from the library. E.g., his original CCS (calculus of communicating systems) book.

Several of the references in Ben-Ari's textbook (see the Bibliography at the end) are to books, and these are typically not available online. But the papers are, through the library. Look them up! Bibliographies and lists of references, whether in your textbook or in the papers I hope you will read, are not there to be ignored. The original papers have a freshness that can never be recaptured in a re-telling. Reading the original literature is an essential part of becoming a scientist.

Miscellaneous Links

  1. See "Det dunkelt sagda är det dunkelt tänkta" in

    http://en.wikiquote.org/wiki/Swedish_proverbs

  2. http://en.wikipedia.org/wiki/Therac-25

  3. There are many reports about the Gaisal train accident, but most deal with politics. The timing issue and the mix-up between the various safety systems is mentioned in

    http://www.financialexpress.com/old/ie/daily/19990814/ige14049.html

Here are two paragraphs from the report referring to the programming-related errors:

"Chandra thought that it is a matter of 15 minutes and the train will make it to Gaisal much before Brahmputra crosses it and then shift to the up-line. He granted paper-line clear to Awadh-Assam Express but his fatal error was that he failed to inform Gaisal about it. He should have told Gaisal station master to ensure that Awadh-Assam has reached, before giving clearance to Brahmputra Mail, an official, part of CCRS inquiry, said.

What the Kishanganj ASM did not know was that Awadh-Assam driver was waiting at the next station, Panjipara, for 12 minutes awaiting paper-line clear. The driver knew he was on the wrong line and wanted to continue only after receiving clearance from Panjipara, which was given to him, in utter complacency. So he proceeded towards Gaisal, unaware that Gaisal did not know about his arrival. The Gaisal station staff, meanwhile, did not know about the approaching Awadh-Assam and gave clearance to Brahmputra for arrival."