 |
Programmierung, Entwicklungsumgebung und sonstige Infrastruktur
|
 |
[Zur Startseite]
[Arbeiten unseren Linux-Rechnern]
Programmiersprache
Zu einer Diplomarbeit gehört normalerweise eine (prototypische)
Implementierung. Die Wahl der Programmiersprache orientiert sich
dabei an der in dem Projekt, in dem die Diplomarbeit angesiedelt
ist, verwendeten Programmiersprache. Die Programmiersprache
wird von den Betreuern festgelegt!
Derzeit kommt bei uns in neuen Projekten nahezu ausschließlich
die Programmiersprachen Java zum Einsatz (Ausnahmen können die
Regel bestätigen), in der Vergangenheit auch Perl in
Kombination mit C. Zu den Besonderheiten der am
Lehrstuhl verwendenten Perl-Installation gibt es
eine eigenständige Dokumentation.
Wir erwarten, dass Diplomanden sicher sind im Umgang mit
mindestens einer Programmiersprache sowie der dazu gehörenden
Bibliotheken. Etwaige fehlende Kenntnisse in der
Programmiersprache, die für die Diplomarbeit eingesetzt werden
soll, sollten innerhalb kurzer Zeit ausgleichbar sein.
Wer seine Fähigkeiten testen möchte, kann dies mit der
eigens zu diesem Zweck erstellten Programmier-Aufgabe tun. Wir erwarten,
dass diese Aufgabe innerhalb von zwei Wochen gelöst werden
kann. Diplomanden sollten darüber hinaus in der Lage sein, die
Aufgabe innerhalb von vier Wochen in einer neuen
Programmiersprache zu lösen.
Neben der fachlichen Ausbildung legen wir Wert darauf, dass
Diplomanden lernen, sich das Leben zu erleichtern, indem sie
für ihre Aufgaben die richtigen Werkzeuge einsetzen. Dazu
stellen unixoide Betriebssysteme (wie z.B. Linux) die aus
unserer Sicht optimale Entwicklungsumgebung zur
Verfügung. Letztendlich steht es
natürlich jedem frei, seine Arbeit so zu organisieren, wie er
es für richtig hält, solange gewährleistet ist, dass die
Ergebnisse auf der am Lehrstuhl vorhandenen Rechner-Umgebung
einsetzbar sind.
Hier soll nun ein Vorschlag unterbreitet werden, der sich
schon oftmals bewährt hat, nicht zuletzt deshalb, weil dadurch
die Zusammenarbeit zwischen Diplomanden untereinander und
zwischen Diplomanden und Betreuern erleichtert wird:
-
Betriebssystem: Linux
-
Dazu wurde ja schon alles gesagt.
-
IDE (Integrierte Entwicklungsumgebung): Eclipse
(zumindest für Java)
-
Eclipse ist eine sehr mächtige integrierte
Entwicklungsumgebung vor allem für Java, die durch Plugins
aber auch für andere Programmiersprachen eingesetzt werden
kann. Eclipse hat in letzter Zeit Emacs für die
Java-Entwicklung weitestgehend verdrängt.
-
Alternativer Editor: Emacs
-
Neben der extremen Erweiterbarkeit hat man mit dem Emacs
ein Werkzeug, welches viele Funktionen in sich vereinigt. Das
fängt an mit der integrierten Entwicklungsumgebung (edit
- compile - run - debug) und hört noch lange nicht auf
bei der Textverarbeitungs-Funktionalität. Viele nutzen Emacs
auch als Mail- und News-Reader oder als Web-Browser.
-
Textverarbeitung: LaTeX
-
Hiermit hat man die Möglichkeit, sich der Layouts für die
Diplomarbeit zu bedienen, die andere Diplomanden bereits in
mehreren Iterationen vorgefertigt haben. Daneben hat LaTeX kein
Problem mit umfassenden Dokumenten mit vielen Abbildungen;
außerdem ist die Erstellung von
Literaturverzeichnissen mit
unserer BibDB und BibTeX ein
Kinderspiel.
Bitte beachtet, daß üblicherweise die Betreuer
Vorversionen der Arbeit lesen und dazu ihre Meinung
abgeben sollen. Word-Dokumente sind unter Linux nur
umständlich zu lesen und werden daher u.a. von den
Betreuern nicht akzepiert. Wer also unbedingt seine
Diplomarbeit (und Konzepte, Protokolle etc.) in Word
schreiben will, sollte daraus ein PDF erzeugen und das
weiterleiten.
-
Versionskontrolle: CVS
-
Sicher ist, dass sich das Nicht-Verwenden einer
Versionskontrolle rächt. CVS ist ein verteiltes System für
Projekt-Versionierung und wird in allen Projekten bei
uns eingesetzt. Es erleichtert ungemein das Austauschen von
Sourcen zwischen Betreuern und Studierenden, außerdem dient es
als externes Backup für den Studierenden (wenn die
heimische Platte abraucht, ist die Arbeit nicht
verloren). Darüber hinaus kann man so einfach ältere
Versionen wiederherstellen, wenn sich ein neuer Weg als
Fehler herausstellt. Wir empfehlen daher die Verwendung
von CVS auch für den Text der Diplomarbeit (hier zahlt es
sich wieder aus, wenn LaTeX verwendet wird).
Bis auf wenige Ausnahmen ist daher die Verwendung von CVS
keine Empfehlung, sondern
Pflicht. Dies gilt erst recht dann, wenn im Rahmen
der Arbeit Code in das zugehörige Projekt integriert
werden muß.
-
Automatische Unit-Tests in Java: JUnit
-
JUnit ist ein Tool für den automatischen Unit-Test in
Java. Damit lassen sich Fehler im Programmcode finden, die
sich in der initialen Implementierung oder in späteren
Änderungen eingeschlichen haben. Wir empfehlen dringend
die durchgehende Verwendung von JUnit; wenn in der Arbeit
eng mit einem Projekt zusammengearbeitet werden muß, kann
die Verwendung auch verpflichtend sein.
-
Build-Tool für Java: Ant
-
Ant ist der Standard in Sachen Build-Tools in Java und
ersetzt damit das Unix-/Linux-Tool "make" (ist allerdings
deutlich mächtifer). Es gilt dasselbe wie für JUnit -
sehr empfehlenswert, teilweise auch Pflicht.
Zugang zu den Ressourcen der Arbeitsgruppe
Unsere Arbeitsgruppe betreibt einen eigenen Linux-Pool für
Diplomanden und Studienarbeiter (LF 131). Diese Rechner können,
müssen aber nicht genutzt werden; bei den meisten Themen
steht einer Arbeit am heimischen PC nichts entgegen.
Jeder Diplomand und Studienarbeiter erhält einen Account auf
den Rechnern (und damit verbunden eine Emailadresse, über die
die Kommunikation abgewickelt wird) und eine Quote für den
Drucker floyd (steht auch in LF 131).
Darüber hinaus erhält jeder Diplomand und Studienarbeiter
einen Schlüssel für den Raum. Hierzu muß der Betreuer ein
Formular ausfüllen. Der Studierende unterzeichnet dieses, geht
damit zum Sekretariat (Frau Bick, LF 227b) und erhält dort
einen Schlüssel. Dieser muß nach Abschluß der Arbeit
zurückgegeben werden; andernfalls sind die Kosten für
Ersatzbeschaffungen von Schlüsseln und Schlössern vom
Studierenden zu erstatten.
Wir haben einige Hinweise für das Arbeiten unseren
Linux-Rechnern zusammengestellt.
|