Latest News and General Information
From the course plan:"Concurrent programming plays a vital role in systems where many events appear to occur simultaneously. This course aims to provide an introduction to the problems common to concurrent systems such as operating systems, distributed systems and real-time systems, and practical knowledge of the programming constructs and techniques offered by modern concurrent programming languages."
|
General
Language resourcesFull TimetableLectures
Exercises
Assignments (Labs)
Examinations
|
| Chapter | |
| 1 | all |
| 2 | all |
| 3 | all, except 3.4.3, 3.5 |
| 4 | all, except 4.6 |
| 5 | all, except 5.3, 5.5 |
| 6 | only 6.5 |
| 7 | all, except 7.3.2, 7.3.3, 7.8, 7.9 |
| 8 | all, except 8.1.3, 8.4.2, 8.5 |
| 10 | only 10.1 and 10.2 |
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.
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.
Visit also the local Java page which contain some on-line Java sources.
The practical component is taught by three programming assignments ("labs"). The first two are to be done in MPD or Java. The lectures will use MPD to illustrate a wide range of programming techniques, but we will also illustrate concurrency aspects of Java fairly extensively. Everyone on the course will need to program in either MPD or Java. The exam questions will mainly use MPD, but an understanding of the synchronisation aspect of Java programs will also be expected.
All students also need to learn Erlang to do the third lab and for the exam. A necessary subset of Erlang will be covered in the lectures.
ITS does not create course accounts anymore. Each student is to use his/her own account.
You will be expected to find a lab partner, with whom you will go to exercises and do the assignments. Since the labs for this course take a lot of work to grade, you are required to find a lab partner. One-person groups are allowed only for a well justified reason and only with a permission from the lecturer.
To set up your account run setup_course TDA381
on Linux machines (or setup_course TDA380 on Solaris). This
will activate necessary compilers and programs. If your shell is not tsch, you might not have
any effect of setup_course TDA380 on
persephone.medic.chalmers.se. To resolve the problem, run
tsch before setup_course TDA380. If this does not work, type
PATH=/users/mdstud/ppht/sw/sparc_solaris/bin:$PATH in
your zsh (or bash) prompt. If even this does not
help, contact ITS (former MEDIC).
Lecture notes will be available on-line before the lecture so you can bring them to the lecture to do notes and (in case of errors) corrections. Last year's lectures are already on the web, but changes and updates may be done before the actual lecture. If these updates are substantial then it will be indicated in the latest news section. Slides are only available from within Chalmers/GU, sgsnet.se, etc. Let us know if you need access from elsewhere.
Note on printing out lecture slides: Choose 6/page version
This is a good chance to get to know MPD, or to learn through small practical experiments.
You should come to exercises with your lab partner. Please do not come to more than one class per week - to give others a chance to attend. See the schedule for times. Because of the limited space we strongly discourage you from using the exercise time for laborations. Students using the exercise time to do laborations may be asked to leave to make room for students wanting to to the exercises.
Changing between sessions is fine, as long as there is room. Space is very limited, but many will choose to try the exercises in their own time.
MPD or Java should be used for the two first laborations, and Erlang for the third.
You will need a partner to complete the assignments. To complete the assignments in any other form of a group (or alone) you will need a very good reason and a permission from the main course responsible.
There is a list of times when one of us will be available to help out in a computer room.
All labs must be submitted by the deadline. All corrections to labs ("retur") must be resubmitted within the two weeks following the deadline. No labs submitted more than two weeks after the deadline will be graded. This is a firm limit.
When finished you should submit your assignment for correction.
Note: If you have passed some labs in previous years, you do not resubmit the solutions. Instead, you do have to submit text files for each lab with the information on when you passed it and if you are a Chalmers or GU student (for example: "Passed in VT06; Chalmers student") so that we can check it.