How to write parallel programs a first course - Carriero, Nicholas (The MIT Press, 1990)