The lectures and slides cover the course topics and try to be self-content (you will find lot of code on them). Nevertheless, 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.
Learn You Some Erlang for Great Good! A Beginner's Guide F. Hébert, No Starch Press, 1st edition (January 19, 2013).
The text book Learn You Some Erlang For Great Good is also an excellent resource for beginning Erlang programmers. Exists both as a printed book and as a web tutorial.
Introducing Erlang Simon St. Laurent, O'Reilly, 1st edition (January 23, 2013).
Another good introductory book on Erlang.
Programming Erlang: Software for a Concurrent World (Pragmatic Programmers), Joe Armstrong, Pragmatic Bookshelf, 2nd edition (October 3, 2013).
This is an excellent book on programming in Erlang written by Erlang's primary creator. It can serve as a text book, but goes quite in depth into the Erlang's intricacies.
Here are some resources for those who need to refresh their Java skills.
Here is a Java course given at our department that contains good lecture notes.
There are many other books on multithreaded programming in Java that you could refer to, and are easily found on the web. For example, a comparative review of 6 books. The focus of these books differs somewhat from that of our course.
Some quick comments on two books.
Concurrent Programming in Java, Second Edition, by Doug Lea (Addison-Wesley) is both advanced and detailed, and has a computer science perspective as well as a practical one.
Multithreaded Programming with Java Technology, by Lewis and Daniel Berg (Prentice Hall, Sun Press) presents lots of low-level and implementation detail, and is written more from a practical programmer's point of view.
Many Java books have a brief chapter on concurrency. A fair example is the chapter in Object-Oriented Software Development Using Java, by Xiaoping Jia, Addison Wesley.