Programmieren im Internet, 2000/2001
Kursprojekt
Das Kursprojekt wird in den 3 Wochen nach den Weihnachtsferien
parallel zur normalen Übungsgruppe stattfinden, der Umfang der Übungsblätter wird
entsprechend reduziert werden bzw. die Abgabefristen werden entsprechend
länger bemessen sein. Sie können jedoch schon jetzt mit dem Projekt beginnen!
Die Wahl des Projektes ist weitgehend freigestellt. Es muß thematisch
zur Vorlesung passen, also die Programmierung von
Netzwerkverbindungen, serverseitige Erzeugung von Dokumenten
(CGI-Programmierung oder PHP) oder etwas Vergleichbares
beinhalten. Der Umfang muß von angemessener Größe sein.
Weiter
unten
auf dieser Seite finden Sie einige Anregungen.
CVS benutzen, wenn
Sie in einer grösseren Gruppe parallel arbeiten.
Die folgende Liste enthält einige Vorschläge für das Kursprojekt:
-
Load-abhängiges Starten von Programmen auf einem geeigneten
(noch nicht ausgelasteteten) Rechner. Es geht darum, ein Program auf
einem Rechner zu starten, der gerade am wenigsten ausgelastet
ist. Dies soll automatisch durch ein entsprechendes Tool (sagen wir
mit dem Namen jobstart geschehen). Dieses Tool erhält ein
Verzeichnis und einen Programmnamen als Argument. Es packt die
Dateien in ein tar-file, schickt sie auf den Zielrechner, packt sie
dort wieder aus und führt dort das Programm mit dem angegebenen
Namen aus (welches typischerweise ein Skript in dem Verzeichnis
ist).
Um den besten Zielrechner zu finden, muss das Tool Informationen
über die momentane Auslastung aller in Frage kommenden Rechner
besitzen. Es wäre deshalb gut einen Demon (loadinfod) auf
jedem Rechner zu haben, der die Information über die augenblickliche
Rechnerlast an die anderen Rechner verteilt, entweder auf Anfrage
oder durch Broadcasting.
-
Ein CGI-Programm (oder ein Web-Server), mit der die Anmeldung zu
den Übungsgruppen im nächsten
Wintersemester gemacht wird.
Um zu ermöglichen, daß die Übungsgruppen gleichmäßig belegt
werden, soll die Nachfrage nach jeder einzelnen Übungsgruppe
graphisch dargestellt werden.
Eventuell kann man vorsehen, daß die Übungsgruppen gewechselt
werden können (solange sie nicht eingeteilt worden sind).
-
Ein elektronisches schwarzes Brett. Es geht darum, dass
authorisierte Personen Kurzinformationen in ein Web-Frontend
eingeben können (wie z.B. Mitteilungen über Schliessung von
Sekretariaten, Verschiebung von Vorlesungen, Änderungen von
Abgabeterminen etc.) und diese in mehrere Kategorien eingeordnet
werden (also auf mehreren virtuellen schwarzen Brettern erscheinen
(z.B. würde die Mitteilung, dass ein Dozent erkrankt ist sowohl auf
den Brettern zu seiner Vorlesung, als auch auf dem Mitarbeiterbrett
erscheinen). Ein schwarzes Brett kann als Webseite abgefragt
werden.
- Ein WWW-Frontend für die Mailing-List zu einer Vorlesung. Das
Archiv der verschickten e-mails soll sinnvoll abgefragt werden, neue
e-mails sollen über den Web-Browser abgeschickt werden können.
-
Zugriffszähler. Auf der Seite, deren Zugriffe gezählt werden sollen,
wird ein Bild eingebunden, dessen URL auf einen speziellen Server
verweist. Dieser Server muß einen Zähler inkrementieren und
dynamisch eine Graphik erzeugen, die die Zugriffszahl darstellt.
Die Graphik wird zurückgeliefert.
-
Ein Programm für die Einblendung von Werbebannern in Webseiten. Die
HTML-Seiten enthalten bestimmte Tokens, die von dem Programm durch
Werbebanner ersetzt werden. Die Auswahl der Banner erfolgt mit den
Informationen, die zur Verfügung stehen, etwa Uhrzeit, Domain des
Clients, bevorzugte Sprache des Clients und URL. Die Auswahl sollte
man über eine Konfigurationsdatei steuern können.
-
Ein Proxy, der Werbebanner herausfiltert. Dazu benötigt man
Heuristiken, wann ein Bild ein Werbebanner ist. (Z.B. wenn das Bild
von einem anderen Server geholt wird, von einem speziellen Server
wie doubleclick.com kommt, im GIF-Format ist und blinkt oder eine
bestimmte Größe hat.)
-
Ein Bibliographier-Tool. Wenn man unter einer URL einen
wissenschaftlichen Artikel findet, ruft man das Tool mit dieser URL
auf. Es lädt die (Postscript-)Datei, legt sie unter einem bestimmten
Namen (wie etwa autor1-autor2-jahr.ps) ab und erzeugt einen
BibTeX-Eintrag. Dazu benötigt man Heuristiken, die die benötigten
Informationen aus dem HTML-Text herausholen.
-
Ein Webserver oder ein CGI-Programm, das auf verschiedene
Datenbanken zugreift und die gefundenen Einträge anzeigt. Ein
Beispiel wäre ein Recherche-Tool, das ein bestimmtes Buch in
verschiedenen Bibliotheken sucht.
-
Ein Webserver oder ein CGI-Programm, das nach dem Muster von
www.evenbetter.com die Kataloge verschiedener WWW-Händler abfragt
und das günstigste Angebot bestimmt.
-
Interaktive Pizzabestellung: Man kann verschiedene Beläge
anklicken. Das Programm erstellt eine Graphik der fertigen Pizza,
und falls sie dem Kunden gefällt, kann er sie bestellen.
-
Ein CGI-Programm oder ein Web-Server, der ein einheitliches Frontend
für verschiedene WWW-Läden bietet und Bestellungen an die
entsprechenden Geschäfte weiterleitet.
-
Ein CGI-Programm, das eine Steuererklärung nachrechnet.
Viel Spass !
leypold@informatik.uni-tuebingen.de