Nichtsequentielle Programmierung befasst sich mit den Datenstrukturen und Algorithmen zur Synchronisation nebenläufiger Prozesse, die auf gemeinsame Daten zugreifen oder miteinander kommunizieren. Die Vorlesung stellt die grundlegenden Konzepte und Methoden der Programmierung nebenläufiger Systeme im Zusammenhang dar. Sie setzt den (auf sequentielle Programmierung beschränkten) Zyklus Algorithmen und Programmierung I-III fort und ist Voraussetzung für verschiedene Veranstaltungen des Hauptstudiums wie z.B. Netzprogrammierung, Betriebssysteme, Verteilte Systeme und Parallele Algorithmen.
|Dozent/in||Prof. Dr. Marcel Kyas|
|Institution||Institute of Computer Science|
Freie Universität Berlin
|Raum||Takustraße 9 HS 003|
Office Hours: Tuesday, 14-15
Time: Wednesday, 16-18
The first tutorials take place on Thursday, April 23. It is important to visit the first session. If you cannot come, send an e-mail. Otherwise we have to assume that you are not interested in tyour seat in the tutorial and may give it away to students who need it.
I urge all students which are registered for a tutorial but do not intend to go to that tutorial to register for the new tutorial (room "Nach Vereinbarung," Time "Nach Vereinbarung"). We need the places in the tutorials for people who actually want to go there.
Andrews, G.R.: Foundations of multithreaded, parallel and distributed programming. Addison-Wesley, 2000
Lea, D.: Concurrent Programming in Java (2. ed.). Addison-Wesley, 1999
A. Wellings, Concurrent and Real-Time Programming in Java, Wiley & Sons, 2004
G. Taubenfeld, Synchronisation Algorithms and Concurrent Programming, Prentice Hall, 2006
K.R. Apt, E.-R. Olderog, Programmverifikation, Springer, 1994
K.R. Apt, E.-R. Olderog, Verification of Sequential and Concurrent Programs, 2nd Edition, Springer, 1997
R.D. Tennent, Specifying Software, Cambridge University Press, 2001
W.-P. de Roever, F. de Boer, U. Hannemann, J. Hooman, Y. Lakhnech, M. Poel, J. Zwiers, Concurrency Verification, Cambridge University Press, 2001
If you encounter problems regarding your tutor, assignments, etc, please contact Marcel Kyas.
Source code of the example programs
R. G. Lavender and D. C. Schmidt. Active Object: An Object Behavioral Pattern for Concurrent Programming, 2nd Annual Pattern Languages of Programming (PLoP'95) Conference. (published in the PLoP II book) Note that the file does not reside on FU Berlin's web server but at the University of Texas at Austin and I disclaim all responsibility for the articles content.
Assignments are to be turned in into your tutors box in front of room 137 till 1600.Programming assignments must be delivered electronically by e-mail, too. Details will be announced in the first tutorial session.
Assignments should be submitted by teams of two or three students that visit the same tutorial. State the names of each team member clearly on each sheet.
Assignments can only be downloaded from the network of FU-Berlin (e.g., via VPN)
1st Assignment, due 22.04.2009
2nd Assignment, due 29.04.2009
3rd Assignment, due 06.05.2009
4th Assignment, due 19.05.2009 (new delivery date!)
5th Assignment, due 19.05.2009
6th Assignment, due 02.06.2009
7th Assignment, due 16.06.2009
8th Assignment, due 30.06.2009
Source code of my sequential N-body gravitational simulation. The main method is in View.java.
Josh Barned and Piet Hut, A hierarchical O(N log N) force-calculation algorithm, Nature 324, 446-449, December 1986
9th Assignment, due 07.07.2009
10th Assignment, due 14.07.2009
Some selected solutions (find all mistakes)
July 22, 2009 Physiologie-HS
Next examination: Monday, October 5, 2009, 16:00-18:00, Physiologie-HS
Results have been published at the blackboard opposite of room 155. The solutions to the problem set are here.
Active participation in the tutorials is essential!
At least n-2 times present
Hand-in your assignments on time
Teamwork is required, 2-3 students in a team. All team-mates must visit the same tutorial. You cannot visit tutorials of two different tutors or at different times. The whole team might be required to present a solution.
Successful submission of at least n-2 assignments
At least 50% of the ungraded assignments must be acceptable
At least 50% of the max. number of points
At least 50% of the programming assignments must be accepted
Each student must be able to present the assignment during the tutorials
Each student must have presented in the tutorials at least once
At least 50% of the max. number of points required in the exam
The final grade is the grade of the exam only!