Wednesday, July 19, 2006

Vortrag in "Operations Research "

Gestern hat meine Gruppe die Präsentation "Simulated Annealing im MDVS"(PDF, 6MB) für die Vorlesung "Operations Research "(Wirtschaftsinformatik) gehalten.

Die Präsentation beschreibt unsere Implementierung der Meta-Heuristik "Simulated Annealing" auf das "Multi-Depot Mulit-Vehicle-Type Scheduling Problem" (kurz: Planung von Bustouren im öffentlichen Nahverkehr). Es basiert auf dem Paper "N. Kliewer, T. Mellouli, L. Suhl, A time-space network based exact optimization model for multi-depot bus scheduling, DSOR Lab, University Paderborn". Außerdem enthält die Ergebnisse unserer Implementierung auf eine Problemeinstanz. Dabei haben wir den Algorithmus 3400 mal aufgerufen, so das wir (für die Probleminstanz) eine relativ gute Datengrundlage für eine statistische Analyse einer Parameter haben. Dabei haben wir herausgefunden, dass bei der Instanz eine niedrige Initialtemperatur, eine langsame Abkühlung und eine kleine Nachbarschaft die besten Ergebnisse liefert.

Friday, July 14, 2006

Übersicht über Latex Beamer Themes

In der Gallery des Blogs "Mikeweb" befindet sich eine gute Übersicht über verschiedene Theme/Vorlagen für Latex Beamer, dem bekannten Modul von Latex zur Erstellung von Präsentationen.
Wer Latex Beamer verwenden möchte, hat oft das Problem, dass man nicht weiß welche Themes möglich sind und wie sie aussehen. Dies ist deshalb so wichtig, weil es extrem kompliziert ist, ein Theme selbst zu erstellen oder größere Änderungen vorzunehmen.

Auf der Webseite sind 27 verschiedene Themes abgebildet. Da sollte also genug Auswahl für verschiedene Bedürfnisse sein.

Tuesday, July 11, 2006

Es bewegt sich etwas

Nachdem gestern die aus meiner Sicht nicht so berauschenden Projektgruppen vorgestellt wurden, gibt es heute eine gute Nachricht.

Prof. Domik, Professorin für grafische Datenverarbeitung, fragt in einer E-Mail an alle Studenten auf der grafik-Mailingliste, welche Bedürfnisse die Studenten im Modul III.4.1 für das nächste Semester haben.

Sie fragt, ob ein Seminar notwendig sei, ob eine Vorlesung notwendig und ob es wichtig sei, ob die Veranstaltung auf deutsch oder auf englisch gehalten werden soll.

Für eine Vorlesung muss ich noch die Ressourcen mit dem Institut absprechen, da derzeit kein Mitarbeiter / kein Pool dafür vorgesehen sind. Allerdings ist es in meinem 100%igen Interesse, dass jeder, der dieses Modul begonnen hat, es auch zu Ende machen kann.

Das Modul III.4.1 war eines der Module im Bereich MMWW, dass meiner Einschätzung zufolge nur mit einem hohen Risiko studiert werden kann. Aber es ist das einzige im Bereich MMWW, dass überhaupt studierbar ist.

Es bewegt sich also etwas an der Universität.

Wednesday, July 05, 2006

Statistik über die Mastermodule

Schon vor ein paar Tagen habe ich mich in diesem Blog mit dem Vorlesungsverzeichnis für das nächste Semester beschäftigt.

Heute habe ich eine kleine Analyse durchgeführt in wieweit das Institut Informatik den Ankündigungen im Modelhandbuch in Sommersemester 2006 (SS06) und Wintersemester 2006/2006 (WS06/06) nachgekommen ist bzw. nachkommen wird.

Es ist aus Sicht der Masterstudenten bestimmt keine vermessene Anforderung, dass

  • angekündigte Module (nicht Vorlesungen) auch durchgeführt werden sollten.
  • ein Modul innerhalb eines Jahren durchführbar sein sollte.
  • das man ein Masterstudium mit Wahlmöglichkeiten in vier Semestern studieren kann.

Das elektronische Vorlesungsverzeichnis der Fakultät EIM und das aktuelle Modulhandbuch dienten mir dabei als Datengrundlage.

Dabei wurden auch insbesondere die Anzahl der Seminare beobachtet. Nach der Prüfungsordnung für den Masterstudiengang darf ein Student außerhalb seines Vertiefungsgebietes und der Projektgruppe nur ein einziges Seminar im Wahlpflichtbereich besuchen.
Wenn in einzelnen Modulen fast ausschließlich Seminare angeboten werden, können dieses Modul für den Großteil der Studenten nicht besucht werden und stellen damit keine reale Auswahlmöglichkeit dar.
Auf der anderen Seite muß man im Vertiefungsgebiet ein Seminar belegen. Module ohne Seminare stellen deshalb auch ein Problem dar.

Die Liste der Module kann Fehler enthalten. Teilweise sind dies meine Fehler beim Übertragen, teilweise ist das elek. Vorlesungsverzeichnis falsch.
Als "Kommentare" und nicht als unumstößlich Wahrheiten sind meine Kommentare zu jedem Modul zu verstehen.

Liste der Module:

III.1.1 Software-Technik I
SS06
- Modelchecking (MC)
- Seminar: Software Engineering für Softwareintensive System
WS06/07
- Software-Qualität (SQ)

Häufigkeit von Veranstaltungen laut Modelhandbuch: 2 - 3 Veranstaltungen pro Jahr
Tatsächliche Häufigkeit im beobachteten Jahr: 3 (davon 1 Seminar)
Kommentar:
Es wäre schon, wenn noch mehr Veranstaltungen angeboten werden würden, aber immerhin wurde die angekündigte Leistung erbracht.
Dieses Modul kann offensichtlich belegt werden ohne die Befürchtung haben zu müssen, dass man es aus Mangel an Veranstaltungen nicht zu Ende bringen kann.

III.1.2 Software-Technik II
SS06
- Business process modelling and workflow management
WS06/07
- Web-Engineering (WE)

Häufigkeit von Veranstaltungen laut Modelhandbuch: 2 - 3 Veranstaltungen pro Jahr
Tatsächliche Häufigkeit im beobachteten Jahr: 2 (dabei kein Seminar)
Kommentar:
Ankündigung knapp erfüllt. Dabei ist Web-Engineering die Standardvorlesungen, die durchgängig jedes Wintersemester angeboten wird.

III.1.3 Sprachen und Programmiersprachen
SS06
- Compilation Methods
WS06/07
- Skriptsprachen
- Semantics of Programmign Languages

Häufigkeit von Veranstaltungen laut Modelhandbuch: 2 - 3 Veranstaltungen pro Jahr
Tatsächliche Häufigkeit im beobachteten Jahr: 3 (dabei kein Seminar)
Kommentar:
Die angekündigen Veranstaltungen wurden auch angeboten.
Dieses Modul kann offensichtlich belegt werden ohne die Befürchtung haben zu müssen, dass man es aus Mangel an Veranstaltungen nicht zu Ende bringen kann.

III.1.4 Semantik und Verifikation
SS06
- Modelchecking
- Petri nets
- Seminar: Architekturbeschreibungssprachen
WW06/07
- Programmverifikation
- Semantics of Programming Languages
- Seminar: Reduktionstechniken im Model checking

Häufigkeit von Veranstaltungen laut Modelhandbuch: Modelchecking und Semantik, semesterweise und mindestens
eine weitere Veranstaltung pro Jahr
Tatsächliche Häufigkeit im beobachteten Jahr: 6 (davon 2 Seminare)
Kommentar:
Für kein anderes Modul aus dem Bereich Softwaretechnik und Informationssysteme wurden so viele Veranstaltungen angeboten. Vorbildlich!

III.1.5 Datenbanken und Informationssysteme
SS06
- Business process modelling and workflow management
WS06/07
- Web-Engineering
- Seminar: Anfragebearbeitung auf Datenströmen

Häufigkeit von Veranstaltungen laut Modelhandbuch: Keine Angabe
Tatsächliche Häufigkeit im beobachteten Jahr: 3 (davon 1 Seminar)
Kommentar:
Dieses Modul kann offensichtlich belegt werden ohne die Befürchtung haben zu müssen, dass man es aus Mangel an Veranstaltungen nicht zu Ende bringen kann.
Es überrascht mich allerdings, dass kein "Datenbank und Informationssysteme " im Wintersemester angeboten wird.

III.1.6 Data and Knowledge Engineering
SS06
- keine
- Heuristische Suchverfahren (Änderung nach Hinweis)
WS06/07

- Web-Engineering

Häufigkeit von Veranstaltungen laut Modelhandbuch: Keine Angabe
Tatsächliche Häufigkeit im beobachteten Jahr: 1 Veranstaltung
Kommentar:
Nur eine Veranstaltung. Diese Modul sollte man besser nicht in seinen Studiumsplan einkalkulieren.

III.1.7 Wissensbasierte Systeme
SS06
- Heuristische Suchverfahren
- Maschinelles Lernen
- Seminar: Wissensbasierte Systeme
WS06/07
- Maschinelles Lernen
- Seminar: Wissensbasierte Systeme

Häufigkeit von Veranstaltungen laut Modelhandbuch: 2 - 3 Veranstaltungen pro Jahr
Tatsächliche Häufigkeit im beobachteten Jahr: 5 (davon 2 Seminare), aber viele doppelte Veranstaltungen
Kommentar:
Fünf Veranstaltungen stellen ein gutes Angebot an die Studenten dar.
Dabei ist allerdings auffällig, dass zwei Veranstaltungen nur Wiederholungen sind. An realen Auswahlmöglichkeiten reduziert es sich damit auf 3 Veranstaltungen.

III.1.8 Intelligente Systeme
SS06
- keine
- Heuristische Suchverfahren
WS06/07
- keine
- Maschinesses Lernen II

Häufigkeit von Veranstaltungen laut Modelhandbuch: 2 - 3 Veranstaltungen pro Jahr
Tatsächliche Häufigkeit im beobachteten Jahr: 2
Kommentar:
Dieses Modul ist knapp erfüllt. Leider waren die Angaben im Vorlesungsverzeichnis falsch.
III.2.1 Algorithmen I
SS06
- Algorithmen in der Computergrafik
- Heuristische Suchverfahren
- Graphenalgorithmen
- Seminar: Algorithmische Spieltheorie
- Seminar: Struktur selbstorganisierender Netzwerke
WS06/07
- Clustering Algorithmen
- Algorithmische Codierungstheorie I
- Randomisierte Algorithmische Geometrie
- Algorithmische Spieltheorie
- Proseminar: Perlen der Theoretischen Informatik
- Seminar: Verteilte Algorithmen
- Seminar: Perlen der Theoretischen Informatik
- Seminar: Flüsse in Netzwerken

Häufigkeit von Veranstaltungen laut Modelhandbuch: "Dieses Modul wird jedes Jahr angeboten"
Tatsächliche Häufigkeit im beobachteten Jahr: 12 (davon 4 Seminare)
Kommentar:
13 Veranstaltungen sind Rekord. Genug Auswahl für die Studenten. Da wird wohl für jeden etwas dabei sien.

III.2.2 Algorithmen II
SS06
- Algorithmen in der Computergrafik
- Graphenalgorithmen
- Seminar: Algorithmische Spieltheorie
- Seminar: Struktur selbstorganisierender Netzwerke
WS06/07
- Clustering Algorithmen
- Algorithmische Codierungstheorie I
- Randomisierte Algorithmische Geometrie
- Algorithmische Spieltheorie
- Proseminar: Perlen der Theoretischen Informatik
- Seminar: Verteilte Algorithmen
- Seminar: Perlen der Theoretischen Informatik
- Seminar: Flüsse in Netzwerken

Häufigkeit von Veranstaltungen laut Modelhandbuch: "Dieses Modul wird jedes Jahr angeboten"
Tatsächliche Häufigkeit im beobachteten Jahr: 11 (davon 4 Seminare)
Kommentar:
Siehe oben!
Seltsam, dass "Heuristische Suchverfahren" III.2.1 zugeordnet ist und III.2.2. nicht, obwohl beide laut Modulhandbuch identisch sind. Evtl. ein weiterer Fehler im Vorlesungsverzeichnis.

III.2.3 Berechenbarkeit und Komplexität
SS06
- Quantencomputer
WS06/07
- Proseminar: Perlen der Theoretischen Informatik
- Seminar: Perlen der Theoretischen Informatik

Häufigkeit von Veranstaltungen laut Modelhandbuch: "Dieses Modul wird jedes Jahr angeboten"
Tatsächliche Häufigkeit im beobachteten Jahr: 2 (davon 1 Seminare)
Kommentar:
Angebot nur ganz knapp erfüllt. Könnten mehr Veranstaltungen sein.
Angebot knapp erfüllt, da man nicht sowohl das Proseminar als auch das Seminar belegen kann.

III.2.4 Algorithmen in Rechnernetzen
SS06
- Resourcenverwaltung in Rechnernetzen
WS06/07
- Algorithmen für synchrone Rechnernetze
- Proseminar: Perlen der Theoretischen Informatik
- Seminar: Verteilte Algorithmen
- Seminar: Perlen der Theoretischen Informatik

Tatsächliche Häufigkeit im beobachteten Jahr: 4 (davon 2 Seminare)
Kommentar:
Mehr Vorlesungen wären von Vorteil.
Dennoch kann dieses Modul kann belegt werden ohne die Befürchtung haben zu müssen, dass man es aus Mangel an Veranstaltungen nicht zu Ende bringen kann.

III.2.5 Codes und Kryptographie
SS06
- Seminar: Kryptografie
WS06/07
- Algorithmische Codierungstheorie I
- Proseminar: Perlen der Theoretischen Informatik
- Seminar: Perlen der Theoretischen Informatik

Häufigkeit von Veranstaltungen laut Modelhandbuch: "Das Modul wird in unterschiedlichen Auspräungen jedes Jahr angeboten"
Tatsächliche Häufigkeit im beobachteten Jahr: 4 (davon 3 Seminare)
Kommentar:
3/4 Seminare sind zu viel. Für Studenten mit einem anderen Schwerpunkt als MUA wird es kaum möglich sein diese Modul zu belegen.

III.2.6 Optimierung
SS06
- Optimierung II
- Seminar: Algorithmische Spieltheorie
WS06/07
- Algorithmische Spieltheorie
- Proseminar: Perlen der Theoretischen Informatik
- Seminar: Perlen der Theoretischen Informatik

Häufigkeit von Veranstaltungen laut Modelhandbuch: "Dieses Modul wird in der Regel jedes Jahr angeboten"
Tatsächliche Häufigkeit im beobachteten Jahr: 5 (davon 3 Seminare)
Kommentar:
Ebefalls zu viele Seminare. Mir persönlich wäre die Gefahr bei diesem Modul zu hoch, nachher das Modul nicht zu Ende bringen zu können.

III.3.1 Verteilte Rechnersysteme
SS06
- Ad hoc und Sensornetze
WS06/07
- Betriebssysteme
- Leistungsbewertung und Simulation
- Mobilkommunikation
- Architektur paralleler Rechnersysteme
- Seminar: Grid Computing
- Seminar: Kommunikationsnetze

Häufigkeit von Veranstaltungen laut Modelhandbuch: 2-4 Veranstaltungen pro Jahr
Tatsächliche Häufigkeit im beobachteten Jahr: 7 (davon 2 Seminare)
Kommentar:
7 Veranstaltungen mit 2 Seminaren: Vorbildlich!

III.3.2 Systemsoftware
SS06
- keine
WS06/07
- Betriebssysteme
- Architektur paralleler Rechnerssysteme
- Seminar: Grid Computing

Häufigkeit von Veranstaltungen laut Modelhandbuch: 2-4 Veranstaltungen pro Jahr
Tatsächliche Häufigkeit im beobachteten Jahr: 3 (davon 1 Seminar)
Kommentar:
Dieses Modul kann offensichtlich belegt werden ohne die Befürchtung haben zu müssen, dass man es aus Mangel an Veranstaltungen nicht zu Ende bringen kann.
Seltsam ist die Aufteilung der Veranstaltung auf die Semester.

III.3.3 Rechnernetze
SS06
- Ad hoc und Sensornetze
WS06/07
- Leistungsbewertung und Simulation
- Mobilkommunikation
- Seminar: Kommunikationsnetze

Häufigkeit von Veranstaltungen laut Modelhandbuch: 2-4 Veranstaltungen pro Jahr
Tatsächliche Häufigkeit im beobachteten Jahr: 4 (davon 1 Seminar)
Kommentar:
Angebot knapp übererfüllt.
Dieses Modul kann offensichtlich belegt werden ohne die Befürchtung haben zu müssen, dass man es aus Mangel an Veranstaltungen nicht zu Ende bringen kann.

III.3.4 Eingebettete Systeme
SS06
- Algorithms in Manufacturing Systems
- Intelligenz in eingebetteten Systemen
- Real Time Operating Systems
- Seminar: Autonomic/Organic Computing
WS06/07
- Introduction to Real Time Operating Systems
- Algorithms in Manufacturing Systems
- Reconfigurable Computing
- Seminar: Biologically Inspired Algorithms

Häufigkeit von Veranstaltungen laut Modelhandbuch: 2-4 Veranstaltungen pro Jahr
Tatsächliche Häufigkeit im beobachteten Jahr: 8 (davon 2 Seminare)
Kommentar:
Acht Veranstaltungen bieten den Studenten mehr als genug Auswahl.
Dieses Modul kann offensichtlich belegt werden ohne die Befürchtung haben zu müssen, dass man es aus Mangel an Veranstaltungen nicht zu Ende bringen kann.

III.3.5 HW/SW-Codesign
SS06
- keine
WS06/07
- keine

Tatsächliche Häufigkeit im beobachteten Jahr: 0
Kommentar:
Dieses Modul sollte nicht im Studiumsverlaufplan eingeplannt werden. Warnung!

III.3.6 Eingebettete- und Echtzeitsysteme
SS06
- Algorithms in Manufacturing Systems
- Intelligenz in eingebetteten Systemen
- Real Time Operating Systems
- Seminar: Autonomic/Organic Computing
WS06/07
- Introduction to Real Time Operating Systems
- Algorithms in Manufacturing Systems
- Seminar: Biologically Inspired Algorithms
- Seminar: Artifical Immune Systems

Häufigkeit von Veranstaltungen laut Modelhandbuch: 2-4 Veranstaltungen pro Jahr
Tatsächliche Häufigkeit im beobachteten Jahr: 8 (davon 3 Seminare)
Kommentar:
Ein weiteres gut ausgestaltetes ESS-Modul.

III.4.1 Grafische Datenverarbeitung
SS06
- Computer Graphics II
WS06/07
- Seminar: Ausgewählte Themen aus der Computergrafik

Häufigkeit von Veranstaltungen laut Modelhandbuch: 2-3 Katalogveranstaltungen pro Jahr
Tatsächliche Häufigkeit im beobachteten Jahr: 2 (davon 1 Seminar)
Kommentar:
Zwei Veranstaltungen davon ein Seminar sind zu wenig. Bitte nachbessern!

III.4.2 Informatik und Gesellschaft
SS06
- Seminar: Kooperation als Phänomen in Wirtschaft und Informatik
- Seminar: Cooperative knowledge organization
WS06/07
- keine

Häufigkeit von Veranstaltungen laut Modelhandbuch: 2-3 Katalogveranstaltungen pro Jahr
Tatsächliche Häufigkeit im beobachteten Jahr: 2 (davon 2 Seminare)
Kommentar:
2 Veranstaltungen mit zwei Seminaren sind undiskutabel. Dringend nachbessern!

III.4.3 Konzepte digitaler Medien
SS06
- Seminar: Kooperation als Phänomen in Wirtschaft und Informatik
- Seminar: Cooperative knowledge organization
WS06/07
- keine

Häufigkeit von Veranstaltungen laut Modelhandbuch: Basisveranstaltung jedes WW, die weiterführenden Veranstaltungen jedes SS
Tatsächliche Häufigkeit im beobachteten Jahr: 2 (davon 2 Seminare)
Kommentar:
2 Veranstaltungen mit zwei Seminaren sind undiskutabel. Dringend nachbessern!
Wo bitte ist die angekündigte "Basisveranstaltung"?

III.4.4 Computer gestütze kooperative Zusammenarbeit und Lernen
SS06
- Softwareergonomie
- Seminar: Kooperation als Phänomen in Wirtschaft und Informatik
- Seminar: Cooperative knowledge organization
- Seminar: Mobilität in der Gruppenarbeit
WS06/07
- keine

Häufigkeit von Veranstaltungen laut Modelhandbuch: 2 Katalogveranstaltungen pro Jahr im WS und SS
Tatsächliche Häufigkeit im beobachteten Jahr: 4 (davon 3 Seminare)
Kommentar:
Wieder zu viele Seminar.
So stellt es keine gute Wahlmöglichkeit für die Studenten dar.

III.4.5 Entwicklung von Benutzungsschnittstellen
SS06
- keine
WS06/07
- keine

Häufigkeit von Veranstaltungen laut Modelhandbuch: 2-3 Katalogveranstaltungen pro Jahr
Tatsächliche Häufigkeit im beobachteten Jahr: keine!!!
Kommentar:
Was ist das bitte?
Seltsam für mich ist, dass die Vorlesung "Softwareergonomie" nicht auch diesem Modul zugeordnet ist.
Wieder ein Fehler im Vorlesungsverzeichnis?

III.4.6 Mensch-Maschine-Wechselwirkung
SS06
- Softwareergonomie
WS06/07
- keine

Häufigkeit von Veranstaltungen laut Modelhandbuch: 2-3 Katalogveranstaltungen pro Jahr
Tatsächliche Häufigkeit im beobachteten Jahr: 1!
Kommentar:
Dieses Modul stellt vermutlich ein hohes Risiko für die Studenten dar.
Bitte nachbessern.

III.4.7 Mensch-Computer-Interkation
SS06
- Softwareergonomie
WS06/07
- keine

Häufigkeit von Veranstaltungen laut Modelhandbuch: Basisveranstaltung jedes WW, die weiterführenden Veranstaltungen jedes SS
Tatsächliche Häufigkeit im beobachteten Jahr: 1
Kommentar:
Dieses Modul stellt vermutlich ein hohes Risiko für die Studenten dar.
Bitte nachbessern.

Fazit:
Es zeigen sich sehr deutlich unterschiede zwischen den Modulen und auch zwischen den Fachbereichen.
MUA und ESS scheinen sehr gut ausgestaltet zu sein.
SWT ist in Teilen verbesserungswürdig, bietet dennoch ausreichend Wahlmöglichkeiten

Skandalös ist das Angebot im Bereich "Mensch-Maschine-Wechselwirkung". Im Wintersemester 2006/2007 wird eine einzige Veranstaltung und dann noch ein Seminar angeboten.
Die Universität muss das Angebot in diesem Bereich dringend nachbessern, sonst ist es für Masterstudenten nicht möglich das Studium in Regelstudienzeit abzuschließen.

Binäre Suche einfach zu implementieren?

Binary Search einfach zu implementieren?
Die meisten Informatikstudenten würden dies ohne mit der Wimper zu zucken mit "Ja" beantworten.

Aber wie Joshua Bloch, einer der Chef-Entwickler von Java und nun bei Google, im Research Blog von Google darstellt, sind nahezu alle Implementierungen der binären Suche inkl. der Implementierung in der Java-Klassenbibiothek fehlerhaft.

Der Code im JDK so laut dem Blogeintrag so aus:

1:     public static int binarySearch(int[] a, int key) {
2:         int low = 0;
3:         int high = a.length - 1;
4:
5:         while (low < = high) {
6:             int mid = (low + high) / 2;
7:             int midVal = a[mid];
8:
9:             if (midVal < key)
10:                 low = mid + 1;
11:             else if (midVal > key)
12:                 high = mid - 1;
13:             else
14:                 return mid; // key found
15:         }
16:         return -(low + 1);  // key not found.
17:     }

Das Problem liegt in Zeile 6. Wenn die Summe von low und high größer ist als 2 hoch 31 - 1 wird in Java ein ArrayIndexOutOfBoundsException geworfen. In C und C++ ist das verhalten noch unberechenbarer: Es findet ein Überfluss in eine negative Zahl statt und es wird auf Speicherbereiche vor dem Array zugegriffen.

Boach schlät folgende Verbesserungen vor:

6:             int mid = low + ((high - low) / 2);

Alternative wäre auch folgendes gut, da es klarer und schneller sei:

6:             int mid = (low + high) >>> 1;

Diese Fehler scheint über Jahrzehnte unbemerkt geblieben zu sein. Der Code (low + high) / 2 findet sich in nahezu jedem Lehrbuch. Bloch spricht dabei das Buch "Programming Pearls" an, dass er den Leser trotzdem empfiehlt. Ich habe in jedem Algorithmenbuch, dass ich besitze nachgesehen und überall ist der gleiche Bug zu finden. Corman macht es sich einfach und hat die binäre Suche nur als Übungsaufgabe für die Leser erwähnt.

So lange ein solcher Code nur in Pseudocode angegeben wird und vorher die Annahme vereinbart wurde, dass es keinen begrenzten Wertebereich gibt, mag dies formal in Ordnung sein.
Doch sobald man diesen Pseudocode übersetzt, kommt es zu dem Bug in der Implementierung.

Bloch schließt mit:

It is hard to write even the smallest piece of code correctly, and our whole world runs on big, complex pieces of code.

We programmers need all the help we can get, and we should never assume otherwise. Careful design is great. Testing is great. Formal methods are great. Code reviews are great. Static analysis is great. But none of these things alone are sufficient to eliminate bugs: They will always be with us. A bug can exist for half a century despite our best efforts to exterminate it. We must program carefully, defensively, and remain ever vigilant.

P.S. Implementierungen von Mergesort sowie anderen Divide-and-Conquer-Algorithemen scheinen ebenfalls betroffen zu sein.

Tuesday, July 04, 2006

Skript zu Computergrafik von Prof. Domik

Auf der Homepage des Forschungsgruppe von Prof. Domik ist ein Skript für Computergrafik verfügbar (Copyright 1994 - 1997).

Dort sind dann alle Informationen verfügbar und nicht wie in den Folien der Veranstaltung zu teilen herausgelassen. Die offiziellen Materialien der Vorlesung kann man ja nur als verstümmelt bezeichnen. Die wichtigen Informationen (Algorithmen, etc) sind jeweils nicht vorhanden.

Monday, July 03, 2006

Ich wähle: Liste Naturwissenschaften

Das letzte Jahr Hochschulpolitik an der Universität Paderborn war eine herbe Enttäuschung. Obwohl wenn es mit einem Statement wie "Es ist Zeit für eine linke Politik" anfängt, dann mußte man es eigentlich erwarten.

Gegipfelt ist es vor ein paar Wochen als der amtierende Asta-Vorsitzende (Jusos) durch ein Mißtrauensvotum gestützt wurde und der Gegenkandidat (XLHG) die Wahl anschließend nicht angenommen hat.

Zeitweise wollte ich gar nicht wählen gehen, aber nun glaube ich dass die "Liste Naturwissenschaft" eine gute Wahl sein könnte, obwohl ich selbst kein Naturwissenschaftler bin. Sie sagen im Wahlspezial des Astaluego:

Unser Grundprinzip:
  • Nachhaltigkeit
Unsere Schwerpunkte:
  • Verbesserung der Studienbedingungen
  • Verringerung der finanziellen Belastung für Studenten
  • solide und transparente Haushalts- und Wirtschaftsführung des AStA
  • Aufrechterhaltung und Schutz des kulturellen Lebens an der Uni
Unsere Wahlziele:
  • Wechsel des amtierenden AStA
  • Straffung des gewerblichen Bereiches zur Steigerung der Qualität der Dienstleistungen
  • Kompetenz- und Moralsteigerung im AStA-Bereich
  • Ein sauberes AStA-Hauptbüro
Alles Dinge, die ich voll unterstützen kann. Außerdem sehen die Kandidaten auf den Fotos nicht so aus als würden sie schon 20 Semester studieren. Eigenlich bin ich ja sehr skeptisch, was nicht ideologisch gebundene Gruppen betrifft. Bei einer ideologisch gebunde Gruppe weiß ich wenigstens ungefähr in welche Richtung die hochschulpolitischen Entscheidungen gehen. Dies ist wichtig, weil ich die Fragestellungen und Aufhaben im Stupa als normaler Student kaum überblicken kann. Die Information der Studenten ist ein echtes Problem.

Deshalb ist mein einziger Kritikpunkt an der LNW der erste Satz in der Darstellung im Astaluego.

Die LNW vertritt die Interessen der Studierenden, ohne auf eine parteipolitische Karriere achten zu müssen. Wir stehen unter keinemn politisch-finanziellen Abhängigkeiten.
Ich verstehe nicht wo die finanziellen Abhängigkeiten bestehen. Weder die (offentsichtlich inaktive) liberale Hochschulgruppe noch die XLHG wird wohl Geld von der Partei bekommen. Aus dem Statement spricht einfach eine massive Ablehnung von Politik. Schade und unnötig, aber dennoch kriegt ihr meine Stimme.

Die Jusos sind peinlich wie immer. Die einzigen Themen sind Studiengebühren und das Hochschulfreiheitsgesetz. Mit letzterem würden "lokale Wirtschaftsbosse" die Univeristät übernehmen, heißt es auf einem Plakat.

Wirklich enttäuscht bin ich von der "Exterm Liberalen Hochschulgruppe" (XLHG). Im letzten Dezember hab ich selbst mal überlegt dort beizutreten. Jetzt weiß ich es nicht zu tun, war die richtige Entscheidung.

Mit Sprüchen wie "Zensiert - sonst dreht der Rektor wieder durch", "Studier mit Bier", "Für ein entspanntes Studium" finde ich diese Gruppierung einfach nur noch peinlich.