Vorlesung Sommersemester 2003 HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Algorithmische Grundlagen des Internets XIII Christian Schindelhauer [email protected] HEINZ NIXDORF INSTITUT Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Institut für Informatik AG Theoretische Informatik Algorithmen, Komplexitätstheorie, Paralleles Rechnen Algorithm. Grundlagen des Internets Christian Schindelhauer 1 28. Juli 2003 HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik ACHTUNG 1. Raumänderung: Übung findet heute in Raum F1.310 zur gewohnten Zeit statt 2. Vorstellung Projektgruppen Parallel zur Übung hier in Raum F0.530 statt. Wir empfehlen 1. Mobile Ad-Hoc Networks based on W-LAN, Böttcher, Rammig Schindelhauer 2. P2P-Netzwerke für Dynamische Szenarien, Meyer auf der Heide 3. Studienarbeiten, Diplomarbeiten bitte bei Schindelhauer und Volbert anfragen o Mobile Ad-Hoc Netzwerke o TCP-Bandweitenallokation o P2P-Netzwerke 4. Studentische Hilfskraft für Buchprojekt “Die Algorithmen des Internets” gesucht 5. Veranstaltungen im Winter 2003/2003: o Seminar “Advanced Topics of Computational Complexity” o PG “Mobile Ad-Hoc Networks based on W-LAN” o o Vorbesprechung xx.10.2003, 18 Uhr F1.110 Vorlesung “Average-Komplexitätstheorie und Average-Case Algorithmen” Algorithm. Grundlagen des Internets 28. Juli 2003 2 Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Lastanforderungen o Einige Web-Server haben immer hohe Lastanforderungen www.google.com Z.B. Nachrichten-Sites, Suchmaschinen, Webverzeichnisse Für permanente Anforderungen müssen Server entsprechen ausgelegt werden o Andere leiden unter hohen Fluktuationen, z.B. Montag Z.B. Web-Site des Tages, NASA, Turniere www.viaduktaltenbeken.de Dienstag www.viaduktaltenbeken.de Mittwoch www.viaduktaltenbeken.de Server-Erweiterung nicht sinnvoll Bedienung der Anfragen aber erwünscht Algorithm. Grundlagen des Internets 28. Juli 2003 3 Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Web-Caching o Leighton, Lewin, et al. STOC 97 Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web Passen bestehende Verfahren für dynamische Hash-Funktionen an WWW-Anforderungen an o Leighton und Lewin (MIT) gründen Akamai 97 www.altenbekenviadukt.de Web-Cache o Akaimai 2003: 15.000 Server in 60 Ländern verbunden mit 1.100 lokalen Netzwerken Algorithm. Grundlagen des Internets 28. Juli 2003 4 Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Proxy Caching o Jede Web-Seite wird auf einige (wenige) Web-Cache verteilt o Nur Startanfrage erreicht Web-Server o Links referenzieren auf Seiten im WebCache o Dann surft der Web-Client nur noch auf den Web-Cache o Vorteil: Webseiten Web-Server Web-Cache Kein Bottleneck o Nachteil: Lastbalancierung nur implizit möglich Hohe Anforderung an CachingAlgorithmus Web-Clients Algorithm. Grundlagen des Internets 28. Juli 2003 5 Christian Schindelhauer Anforderungen an Caching-Algorithmus HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik 2. Dynamik Effizientes Einfügen/Löschen von neuen Web-Cache-Servern 1. Balance Gleichmäßige Verteilung der Seiten 3. Views Web-Clients „sehen“ unterschiedliche Menge von Web-Caches Algorithm. Grundlagen des Internets 28. Juli 2003 6 Christian Schindelhauer Ranged Hash-Funktionen HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik o Gegeben: Elemente (Items) I, Anzahl: I = |I| Caches (Buckets) B Views V ⊆ 2B o Ranged Hash-Funktion: Voraussetzung: Algorithm. Grundlagen des Internets 28. Juli 2003 7 Christian Schindelhauer Anforderungen an Ranged Hash-Funktionen 1. Monotonie HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik o Seiten, die im umfassenderen View einem Cache zugewiesen sind, werden nicht umorganisiert Seiten View 1: Cache View 2: Seiten Algorithm. Grundlagen des Internets 28. Juli 2003 8 Christian Schindelhauer Anforderungen an Ranged Hash-Funktionen 2. Balance HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Für jeden View V ist die Hash-Funktion fV(i) balanciert Seiten View 1: Cache View 2: Seiten Algorithm. Grundlagen des Internets 28. Juli 2003 9 Christian Schindelhauer Anforderungen an Ranged Hash-Funktionen 3. Spread HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Die Verbreitung σ(i) (spread) einer Seite i ist die Gesamtanzahl aller notwendigen Kopien (über alle Views) View 1: View 2: View 3: Algorithm. Grundlagen des Internets 28. Juli 2003 10 Christian Schindelhauer Anforderungen an Ranged Hash-Funktionen 4. Load HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Die Last λ(b) (load) eines Caches b ist die Gesamtanzahl aller notwendigen Kopien (über alle Views) View 1: View 2: View 3: Algorithm. Grundlagen des Internets 28. Juli 2003 11 Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Bälle und Körbe Lemma Werden m Bälle zufällig in n Körbe geworfen. Dann gilt: 1. Die erwartete Zahl von Bällen pro Korb ist m/n. 2. Die W‘keit, dass k Bälle auf einen bestimmten Korb fallen ist, Lemma Werden m=n Bälle zufällig in n Körbe geworfen. Dann gilt: 1. Die W´keit, dass ein (bestimmter) Korb leer bleibt, ist konstant (konvergiert gegen 1/e). Die erwartete Anzahl leerer Körbe konvergiert gegen n/e 2. Die W‘keit, dass mehr als k ln n/ln ln n Bälle auf einen bestimmten Korb fallen, ist höchstens O(n-c) für konstante k und c. Algorithm. Grundlagen des Internets 28. Juli 2003 12 Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Bälle und Körbe Lemma Werden m= k n log n Bälle zufällig in n Körbe geworfen (für geeignete Konstante k). Dann gilt: 1. Die W‘keit, dass mehr als c1 log n Bälle auf einen Korb fallen ist höchstens O(n-c) 2. Die W‘keit, dass ein Korb leer bleibt ist höchstens O(n-c) Beweis: Übungsaufgabe! Algorithm. Grundlagen des Internets 28. Juli 2003 13 Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Familien von Hash-Funktionen o Für jede Hash-Funktion existiert eine Worst-Case-Eingabe Daher betrachtet man grundsätzlich Familien von HashFunktionen Genauso definieren wir Familie von Ranged-Hash-Funktionen für geg. Views und Caches o Wir gehen im folgenden davon aus, dass die Hash-Funktion sich verhält wie ein perfektes Zufallsereignis Gleichwahrscheinlich Unabhängig o Werden die Elemente wie Bälle in Körbe verteilt. Algorithm. Grundlagen des Internets 28. Juli 2003 14 Christian Schindelhauer Konsistentes Hashing HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik C: Anzahl aller Caches B C/t: Mindestanzahl Caches pro View ist C/t V/C (Anzahl Views/Anzahl Caches)konstant I= C (Anzahl Seiten = Anzahl Caches) Theorem Es gibt eine Familie von ranged-Hash-Funktionen F mit den folgenden Eigenschaften 1. Jede Funktion fF ist monoton 2. Balance: Für jeden View gilt 3. Spread: Für jede Seite i ist 4. Load: Für jeden Cache b ist Algorithm. Grundlagen des Internets 28. Juli 2003 15 Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Die Konstruktion o 2 Hash-Funktionen auf das reelle Intervall [0,1] rB(b,j): für Cache b und Zahl j {1,.., κ log C} • κ log C Kopien des Caches b zufällig auf [0,1] ab rI(i): bildet Web-Seite i zufällig auf Intervall [0,1] ab o fV(i) := Cache bV, der für ein j den Abstand |rB(b,j)-rI(i)| minimiert. Caches View 1 View 2 1 0 Webseiten Algorithm. Grundlagen des Internets 28. Juli 2003 16 Christian Schindelhauer 1. Monotonie HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik fV(i) := Cache bV, der für ein j den Abstand |rB(b,j)-rI(i)| minimiert. Beobachtung: Blaues Intervall sowohl in V2 als auch in V1 leer! Caches View 1 View 2 1 0 Webseiten Algorithm. Grundlagen des Internets 28. Juli 2003 17 Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik 2. Balance Balance: Für jeden View gilt Wähle festen View und eine Web-Seite i Wende nun die Hash-Funktionen rB(b,j) und rI(i) an. Unter der Annahme, dass diese sich wie zufällige Abbildungen verhalten, • wird jeder Cache mit der gleichen Wahrscheinlichkeit ausgewählt. View 1 0 Webseiten Algorithm. Grundlagen des Internets 28. Juli 2003 18 Christian Schindelhauer 3. Spread (I) HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Die Verbreitung σ(i) (spread) einer Seite i ist die Gesamtanzahl aller notwendigen Kopien (über alle Views) C: Anzahl aller Caches B C/t: Mindestanzahl Caches pro View ist C/t V/C (Anzahl Views/Anzahl Caches)konstant I= C (Anzahl Seiten = Anzahl Caches) Spread: Für jede Seite i ist Beweis Betrachte Intervalle der Länge t/C 0 t/C Algorithm. Grundlagen des Internets 28. Juli 2003 1 2t/C 19 Christian Schindelhauer 3. Spread (II) HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik C: Anzahl aller Caches B C/t: Mindestanzahl Caches pro View ist C/t V/C (Anzahl Views/Anzahl Caches)konstant I= C (Anzahl Seiten = Anzahl Caches) Beweis: … Betrachte Intervalle der Länge t/C Caches insgesamt: κ C log C zufällig verteilt über C/t Intervalle • O(n t log n) Bällen in n Körbe mit n = C/t • Mit W‘keit 1-n-Ω(1) sind höchstens O(t log C) Caches in jedem Intervall Caches (alle Views) 0 t/C 1 2t/C # Caches in benachbarten Intervallen von ≤ O(t log C) Algorithm. Grundlagen des Internets 28. Juli 2003 20 Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik 3. Spread (III) C: Anzahl aller Caches B C/t: Mindestanzahl Caches pro View ist C/t V/C (Anzahl Views/Anzahl Caches)konstant I= C (Anzahl Seiten = Anzahl Caches) Beweis: … Betrachte Intervalle der Länge t/C Cache in einem View: κ C/t log C zufällig verteilt über C/t Intervalle • O(n log n) Bällen in n Körbe mit n = C/t • Mit W‘keit 1-n-Ω(1) ist mindestens ein Cache in einem Intervall View V 0 t/C 1 2t/C In der Nähe von ist in jedem View ein Cache Algorithm. Grundlagen des Internets 28. Juli 2003 21 Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik 3. Spread (IV) Beweis: … Betrachte Intervalle der Länge t/C Mit W‘keit 1-n-Ω(1) ist mindestens ein Cache in einem Intervall Also wird die Webseite i immer lokal gespeichert • D.h. in ihrem Intervall oder im Nachbarintervall gespeichert Mit W‘keit 1-n-Ω(1) sind höchstens O(t log C) Caches in jedem Intervall Obere Schranke für Verbreitung: O(t log C) View 1 View 2 0 t/C 1 2t/C In der Nähe von ist in jedem View ein Cache Algorithm. Grundlagen des Internets 28. Juli 2003 22 Christian Schindelhauer 4. Load (I) HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik o Die Last λ(b) (load) eines Caches b ist die Gesamtanzahl aller notwendigen Kopien (über alle Views) C: Anzahl aller Caches B C/t: Mindestanzahl Caches pro View ist C/t V/C (Anzahl Views/Anzahl Caches)konstant I= C (Anzahl Seiten = Anzahl Caches) o Load: Für jeden Cache b ist o Beweis … Algorithm. Grundlagen des Internets 28. Juli 2003 23 Christian Schindelhauer 4. Load (II) HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Beweis Betrachte Intervalle der Länge t/C Mit W‘keit 1-n-Ω(1) ist für jeden View mindestens ein Cache in jedem Intervall View V 0 t/C 1 2t/C V/C (Anzahl Views/Anzahl Caches)konstant I= C (Anzahl Seiten = Anzahl Caches) Web-Seiten insgesamt: κ C log C zufällig verteilt über C/t Intervalle • O(n t log n) Bällen in n Körbe mit n = C/t • Mit pol. W‘keit sind höchstens O(t log C) Web-Seiten in jedem Intervall 0 t/C Algorithm. Grundlagen des Internets 28. Juli 2003 1 2t/C 24 Christian Schindelhauer 4. Load (III) HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Beweis Mit W‘keit 1-n-Ω(1) ist für jeden View mindestens ein Cache in jedem Intervall Also wird die Webseite i immer lokal gespeichert - D.h. in ihrem Intervall oder im Nachbarintervall gespeichert Mit W‘keit 1-n-Ω(1) sind höchstens O(t log C) Web-Seiten in jedem Intervall Jeder Cache hat höchstens O(t log C) Web-Seiten View 1 View 2 0 t/C Algorithm. Grundlagen des Internets 28. Juli 2003 1 2t/C 25 Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Peer-to-peer Netzwerke o Peer-to-peer Netzwerke sind verteilte Systeme ohne zentrale Kontrolle oder hierarchische Strukturen mit gleicher Software mit großer Dynamik, d.h. Knoten erscheinen und verschwinden mit vielen Knoten mit geringer Netzwerkinform. o Netzwerkstruktur wie Internet vollständiger Graph nur Unicast (kein Broadcast) o Hauptanwendung: Name-Lookup, d.h. verteiltes Wörterbuch o Lösung: konsistentes Hashing (mit nur einem View) Algorithm. Grundlagen des Internets 28. Juli 2003 26 Knoten erscheint Internet Knoten verschwindet Christian Schindelhauer Anwendungen Peer-to-peer Netzwerke HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik o Verteiltes Caching z.B. Web-Caching ohne zentrale Kontrolle speichereffizientes Spiegeln im Internet o Verteiltes Plattenmanagement (Raid-Systeme) Statt einer Festplatte werden Daten auf verschiedene Festplatten verteilt Vorteil: Geschwindigkeit durch parallelen Zugriff o Verteilte Indizierung für Napster/Gnutella File-Sharing Systeme Vorteil kein zentraler Server o Der Internet-Supercomputer Koordinierung einer Vielzahl (10>5) per Internet verbundenen Rechnern Verteilung der Teilaufgaben durch konsistentes Hashing Algorithm. Grundlagen des Internets 28. Juli 2003 27 Christian Schindelhauer Konsistentes Hashing HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik n: Anzahl der Knoten im P2P-Netzwerk k: Anzahl der Schlüssel Theorem Es gibt ein konsistentes Hashing für ein Peer-to-peer-Netzwerk mit den folgenden Eigenschaften 1. Balance&Load: Mit pol. W‘keit (1-n-c) werden in jedem Knoten höchstens O((k/n) log n) Schlüssel gespeichert 2. Spread: Jeder Schlüssel wird auf genau einem Knoten gespeichert. 3. Dynamik: Tritt ein neuer Knoten bei oder verlässt ein Knoten das Netzwerk müssen mit pol. W‘keit höchstens O((k/n) log n) Schlüssel bewegt werden. Beweis Verwende konsistentes Web-Caching mit nur einem View und nur einer Cache-Kopie Algorithm. Grundlagen des Internets 28. Juli 2003 28 Christian Schindelhauer Verteiltes Konsistentes Hashing HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik o Problem: Ranged-Hash-Funktion benötigt zentrale Instanz, um Schlüssel zu verteilen Gesucht: verteilte Datenstruktur ohne zentrale Instanz Es reicht, nur einen Knoten des Netzwerks zu kenne. o Lösungen: DNS,Freenet, Ohaha, Globe system o Lösungen mit konsistenten Hashing: Ocean store PAST,Pastry, Tapestry CAN Chord: A Scalable Peer-to peer Lookup Service for Internet Applications, Stoica, Morris, Karger Kaashoek, Balakrishnan, SIGCOMM’01 • wird hier besprochen Algorithm. Grundlagen des Internets 28. Juli 2003 29 Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Der Aufbau von Chord rV(b) = b+1 mod 8 o n: Knotenanzahl, Knotenmenge V o k: Anzahl Schlüssel, Schlüsselmenge K o m: Hashwertlänge: m >> log max{K,N} 5 6 5 7 3 o 2 Hash-Funktionen bilden auf {0,..,2m-1} ab rK(i) = 3i-2 mod 8 rV(b): bildet Knoten/Cache b zufällig auf {0,..,2m-1} ab 4 rK(i): bildet Schlüssel i zufällig auf {0,..,2m-1} ab o fV(i) := arg minb∊V (rB(b)-rI(i)) mod 2m Algorithm. Grundlagen des Internets 28. Juli 2003 30 Schlüssel 2 2 0 3 6 2 1 0 Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Die Datenstruktur von Chord o Für jeden Knoten b: successor: Nachfolger predecessor: Vorgänger Für i∊{0,..m-1} • Finger[i] := Der Knoten der dem Wert rV(b+2i) folgt predecessor 7 0 finger[2] 4 Lemma 2 Die Anzahl unterschiedlicher FingerEinträge für Knoten b ist mit pol. W‘keit O(log n) 28. Juli 2003 finger[0] finger[1] Nur unterschiedliche Fingereinträge werden gespeichert Algorithm. Grundlagen des Internets 6 5 o Für kleine i werden die FingerEinträge immer gleich 5 successor 31 3 2 1 0 Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Eigenschaften der Datenstruktur Lemma Der Abstand |rV(b.succ) - rV(b)| ist 1. Im Erwartungswert 2m/n 2. Mit pol. Wahrscheinlichkeit höchstens O((2m/n) log n) und 3. In einem Interall der Länge w/n 2m sind mit pol. W‘keit a) höchstens O(w) Knoten, falls w=Ω(log n) b) höchstens O(w log n) Knoten, falls w=O(log n) Lemma Die Anzahl der Knoten, die einen Fingerzeiger auf Knoten b besitzen ist 1. im Erwartungswert O(log n) 2. mit pol. Wahrscheinlichkeit höchstens O(log2n) Algorithm. Grundlagen des Internets 28. Juli 2003 32 Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Suchen in Chord Theorem Die Schlüsselsuche kann mit O(log n) Anfragen mit pol. W’keit erfolgen, d.h. O(log n) Nachrichten für Schlüsseleinfügen/löschen o Suchalgorithmus für Schlüssel s: Abbruch(b,s): • Knoten b,b’=b.succ gefunden, mit rK(s) [rV(b),rV(b‘)| Hauptroutine: Starte mit irgendeinem Knoten b while not Abbruch(b,s) do for i=m downto 0 do if rK(s) [rV(b.finger[i]),rV(finger[i+1])] then b ← b.finger[i] fi od b.finger[m] b.finger[m-1] b c x Algorithm. Grundlagen des Internets 28. Juli 2003 sy 33 Christian Schindelhauer Knotendynamik in Chord HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Theorem O(log2 n) Nachrichten genügen mit pol. W’keit, um Knoten aufzunehmen/zu entfernen Beweisidee (für aufnehmen) Im Erwartungswert müssen höchstens O(log n) (Finger-)Zeiger aktualisiert werden. Diese zu suchen kostet jeweils O(log n) Der einzutragende Wert ist bekannt (also keine Suche notwendig) Führt zur Schranke Ist das Intervall |rV(b.succ) - rV(b)|, in das ein neuer Knoten eingefügt wird, groß, also z.B. (2m/n) log n Dann gibt es O(log2 n) Zeiger, Aber diese sind jeweils in Gruppen von O(log n) benachbart. Damit fallen nur O(log n) Suchen a Kosten O(log n) an Die Aktualisierung hat jeweils konstante Kosten Algorithm. Grundlagen des Internets 28. Juli 2003 34 Christian Schindelhauer Abschlußveranstaltung/Prüfungen HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik 1. Öffentliche Prüfung o am 07.08.2003, 14 Uhr in Raum F2.211 o Zuhörer erwünscht 2. Abschlußbesprechung o Grillplatz am Querweg südlich B64 o Getränke werden gestellt (Wünsche?-Teilnehmerzahl?) o Essen, Grill, Kohle, etc. bitte selbst organisieren 3. Prüfungstermine Algorithm. Grundlagen des Internets 28. Juli 2003 35 o Do, 07.08.03, 14 Uhr - (nur mit Zuhörer) o Mo, 11.08.03 (opt. Di 12.08.) o Mo, 18.08.03 (opt. Di. 19.08.) o Mo, 29.09.03 (opt. Di. 30.09) o Mo, 06.10.03 (opt. Di. 06.10) o weitere Termine auf Anfrage Christian Schindelhauer Wie bereite ich mich auf die Prüfung vor? HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik 1. Möglichst nicht alleine 2. Übungsaufgaben durchrechnen (sind Prüfungsstoff) 3. Skript durcharbeiten, mit eigenen Aufzeichnungen 4. Bei Fragen fragen: o Kurze Verständnisfrage, Tippfehler im Skript: o EMAIL an schindel oder kvolbert o Größeren Problemen: o Termin vereinbaren für Sprechstunde per EMail 5. Letzter Tipp: o Prüfung selber mit Mitstudenten durchspielen o Minivorträge vorbereiten o (Ein Q ist ein X als auch ein U, wenn man... Dagegen ist ein P wie das W im R ... Darüberhinaus haben wir auch das Y kennengelernt..) 6. Allerletzter Tipp: o Web-Seite mitverfolgen wegen Aktualisierungen des Skripts/Fragenkatalog 7. Viel Erfolg! Algorithm. Grundlagen des Internets 28. Juli 2003 36 Christian Schindelhauer