Tuesday, November 07, 2006

Happy Birthday, Eclipse

"Eclipse" wurde gestern fünf Jahre alt.

Am 7. November 2001 gab IBM den Quellcode von Eclipse als Nachfolger der IBM-Entwicklungsumgebung "Visual Age for Java" frei (Pressemeldung).
Eclipse hat sich nach und nach von einer Entwicklungsumgebung für Java zu einer Plattform für Entwicklungswerkzeuge entwickelt und ab dem Release 3.0 wurde es zu einer Open-Source-Platform für Werkzeuge zur Unterstützung des gesamten Softwarelebenszyklusses. Mit der "Rich Client Platform" lassen sich auf Basis von Eclipse auch andere Arten von Anwendungen entwickeln.

Auf birthday.eclipse.org kann man gratulieren.

Tuesday, October 17, 2006

Das neue Semester hat begonnen.

Das neue Semester hat begonnen. Das erste Semester als Masterstudent.
Es sieht doch anders aus als ich ursprünglich vermutet habe. Dies hat zum einen darin seinen Grund, dass viele interessante Veranstaltungen zeitliche Überschneidungen haben (Beispiel Mobilkommunikation und Webmodellierung). Zum anderen hat Prof. Kao leider einen Ruf einer anderen Universität angenommen und all seine Veranstaltungen entfallen ersatzlos.

Was habe ich mir vorgenommen:


Operations Research A
Die Vorlesung "Lineare Programmierung" aus dem Wirtschaftsinformatikmodul "Operations Research A" ist meine letzte Veranstaltung im Nebenfach.
Während ich von der komplementären Veranstaltung "Operations Research II" im letzten Semester sehr enttäuscht gewesen bin (in meinen Augen eine der schlechtesten Vorlesungen, die ich bisher besucht habe) macht ORA-LP nach der ersten Vorlesung einen sehr guten Eindruck.

Semantics of Programming Languages
"Semantik von Programmiersprachen" vervollständigt mein Softwaretechnik-Modul und wird auf der Homepage der Veranstaltung wie folgt beschrieben:

The semantics of a programming language assigns a meaning to each syntactically correct program of this language; this could, for example, be the mathematical function that is calculated by the program. This course introduces different techniques and methods for defining and analysing the semantics of programming languages. These techniques include inductive definitions and inductive proofs as well as fixed-point theory. Based on these techniques the course presents operational, denotational and axiomatic semantics for programming languages and the relation between them.

Bisher hatte ich noch nie eine Vorlesung bei Dr. Kindler, aber so wie man hört wird es für eine Softwaretechnikveranstaltung ungewöhnlich theoretisch. Aber dagegen ist ja nicht im geringsten etwas einzuwenden.

Architektur paralleler Rechnersysteme
Die Vorlesung "Architektur paralleler Rechnersysteme" wird nicht von einem Prof. der Uni Paderborn gehalten, sondern von einem Mitarbeiter des PC^2, den Paderborner Zentrum für paralleles Rechnen.
Die Veranstaltung ist relativ unbekannt, da sich nicht auf der Lehrveranstaltungsliste des Institutes zu finden ist.

Leistungsbewertung und Simulation
"Leistungsbewertung und Simulation" bei Prof. Karl vervollständigt das Mastermodul .
Auf der Homepage der Veranstaltung wird die Vorlesung zusammen gefasst mit:

Diese Veranstaltung beschäftigt sich mit der Frage, wie Systeme durch Simulation abgebildet und untersucht werden können. Dabei konzentriert sich die Veranstaltung auf Systeme, die durch diskrete Zustände beschrieben werden können, wobei die Zustände zu beliebigen Zeitpunkten gewechselt werden können; insbesondere lassen sich Kommunikationssysteme und deren Protokolle einfach durch solche Systemmodelle beschreiben (diese Veranstaltung ist nicht speziell der Simulation von Kommunikationssystemen gewidmet, allerdings werden solche Systeme teilweise als Beispiel benutzt). Die Simulation solcher Systeme wird "Discrete Event Simulation"genannt. Die Untersuchung solcher Systeme ist im allgemeinen eine Bewertung der Leistung des Systems, wobei die Leistungsmetriken jeweils vom konkreten Einzelfall abhängen.

Vorlesungen von Prof. Karl sind immer anspruchsvoll und sie sind immer gut. Schon die Auslistungen auf der Homepage versprechen eine gute Vorlesung.
Ich würde mir wünschen, dass die FG Karl sich auf Grund des Wegganges von Prof. Kao dem gesamten Themenbereich "Verteilte Systeme" zuwendet (und nicht "nur" die Einführungsveranstaltung im Bachelorstudiengang übernimmt).

Aber solange niemand wieder Vorlesungen über Verteilte Systeme im Master macht, wird "Leistungsbewertung und Simulation" wohl eine gute Wahl werden.

Webmodellierung
Web-Modellierung ist für mich die erste Veranstaltung in einem Modul aus dem Bereich "Mensch-Maschine-Wechselwirkung". Diese Vorlesung war ursprünglich nicht geplant und wurde nachträlich in das Programm genommen. Ich habe bei Gelegenheit schon angesprochen, dass in diesem Semester das Programm in dem Bereich etwas dünn ist und deshalb ist dies eine Entscheidung, die ich unterstütze.
In der Vorlesung werden mehrere Ansätze zur Modellierung von Web-Anwendungen vorgestellt. Mit dem Ansatz "UML-based Webengineering"(UWE) habe ich schon im Rahmen meiner Bachelorarbeit zu tun gehabt.

Algorithmen in synch. Netzen
"Algorithmen in synch. Netzen" ist in diesem Semester, die einzige Veranstaltung aus dem Bereich "Modelle und Algorithmen" die ich belege.
In dem Skript zur Vorlesung heisst es:

Die Vorlesung führt in konkrete Parallelrechnertopologien und ihre Algorithmik ein. Sie soll damit neben "Parallele Algorithmen I" einen weiteren Einblick in die Welt der Parallelverarbeitung geben, welche eine der großen Zukunftstechnologien darstellt.

Die dazu gehörige Veranstaltung im Bachelorstudiengang habe ich jetzt nicht gehört, aber ich bin sicher, dass es trotzdem klappen wird.

Schule im demokratischen Rechtsstaat
Ja, mein Hobby....
"Schule im demokratischen Rechtsstaat" ist ein Seminar (oder Vorlesung, die Angaben sind da nicht eindeutig) der kleinen politischen Abteilung an der Universität Paderborn, die hauptsächlich für die Ausbildung von Politiklehrkräften zuständig ist.

Ich belege die Veranstaltung im Rahmen des Studium Generale.

Englisch
Ebenfalls im Studium Generale belege ich die Veranstaltung "Englisch for students of computer science".
Auf der Homepage heisst es dazu:

This is a Blended Learning course which focuses on speaking, listening comprehension, reading, writing, and grammar exercises. Speaking exercises will be based on class discussions on predetermined articles as well as presentations. Listening comprehension exercises through videos and other multimedia. Reading will be of articles from English language magazine/newspaper sources. Grammar exercises will be completed and graded on-line, with exercises given for higher level grammar topics.

Klingt etwas wie ein TOEFL-Test in Vorlesungsform.

Insgesamt sind dies genau 30 ECTS-Punkte, also genau so viel wie ein Student pro Semester belegen sollte.

Bachelor of Science

Das Prüfungssekretariat hat mir heute ein Papier unter anderem mit folgendem Text gegeben:

Damit wird ihm [Dirk Meister] der akademische Grad "Bachelor of Science" verliehen.

Vier Semester Bachelorstudium sind damit beendet.

Kompensation von Leistungen

Die Kompensation von Leistungen ist nach meinem Verständnis, die Möglichkeit für Studenten einmal eine Prüfung im Wahlpflichtbereich aus der Wertung zu nehmen, wenn dafür eine andere Prüfungsleistung im gleichen Modul eingesetzt wird.
Kurz: Wenn ein Student in einem Modul drei anstatt zwei Prüfungen erbracht habe, dann kann der Student wählen welche Prüfungen angerechnet werden.


In der Bachelorprüfungsordnung in Paderborn wird dies in §8(1) mit den Worten festgelegt:

Eine einer Wahlpflichtveranstaltung innerhalb eines Katalogs zugeordnete Teilprüfung ist kompensierbar. Dies bedeutet, dass innerhalb eines Veranstaltungskatalogs einmalig eine Teilprüfung, auch wenn sie endgültig nicht bestanden ist, ohne formale Nachteile durch einen Wechsel zu einer anderen Veranstaltung desselben Katalogs ersetzt werden kann.

Aber offensichtlich scheint dies nicht so eindeutig zu sein.
Das Prüfungssek. hat mir eben gesagt, dass man meinen Antrag auf Kompensation prüfen muss und sie nicht sicher sind, ob sie das genehmigen können.
Ich wäre auch der erste Student, der dieses Recht nutzen möchte. Aber das wundert mich eigentlich sehr.
Hat jemand von meinen Lesern Erfahrung mit dem Kompensation von Leistungen im Bachelorstudiengang Informatik? Teilt ihr mein Verständnis der Bedeutung der "Kompensation"?

Monday, September 25, 2006

Java kann keine Listen?

Martin Eisenhardt vom Blog node-0 verzweifelt an seinen Studenten, die überzeugt sind "Java kann keine Listen".

Nach einigen Hin und Her und natürlich den Verweis auf die Collections-Klassen folgt der Student A zum letzten und alles entscheidenen Argument aus:

M wird es langsam zu bunt. Er setzt ein Lächeln auf. Seine Stimme ist listig.

M: äh, erklär mir noch einmal, warum Du so sicher bist, dass es in Java keine Listen gibt?

A baut sich auf und schaut triumphierend, als er zum entscheidenden Schlag ausholt.

A: Weil wir in der Übung zu Algorithmen und Datenstrukturen die verkettete Liste selbst programmieren mussten!

M zweifelt kurz an der Welt, entscheidet dann aber, dass es halt solche und solche Studierende gibt, aber eben mehr solche als solche. :-D

Das Problem kenne ich noch aus der Zeit als ich "Grundlagen der Programmierung"-Tutor gewesen bin.

Datenstrukturen selbst entwickeln ist wichtig, aber wenn die API-Klassen nicht erwähnt werden, dann existieren sie auch für einen Teil(!) der Studenten nicht. Wir haben damals auch einige wichtige API-Klassen behandelt und auch versucht darzustellen, dass die Java-API eine Schatzkammer ist die man nutzen kann/sollte. Zumindest wenn es nicht explizit angegeben wurde z.B. wenn es Sinn der Übung gewesen ist, dass die Implementierung von bestimmten Strukturen geübt werden sollte.

Einige Studenten sind aber irgendwie nicht damit klar gekommen, eine verkettete Liste selbst entwickeln sollen, wenn es LinkedList doch schon fertig gibt.

Das erinnert mich auch an Leute (nicht von der Uni) die meinen C wäre deshalb eine schlechte Sprache, weil es keine vordefinierten Funktionen im Sprachumfang gibt.

Bachelorveranstaltungen im Studium Generale des Masterstudienganges

Das Studium Generale in den Informatikstudiengängen an der Universität Paderborn dient unter anderem dem Schließen von Wissenslücken.

Schon vor einigen Monaten wurde in diesem Blog kritisiert, dass die Universität Regeln aufgestellt hat, die genau dies effektiv verhindern:

"Regelung zum Übergang vom Bachelor- in den Masterstudiengang
(26.11.2004)
...
Veranstaltungen des Masterstudiengangs sind im Rahmen des Studium
Generale im Bachelorstudiengang nicht anrechenbar. Umgekehrt sind
Veranstaltungen des Bachelorstudiengangs im Masterstudiengang generell
(aber speziell auch im Rahmen des Studium Generale des
Masterstudiengangs) nicht anrechenbar."

Doch wie so oft an der Universität Paderborn sind die Regeln härter formuliert als die eigentlich gemeint sind.


Aus oft gut informierter Quelle (;-) ) weiß ich, dass es nur nicht erlaubt ist schon im Bachelorstudiengang regulär absolvierte Veranstaltungen im Master als Studium Generale anzurechnen. Veranstaltungen aus dem Katalog des Bachelorstudienganges über die regulär besuchten Veranstaltungen dürfen als Studum Generale besucht werden.

Eine solche Regelung ist natürlich ohne Zweifel sinnvoll. Wenn ich schon im Bachelorstudiengang besuchte Veranstaltungen als Studium Generale im Master anrechnenlassen könnte, dann würde niemand Studium Generale machen.

Der veröffentlichte Text zu den Übergangsregeln sagt aber nicht wirklich aus, was gemeint ist.

Hoffentlich wird der Text möglichst bald geändert und so angepasst, dass Klarheit besteht, was erlaubt ist und was nicht. Dies mag gerade deshalb wichtig sein, weil das Prüfungsekretariat 100%ig dem Wortlaut von Regeln folgt. Das ist auch ohne Zweifel richtig, aber dann sollten die Regeln auch sinnvoll sein.

Ich werde auf jeden Fall von der neuen Möglichkeit Gebrauch machen. Einige Veranstaltungen des Bachelorstudienganges z.B. die "Compilerbau"-Veranstaltung von Prof. Kastens möchte ich auf jeden Fall belegen, aber ich habe es im Bachelorstudiengang nicht geschafft.

Disclaimer: Auch wenn ich nicht glaube, dass Probleme auftreten werden: Alle Angaben ohne Gewähr. Bevor man Veranstaltungen aus dem Katalog des Bachelorstudienganges im Studium Generale des Master verwendet, sollte man sich bei den Verantwortlichen rückversichern. Dies würde dann vielleicht auch einen Druck erzeugen, die veröffentlichte Formulierung anzupassen.

Wednesday, September 13, 2006

Ich habe es geschafft!

Die Bachelorarbeit ist abgegeben, die Verteidigung durchgeführt. Und ehrlich: Das Wort "Verteidigung" passt. Es waren echte gute Fragen dabei.

Dies bedeutet: Ich bin fertig mit dem Bachelorstudiengang Informatik an der Universität Paderborn und warte nur noch auf die Note der Arbeit und die Endnote.

Die Arbeit und den Vortrag werde ich in Kürze in diesem Blog veröffentlichen.

Monday, September 11, 2006

Verteidigung meiner Bachelorarbeit

Am 13. September 2006, also diesen Mittwoch, verteidige ich im Raum E4.301 der Universität Paderborn meine Bachelorarbeit.

Der Titel lautet "Kategorisierung und Erfassung von Testwerkzeugen in einer generischen web-basierten Applikation". Die Aufgabestellung der Bachelorarbeit war:

Kategorisierung und Erfassung von Testwerkzeugen in einer generischen web-basierten Applikation Motivation Bei der Softwareentwicklung spielt "€žTesten" eine wichtige Rolle. In unterschiedlichen Phasen der Softwareentwicklung finden Testaktivitäten statt, deren Kosten die eigentlichen Entwicklungskosten mehrfach übersteigen können. Zur Reduzierung der Testkosten werden die Testvorgänge durch Werkzeuge unterstützt, z.B. für Automatisierung, Verwaltung, Dokumentation. Die Vielzahl von verfügbaren Testwerkzeugen macht es häufig schwer, die richtigen Testwerkzeuge für die eigenen Zwecke auszuwählen. Um den Auswahlprozess zu unterstützen, wird ein Kategorisierungswerkzeug für die vorhandenen Testwerkzeuge benötigt, das die Erfassung und die Suche von Testwerkzeugen ermöglicht.

Ziele In dieser Bachelorarbeit soll ein solches Werkzeug konzipiert und realisiert werden. Dabei kristallisieren sich die folgenden zwei Teilaufgaben heraus: 1. theoretischer Teil: Untersuchung der Literatur, existierender Klassifikationsschemata und der vorhandenen Werkzeuge zur Festlegung der Kategorisierungskriterien für Testwerkzeuge; Modellierung eines generischen web-basierten Kategorisierungswerkzeugs mit UML-Erweiterung "€žUWE" (UML-based Web Engineering) 2. praktischer Teil: Realisierung des web-basierten Kategorisierungswerkzeugs. Für diese Teilaufgabe kann eine vorhandene Applikation angepasst oder eine neue Applikation entwickelt werden. Besonderer Schwerpunkt bei der Erstellung dieses Werkzeuges ist die zukünftige Erweiterbarkeit der Kategorisierungsfunktion über eine Administrationsschnittstelle für weitere Kategorisierungskriterien und Werkzeugfamilien. Student: Dirk Meister Betreuer: Gregor Engels, Baris Güldali

Alle Interessierten sind herzlich eingeladen.

Die Bachelorarbeit selbst habe ich schon letzten Dienstag abgegeben, so das dies der letzte Schritt zum (ersten) Abschluss ist.

Auf das falsche Pferd gesetzt: Softwarequalitätssicherung

Vor ein paar Tagen musste ich festschreiben, welchem Master-Modul die Vorlesung "Modelchecking" zugeordnet werden soll. Man könnte wählen entweder "III.1.1 Softwaretechnik" oder "III.1.3 Semantik und Verifikation".

Ich habe mir für III.1.1 entschieden, da ich das Modul im nächsten Semester mit "Softwarequalitätssicherung" abschließen wollte. Heute wurde die Veranstaltung abgesagt, weil Jun-Prof. Giese für ein Jahr Vertretung am Hasso-Plattner-Institut macht.

Schnell mal in die Statisik geguckt: Softwarequalität war die einzige Veranstaltung in dem Modul.
Da kann man nur sagen: Auf das falsche Pferd gesetzt.

Hoffentlich kann man da mit dem Prüfungssekretariat reden und das Modul noch ändern.

Wednesday, September 06, 2006

Google CodeJam Qualifikationsrunde

Gestern war die Qualifikationsrunde des Programmierwettbewerbes Google CodeJam. Bei dem Wettbewerb werden kleine, aber feine Programmieraufgaben gestellt, die mit einer der Programmiersprachen C++, Java, Python, C# gelöst werden müssen. Bei der Qualifikationsrunde mussten zwei Probleme gelöst werden. Ein einfacherer Problem (mit 250 Punkte) und ein komplexeres Problem mit 750 Punkte. In dieser Runde wird das Feld (irgendwo habe ich etwas von ca. 50000 Teilnehmern gelesen) auf 1000 Teilnehmer zusammen gestaucht.

Ich war dabei. Leider kann man die Betonung auf "war" legen. Es hat total Spa߸ gemacht und im nächsten Jahr bin ich (besser trainiert und vorbereitet) wieder dabei. Die Zeit hat diesmal einfach nicht gereicht. Man hat 60 Minuten Codierzeit. Ich habe gedacht, dies wäre pro Problem und nicht für beide. Die Formulierung in der Anteilung war da in meinen Augen etwas undeutlich. Dort stand das man 60 Minuten Zeit hat, sobald man das Problem geöffnet hat. Es heisst dort auch:

You may have all problems open at the same time - but keep in mind that the timers for each problem will be counting down independent of other problems that may be open.
Also unabhägige Timer. Da stimmt wohl die Beschreibung nicht mehr ganz. Aber egal.

Die Entwicklungsumgebung ist schon ziemlich beschränkt: Kein Cut-and-Paste, kaum Syntaxchecks, etc. Im Grunde wie der Windows Editor (ohne Kopierfunktion) und javac. Mir als Eclipse verwöhnten Entwickler ist es wirklich schwergefallen, damit zu arbeiten.

Insgesamt haben mich die Probleme (die beiden Probleme aus dem Wettbewerb sowie die drei Übungsprobleme) sehr an die Veranstaltung "Methoden des Algorithmenentwurfes" bei Ulf-Peter Schröder erinnert. Alle Aufgaben war nichts, was Ulf-Peter auch nicht an einem guten Tag als Hausaufgabe gestellt hätte. So war eine Übungsaufgabe im Grunde nur ein Max-Flow-Problem mit Knotenbeschränkungen. Aber man sollte auch die Schwierigkeit nicht vergessen, die Idee und den Algorithmusansatz auch in einer Programmiersprache sauber zu programmieren. Dies macht man in "Algorithmenentwurf" typischerweise nicht.