Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Note: Most of this page is in German. Future additions should be done in English. At some point, some good soul might translate the German "legacy documentation" to English as well.

 

 

Diese Seite gibt Hinweise, welche bei der Anfertigung einer studentischen Arbeit an der AG Echtzeitsysteme und Eingebettete Systeme beachtet werden sollten. Dies betrifft in erster Linie Studien-/Diplom-/Bachelor-/Masterarbeiten; die Hinweise können aber auch bei der Anfertigung von Praktikumsberichten - oder auch Promotionsarbeiten - hilfreich sein.

Interaktion mit dem Betreuer

Eine gute Zusammenarbeit mit Ihrem Betreuer (dies können auch mehrere sein) ist ein wesentlicher Schlüssel für eine erfolgreiche Arbeit. Ihr Betreuer sollte Ihnen an Erfahrung und Fachwissen voraus sein - nutzen Sie dies, um zu lernen und Ihre Arbeit zu verbessern.

Betreuer sind auch Menschen. Sie helfen Ihnen gerne bei der inhaltlichen Arbeit; weniger gerne spielen sie "Antreiber", oder haben das Gefühl, dass ihre Hinweise/Ratschläge/Informationen (incl. der Hinweise auf dieser Seite) nicht wirklich Gehör finden. Grundsätzlich sollten Sie selbst es sein, welcher Ihre Arbeit vorantreibt, Fragen stellt, Besprechungen initiiert, Ihrem Betreuer unaufgefordert Leseproben zukommen lässt. Kurzum, der Betreuer sollte überzeugt sein, dass Ihre Arbeit "läuft".

Grundlage einer guten Kommunikation mit dem Betreuer ist erfahrungsgemäß Ihre Präsenz vor Ort. Wir sind normalerweise in der Lage, Ihnen einen Arbeitsplatz am Lehrstuhl einzuräumen, typischerweise im Labor. Sie sollten diesen Arbeitsplatz für Ihre Arbeit nutzen, und nicht den heimischen PC. So ergibt sich ganz von selbst ein regelmäßiger, oft informeller Austausch, z.B. im Rahmen der üblichen "Lehrstuhl-Teerunde", täglich 9:30 im Labor, zu der auch Sie herzlich eingeladen sind.

Eine Ausnahme sind Arbeiten, welche in Zusammenarbeit mit einem Industrieunternehmen angefertigt werden. Diese werden in der Regel fachlich primär von dort betreut und Sie sollten Ihren Arbeitsplatz bei dem Unternehmen haben. Hier sollten Sie den universitären Betreuer mit regelmäßigen Fortschrittsberichten (E-Mail alle 4-6 Wochen) über den Fortgang Ihrer Arbeiten informieren.

Ihre Diplomarbeit ist ein Vollzeitjob; Sie sollten also im Normalfall täglich am Arbeitsplatz sein. Wenn Sie daneben einer regelmäßigen Arbeit nachgehen, sollten Sie mit dem Betreuer absprechen, wie dies mit der Anfertigung Ihrer Abschlussarbeit vereinbart werden kann.

Zeitlicher Ablauf

Sie sollten insbesondere bei der Anfertigung der schriftlichen Ausfertigung auf die Erfahrungen des Betreuers zugreifen. Sie sollten dem Betreuer also Entwürfe Ihrer Arbeit zukommen lassen, bevor Sie die zu benotende Endversion einreichen. Ihre Entwürfe sollten dabei aus Ihrer Sicht möglichst reif sein, müssen aber noch keineswegs vollständig sein. Eine bewährte Sequenz von abzuliefernden Dokumenten ist:

AktionMasterarbeit/DiplomarbeitBachelorarbeit/StudienarbeitIdee
Gliederung3 Monate vor Abgabe6 Wochen vor AbgabeZur Halbzeit sollte man schon einen Plan haben, welche Themen in der Arbeit grundsätzlich diskutiert werden sollen. Dies muss rechtzeitig mit dem Betreuer besprochen werden.
1-2 Probekapitel4 Wochen vor Abgabe3 Wochen vor AbgabeProbekapitel sollen grundsätzliche stilistische Probleme zeigen und verhindern, dass bei der Endkorrektur alles grundsätzlich anders gemacht werden muss.
Komplette Arbeit2 Wochen vor Abgabe10 Tage vor AbgabeDie Abgabe der kompletten Arbeit vor der offiziellen Abgabe dient unter anderem dazu, dass stilistische/orthographische Korrekturen noch in die Arbeit einfließen können, bevor diese offiziell abgegeben/veröffentlicht ist. Das dient nicht nur der Verbesserung der Arbeit, sondern ist auch für den Betreuer befriedigender.

Für Arbeiten, welche in Zusammenarbeit mit einem Industrieunternehmen angefertigt werden, gilt diese Sequenz ebenso; Sie sollten hier jedoch Entwürfe, welche Sie dem universitären Betreuer zukommen lassen, vorher entsprechend von Ihrem Betreuer aus dem Unternehmen durchsehen lassen.

Notizen

Machen Sie sich während Ihrer gesamten theoretischen Arbeit Notizen darüber, was Sie gerade tun, wie Sie es tun und insbesondere: warum Sie es tun. Im Moment des Tuns ist alles noch klar, aber sobald es ans Schreiben geht wird es nicht mehr so klar sein. Tun Sie sich also einen Gefallen und schreiben Sie Notizen. Die Arbeit ist auch insofern schon nicht umsonst, als dass die Notizen eine prima Grundlage für Teile Ihrer schriftlichen Ausarbeitung werden.

Hinweise zu Implementierungen

Allgemeines

Erste Regel: "No Crashes!" Egal was Ihr System tut und welche Nutzereingaben geschehen, die Implementierung sollte nicht abstürzen oder einfrieren. Wo Annahmen gemacht werden, sollten diese explizit überprüft werden. Im Falle der Nichteinhaltung sollte eine brauchbare Fehlermeldung generiert werden, und der Anwender sollte weiter mit der Implementierung arbeiten können.

Generell: Ihre Arbeit wird sehr wahrscheinlich auch einen praktischen Teil enthalten, in welcher Sie Software oder Hardware entwickeln oder erweitern sollen. Das akademische Umfeld Ihrer Arbeit bedeutet in der Regel, dass für diese Entwicklung weniger Ressourcen - insbesondere zeitliche Ressourcen - als in einem kommerziellen Umfeld zur Verfügung stehen, und dass sich Ihre Arbeit nicht am Markt behaupten muss. Die Konsequenz daraus ist, dass Ihre Arbeit in der Regel weniger umfangreich sein sollte und weniger Features bieten sollte als ein kommerzielles Produkt. Die Konsequenz ist nicht, dass Sie ihre Implementierung weniger sorgfältig vornehmen sollen, oder schlechter dokumentieren sollen, als dies in einem professionellem Umfeld der Fall wäre. Im Gegenteil - während bei kommerziellen Produkten der Termindruck, die Notwendigkeit zu ständigen Neuentwicklungen, und zum Teil eine gewisse Ignoranz auf Kunden- und/oder Entwicklerseite den Qualitätsstandard senken können, sollte die von Ihnen hier erstellte Implementierung Ihr „Meisterstück“ sein, welches zeigt, wozu Sie (im positiven Sinne) fähig sind. Es gilt hier zwar, dass Produktfehler keinen erheblichen wirtschaftlichen Schaden verursachen können oder gar Menschenleben gefährden können; jedoch ist auch hier Ihre Arbeit in der Regel nicht isoliert und „nur“ Teil Ihrer Ausarbeitung, sondern etwas, was andere anwenden und weiterentwickeln sollen. Die Qualität (und Benotung) Ihrer Arbeit wird (unter anderem) an der Qualität Ihrer Entwicklung gemessen.

Zur Verdeutlichung: wenn Ihre Arbeit eine Machbarkeitsstudie (proof of concept) sein soll, bedeutet dies, dass Sie Ihre Arbeit in Absprache mit dem Betreuer auf eine wohldefinierte Teilmenge des Gesamtproblems einschränken sollen. Es sollte für den Anwender klar erkennbar und vorhersagbar sein, was Ihre Implementierung leistet und was nicht. Sinnvolle Einschränkungen können zum Beispiel sein: „die Transformation betrachtet nur pure signals, keine valued signals ... Es können keine hierarchieübergreifenden Transitionen gezeichnet werden“. Keine sinnvolle Einschränkung ist: „Mal funktioniert das Einfügen eines Zustands - mal stürzt das System ab“. Wenn im Laufe Ihrer Implementierungsarbeit ersichtlich wird, dass bestimmte Implementierungsziele nicht erreicht werden können (aufgrund falscher Einschätzung des Problems, oder aufgrund schlechter Ressourcenplanung), sollte sofort mit dem Betreuer abgesprochen werden, wie das Problem sinnvollerweise eingeschränkt werden könnte; es sollte nicht zu einer schlampigen Entwicklung führen. Schließlich gilt: es ist für etwaige Teamkollegen/Nachfolger von Ihnen eine wesentlich dankbarere Aufgabe, auf Ihrer kleinen, sauber entwickelten Arbeit aufzusetzen und diese um neue Features zu erweitern, als zu versuchen, Ihre große, defekte Arbeit auf einen brauchbaren Qualitätsstandard anzuheben - oder diese ganz wegzuschmeißen und von vorne anzufangen.

Grundsätzlich gilt: Die Software ist „sauber“ zu schreiben und zu dokumentieren, unter Beachtung eines evtl. vorhandenen Projekthandbuchs. Die Qualität und Leserlichkeit Ihrer Software sowie der Dokumentation geht in die Bewertung Ihrer Arbeit mit ein.

Reviews und Ratings

Ist die Implementierung Teil des KIELER Projekts, so müssen zur Erhaltung des Qualitätsstandards Design und Code Reviews durchgeführt werden. Wie dies praktisch abläuft und wie die sich daraus ergebenden Ratings aussehen wird auf der KIELER Projektseite erläutert.

Hinweise zur Ausarbeitung

Umfang

Folgendes sind grobe Richtwerte für den Umfang der Arbeit, ohne Titelseite, Inhalts-/Abbildungsverzeichnis, leere Seiten, Bibliographie, Anhänge, etc.

  • Studien-/Bachelorarbeit: 30-50 Seiten.
  • Diplom-/Masterarbeit: 70-120 Seiten.

Sprache der Arbeit

Sie können die Arbeit auf Deutsch oder Englisch verfassen. Falls Sie die Arbeit nicht in Ihrer Muttersprache schreiben, wäre es hilfreich, wenn ein muttersprachlicher (oder ähnlich qualifizierter) Korrekturleser Ihre Arbeit auf sprachliche Richtigkeit korrigieren könnte, bevor Sie die Arbeit Ihrem Betreuer geben.

Software sollte generell auf Englisch geschrieben werden - d.h., Kommentare, Variablen-/Klassen-/Paketnamen etc. sollten englisch sein.

Hinweise für englischsprachige Arbeiten

  • Lesen und beherzigen Sie Strunk & White (siehe unten).
  • Lesen und beherzigen Sie Strunk & White (siehe unten).
  • Lesen und beherzigen Sie Strunk & White (siehe unten). Außerdem:
  • Sätze sollten nicht mit „But“ oder „And“ anfangen. Stattdessen: „However, ...“ bzw. „Furthermore, ...“.

Schlecht:

„But this is of exponential complexity. And there is no known alternative.“

Gut:

„However, this is of exponential complexity. Furthermore, there is no known alternative.“

  • Die Verwendung des Wortes „like“ im Sinne von „such as“ ist umgangssprachlich und sollte vermieden werden. In noch stärkerem Maße gilt dies für die Bedeutung „as if“.

Schlecht:

„I, like you, like fast algorithms, like Tarjan's algorithm, ... He uses a sorting algorithm of quadratic complexity, like there is no alternative.“

Gut:

„I, like you, like fast algorithms, such as Tarjan's algorithm, ... He uses a sorting algorithm of quadratic complexity, as if there were no alternative.“

  • Mit „which“ wird eine Ergänzung gekennzeichnet, welche in Kommata eingeschlossen wird und deren Streichung nicht sinnentstellend wirkt. Mit „that“ wird eine nähere Identifizierung gekennzeichnet, welche nicht gestrichen werden kann. Und: vor „that“ steht kein Komma!

Schlecht:

„I told him, that the quicksort algorithm that is very fast is used by the program, which I installed yesterday.“

Gut:

„I told him that the quicksort algorithm, which is very fast, is used by the program that I installed yesterday.“

  • Im allgemeinen werden die Wörter „section“, „figure“ etc. klein geschrieben, falls sie nicht am Satzanfang stehen. Falls jedoch eine spezifische Einheit gemeint und durch eine Nummerierung kenntlich gemacht ist, werden diese Wörter groß geschrieben.

Schlecht:

„The following Section illustrates .... In section 2.3, we describe .... This Chapter includes too many Sections.“

Gut:

„The following section illustrates .... In Section 2.3, we describe .... This chapter includes too many sections.“

Allgemeine Hinweise

Grundsätzlich steht es Ihnen frei, wie Sie Ihre Arbeit erstellen - mit  LaTeX oder einem Office-Paket (oder auch handschriftlich). Es wird jedoch dringend nahe gelegt, LaTeX zu verwenden, da hiermit auch größere Arbeiten mit umfangreichen Querverweisen etc. (relativ) problemlos zu erstellen sind und ein konsistent gutes Layout erzeugt werden kann. Auch gibt es hierzu eine recht umfassende technische Unterstützung, incl. Templates und einer gemeinsam gepflegten Bibliographie-Datenbank. In folgenden Hinweisen wird deswegen angenommen, dass Sie LaTeX verwenden, sowie BibTeX für die Bibliographie. Beides wird weiter unten erläutert.

Das Layout Ihrer Arbeit sollte der Kiel Computer Science Series (KCSS) entsprechen. Auf der KCSS-Seite sind ein LaTeX-Stylefile und umfangreiche Dokumentation hierzu verfügbar.

Sollten Sie nicht LaTeX verwenden, bzw. nicht den KCSS-Style, ist eine technische Unterstützung Ihrer Arbeit nur eingeschränkt möglich.

Um ggf. elektronischen Zugang auf Ihre sowie anderweitige weitere Nutzung Ihrer Arbeit zu ermöglichen, sollten eine PDF-Version, sowie auch die LaTeX-Sourcen, Graphiken, etc., im Subversion-System der Gruppe eingecheckt werden.

Rechtschreibprüfung

Lassen Sie von Zeit zu Zeit eine Rechtschreibprüfung über ihren Text laufen; dies ist auch für .tex-Dateien möglich. Insbesondere sollte dies geschehen bevor Sie Ihre Arbeit jemand anderem zum Lesen/Korrigieren/Bewerten geben. Ein möglicher Spellchecker ist aspell.

Texlipse unterstützt auch on-the-fly spell checking.

In Emacs (oder Xemacs - generell wird hier nicht zwischen diesen Editoren unterschieden) wird die Rechtschreibprüfung eines Buffers, welcher eine .tex-Datei enthalten kann, mit dem Befehl ispell-buffer gestartet. Der zu verwendende Spellchecker wird durch die Variable ispell-program-name definiert (Default: aspell). Das zu verwendende Wörterbuch wird durch die Variable ispell-dictionary definiert (z.B. deutsch8 oder american), welche durch den Befehl ispell-change-dictionary gesetzt werden kann.

Emacs kann das zu verwendende Wörterbuch auch automatisch für eine .tex-Datei festlegen, wenn die Datei die Variable ispell-dictionary über einen Local Variables-Kommentar definiert, welcher vom Emacs beim Einlesen einer Datei ausgewertet wird. Ein Beispiel für einen solchen Kommentar:

  % Local Variables:
  % mode: latex
  % compile-command: "make cases2005.pdfv"
  % ispell-dictionary: "american"
  % End:
  • Gründliches manuelles Lesen bleibt einem aufgrund Grammatik oder Zeichensetzungsfehlern nicht erspart.
  • Möglichst auch einen zweiten, unabhängigen Korrekturleser heranziehen.
  • Bei englischer Sprache ist möglichst ein native speaker als Korrekturleser heranzuziehen.

Auszeichnungen - Allgemeines

Einzelne Textpassagen können ausgezeichnet werden. Grundsätzlich sollten Auszeichnungen in folgenden Gegebenheiten eingesetzt werden:

  • Einführung/Definition neuer Begriffe - wie zum Beispiel „auszeichnen“ (und damit auch „Auszeichnung“) in obigem Absatz.
  • Zitate.
  • Teilüberschriften, evt. in den Fließtext integriert.
  • Titel von Büchern, Zeitschriften etc.
  • Beispiele, wenn diese - wie hier - in Form von (wenn auch fiktiven) Zitaten erscheinen.
  • Hervorhebung von Kernpunkten.
  • Fremdsprachige Textfragmente (siehe unten).
  • Symbole, physikalische Größen usw. (siehe unten).
  • Programme, Funktionsname usw. (siehe unten).

Man sollte sich beim Gebrauch von Auszeichnungen bewusst sein, dass diese ein besonderer Hinweis für den Leser sind und ihn zu besonderer Aufmerksamkeit veranlassen sollen. Sie bewirken stets eine - wenn auch minimale - Unterbrechung des Leseflusses. Auszeichnungen sollten systematisch und im Zweifelsfall eher sparsam eingesetzt werden. Zu vieleAuszeichnungen verhindern das flüssige Lesen (und können auch etwas akademisch wirken). Es ist dann schwierig für den Leser zu erkennen, was denn nun wirklich wichtig ist - insbesondere bei geschachtelten Auszeichnungen, möglicherweise mehrfach überlagert !!!!

Bei Auszeichnungen sollte der Scope eingehalten werden. Wenn z.B. Begriffe und sowie deren Abkürzungen eingeführt werden, sollten diese einzeln ausgezeichnet werden - Klammerungen selbst sollten nicht ausgezeichnet werden.

Schlecht:

„Die Message Sequence Charts (MSCs) sind ein Formalismus ...“

Gut:

„Die Message Sequence Charts (MSCs) sind ein Formalismus ...“

In LaTeX werden Auszeichnungen mit dem Befehl \emph vorgenommen, welche dann normalerweise kursiv erscheinen. In einem kursiv gesetzten Kontext - wie in den Beispielen hier - sind Auszeichnungen jedoch nicht-kursiv, um diese vom Kontext abzuheben.

Auszeichnung fremdsprachiger Ausdrücke

Zunächst ein Beispiel für ein englischsprachiges Dokument:

Schlecht:

„As Schmidt et al. have documented, this agreement today is a de-facto standard for layout etc.“

Gut:

„As Schmidt et al. have documented, this agreement today is a de-facto standard for layout etc.“

Bei deutschsprachigen Dokumenten gilt: es sind grundsätzlich Begriffe ausgenommen, welche im Duden stehen (wie zum Beispiel „Layout“). Weiterhin wird bei Auszeichnungen die Groß-/Kleinschreibung der Fremdsprache übernommen.

Schlecht:

„Wie Schmidt et al. dokumentiert haben, ist dieses Agreement heute de-facto ein Standard in layout etc.“

Gut:

„Wie Schmidt et al. dokumentiert haben, ist diese Vereinbarung heute de-facto ein Standard in Layout etc.“

Eine spezielle Problematik bei deutschsprachigen Dokumenten in der Informatik ist, dass hier viele Begriffe aus dem Englischen kommen, und als Teil des deutschen Informatik-Fachvokabulars angesehen werden können, auch wenn diese noch nicht im Duden erscheinen. Diese Begriffe sollten dann nicht ausgezeichnet werden, damit die Lesbarkeit des Dokuments nicht durch übermäßige Auszeichnungen leidet. Im Zweifelsfall gilt: Wenn es für einen englischen Begriff keinen äquivalenten deutschen Begriff gibt, oder der deutsche Begriff in der Praxis seltener eingesetzt wird als der englische Begriff, sollte der englische Begriff als Teil des deutschen Fachvokabulars angesehen werden und auf eine Auszeichnung verzichtet werden. Dies betrifft auch Begriffe, welche nicht wirklich Fachbegriffe sind (wie z.B. „Feature“). Ebenso sollten Eigennamen von Formalismen, Programmiersprachen, Werkzeugen usw. nicht ausgezeichnet werden. In jedem Fall sollten Sie sich konsistent für oder gegen die Auszeichnung eines Begriffs im gesamten Dokument entscheiden; einzige Ausnahme ist die einmalige Auszeichnung eines Begriffes bei einer Begriffsdefinition. Zusammenfassend gilt: es ist oft im Ermessen des Autors, ob eine Auszeichnung verwendet werden soll oder nicht; im Zweifelsfall gilt das Gebot der Sparsamkeit, insbesondere, falls Sie einen einzelnen Begriff sehr häufig verwenden.

Schlecht:

„Die Synthese von Statecharts nach Java .... Der Kellerspeicher vom Übersetzer ist hierfür standardmäßig zu klein. Diese software hat viele features und noch mehr bugs. [Aber:] Die Mental Map des Betrachters ....“

Gut:

„Die Synthese von Statecharts nach Java .... Der Stack des Compilers ist hierfür standardmäßig zu klein. Diese Software hat viele Features und noch mehr Bugs. [Aber:] Die mental map des Betrachters ....“

Nach diesem Plädoyer für die sparsame Verwendung von Auszeichnungen bei originär englischen Ausdrücken noch ein Plädoyer für sparsame Verwendung englischer Ausdrücke, wenn es hierfür gängige und präzise Äquivalente im Deutschen gibt:

Schlecht:

„Das Agreement war, die Action Items und die Schedule des nächsten Meetings in die Minutes zu pasten, und sich zum Matchen der Deadlines zu committen.“

Gut:

„Die Vereinbarung war, die Aktionspunkte und die Zeitplanung der nächsten Besprechung in das Protokoll zu übernehmen, und sich zur Einhaltung der Termine zu verpflichten.“

In der Informatik ist dies oft eine schwierige Balance zwischen zu viel und zu wenig deutsch, welche letztlich eine Sache des persönlichen Geschmacks ist. So scheint „Übersetzer“ ebenso akzeptabel wie „Compiler“, „Betriebssystem“ mehr verbreitet als „Operating System“, jedoch wirkt „Kellerspeicher“ eher verschroben im Vergleich zu „Stack“.

Auszeichnung von Symbolen, physikalischen Größen usw.

Neben den bereits erwähnten Fällen, in welchen Textbestandteile ausgezeichnet werden sollten, sollten auch Mathematische Symbole, Mengenbezeichner, physikalische Größen etc. ausgezeichnet werden. In LaTeX kann man hierfür, wie bereits erwähnt, den Befehl \emph{...} verwenden - oder alternativ den Begriff mit „$...$“ auszeichnen. Letzterer Mechanismus ist jedoch mit etwas Vorsicht zu verwenden, falls die Begriffe mehr als ein Zeichen lang sind, da dieser Mechanismus den Begriff als mathematische Formel interpretiert und spezielle Richtlinien für dessen Layout verwendet. Insbesondere wird der Buchstabe f als eigenständiger Funktionsname interpretiert und ein entsprechender Zwischenraum produziert, was generell nicht erwünscht ist.

Schlecht:

„Sei $Koffer$ die Menge der Koffer ...“

Gut:

„Sei \emph{Koffer} die Menge der Koffer ...“

Auszeichnung von Programmen, Funktionsnamen usw.

Namen von Programmen sowie von Funktionsnamen, Variablennamen etc. sollten ebenfalls ausgezeichnet werden. Jedoch sollte man hierfür eine andere Auszeichnung verwenden, nämlich diejenige, welche auch in Programmlistings verwendet wird. Typischerweise ist dies typewriter (erzeugt mit \texttt{...}) oder SansSerif (erzeugt mit \textsf{...}). Ein Beispiel hierfür sind die in diesem Text erwähnten LaTeX-Befehle.

Referenzierungen

Verwenden Sie Referenzierungen im Ihrer Arbeit so, dass sie kein grammatikalischer Bestandteil des Satzes sind - der Text sollte auch nach Eliminieren aller geklammerten Bestandteile, einschließlich der in eckigen Klammern befindlichen Referenzen, noch grammatikalisch korrekt sein. Üblicherweise erreicht man dies durch die Nennung der Autoren eines Werkes, gefolgt von der Referenz. Im Text sollten Autoren typischerweise ohne Vornamen genannt werden (jedoch sollten Autorenvornamen bei den Referenzen selbst vollständig genannt werden, siehe unten). Bei mehreren Autoren sollten entweder alle genannt werden, oder es sollte die Existenz weiterer Autoren durch „et al.“ kenntlich gemacht werden.

Schlecht:

„Wie in [42] beschrieben, ...“

Gut:

„Wie von Harel et al[42] beschrieben, ...“

Die Referenzen selbst sollten vollständig sein - also mehr sein als eine Sammlung von Suchbegriffen für google. Grundsätzlich sollten Angaben so vollständig wie möglich sein. So gehören z.B. zu einer Artikelreferenz nicht nur Autoren und Titel des Artikels, sondern auch bei Jahr/Monat des Erscheinens, bei Journalartikeln auch Name des Journals und gegebenenfalls Nummer und Herausgeber, sowie bei Tagungs-/Workshopartikeln der Name und Ort der Tagung. Vermeiden Sie Abkürzungen. Tagungsnamen sollten sowohl in ausgeschriebener Form als auch mit ihrem Kürzel genannt werden.

Schlecht:

„A. Mooij and N. Goga and J. Romijn. Non-local Choice and Beyond: Intricacies of MSC Choice Nodes. FASE'05, pages 273-288, 2005.“ „A. Mooij and N. Goga and J. Romijn. Non-local Choice and Beyond: Intricacies of MSC Choice Nodes. In Fundamental Approaches to Software Engineering, pages 273-288, April 2005.“

Gut:

„Arjan J. Mooij and Nicolae Goga and Judi Romijn. Non-local Choice and Beyond: Intricacies of MSC Choice Nodes. In Fundamental Approaches to Software Engineering (FASE '05), pages 273-288, Edinburgh, Scotland, April 2005.“

Achten Sie auf die Konsistenz der Einträge. So sollten z.B. alle Referenzen für ein Journal dieses Journal gleich referenzieren. Autoren sollten so referenziert werden, wie sie in der referenzierten Arbeit erscheinen; so sollten Vornamen nicht abgekürzt werden, wenn sie in der Arbeit selbst ausgeschrieben sind, ebenso sollten angegebene Mittelinitialen übernommen werden. Bei der Verwendung von URLs sollten Sie darauf achten, dass diese nicht über den Satzspiegel hinausragen; das Paket breakurl sorgt für den entsprechenden Zeilenumbruch von URLs.

Schlecht:

[1] Alur, Etessami, and Yannakakis. Inference of message sequence charts. IEEETSE: IEEE Transactions on Software Engineering, 29, 2003.

[2] Alan W. Biermann and Ramachandran Krishnaswamy. Constructing programs from example computations. IEEE Transactions on Software Engineering, 2(3):141-153, September 1976.

Gut:

[1] Rajeev Alur, Kousha Etessami, and Mihalis Yannakakis. Inference of message sequence charts. IEEE Transactions on Software Engineering, 29:304NAK313, 2003.

[2] Alan W. Biermann and Ramachandran Krishnaswamy. Constructing programs from example computations. IEEE Transactions on Software Engineering, 2(3):141-153, September 1976.

Die Bibliographie sollte nach Nachnamen des Erstautors sortiert sein. Bei der (stark empfohlenen) Verwendung von BibTeX sollten Sie für jede Referenz den richtigen, möglichst spezifischen Referenztyp verwenden (z.B. @InProceedings statt @Misc). Die für den jeweiligen Referenztyp vorgesehenen Pflichtfelder geben bereits einen ersten Hinweis für die Mindestinformationen; die weiteren optionalen Eintragsfelder sollten aber auch so weit wie möglich verwendet werden. Falls bibtex bei Erzeugung der Referenzen einen Fehler meldet, z.B. aufgrund eines fehlenden Pflichtfeldes, sollte dieses auf alle Fälle korrigiert werden. Für Ihre Arbeitserleichterung sollten Sie ein konsistentes Schema für die Indizierung verwenden, so dass Sie den Index möglichst aus Autoren & Erscheinungsjahr erschließen können, und Referenzierungen in Ihren Text einfügen können, ohne den Index in der BibTeX-Datei nachsehen zu müssen. Die Verwendung eines bestimmten Schemas ist insbesondere dann erforderlich, falls Sie eine gemeinsam genutzte BibTeX-Datei bearbeiten. So gibt z.B. die am Lehrstuhl genutzte cau-rt.bib-Datei ein Schema vor, welches am Anfang dieser Datei beschrieben ist.

  • Literaturangaben möglichst als integrierten Teil des Satzes (nicht außerhalb des Satzes anbringen).
  • Literaturangaben keinesfalls hinter das Satzendzeichen (z.B. nach dem Punkt).
  • Auch in Abbildungen, die nicht selbst/selbständig erstellt wurden darf die Literaturangabe nicht fehlen (z.B. (nach Schmidt [3])).
  • Für URLs, Verweise auf Webseiten (z.B. www.eclipse.org) eignen sich am besten Fußnoten.
  • Bib-Eintränge kontrollieren (Titel, Autoren (durch and getrennt, nicht kommasepariert!), Datum, Ort!).
  • Bib-Einträge: Wörter, die groß geschrieben werden sollten in geschweifte Klammern setzen.
  • Bib-Einträge auf Englisch oder Deutsch (je nach Arbeit!).
  • Literaturangaben nicht als Nomen in den Satz einbetten. 
    Merkregel: Der Satz sollte sich auch ohne die Literaturangabe sinnvoll lesen lassen.
  • Nur Primärliteratur oder (bewährte) Fachbücher: Z.B. keine Foliensätze/Lectures referenzieren.

Aufbau und Inhalt

  • Ziel der Arbeit wirklich auf den Punkt bringen (ca. 1/2 bis 3/4 Seite).
  • Neue Begriffe (die einem Informatiker nicht allgemein bekannt sind) an geeigneter Stelle einführen, bevor man sie verwendet (z.B. Definitionen).
  • Jedes Kapitel sollte eine Einleitung haben.
  • Überleitungen von jedem Teil in den anderen, eine sinnvolle Reihenfolge ist notwendig und erleichtert dies.
  • Schwammige Begriffe und Füllwörter vermeiden bzw. weglassen.
    • Füllsätze ebenfalls vermeiden.
  • Einheitliche/konsistente Begriffe verwenden, bei neu eingeführten Begriffen auf Synonyme verzichten.
  • Keine Umgangssprache verwenden, möglichst auf Fachbegriffe zurückgreifen.
  • Von Strukturierungselementen wie \itemize, \enumerate, \description sinnvoll Gebrauch machen.
  • Grafiken zur Veranschaulichung nutzen (z.B. Aktivitätsdiagramme, Klassendiagramme, Tabellen).
    • Diese können auch für evtl. Präsentationen wiederverwendet werden.
  • Beim Erklären von Zusammenhängen zunächst abstrahieren und erst später konkret werden.
Kapitel
  1. Abstract: Beschreibt den Inhalt Arbeit abstrakt und kompakt, soll einem Leser eine Entscheidungshilfe dabei sein, ob die Arbeit für ihn lesenswert ist oder nicht.
  2. Einleitung: In das Thema einführen, Ziele der Arbeit beschreiben, Ausblick/Kapitelübersicht geben.
  3. Verwandte Arbeiten: Arbeiten mit ähnlichen/angrenzenden Themen in Bezug zur Arbeit setzen.
  4. Verwendete Technologien: Optional, Techniken und Technologien soweit für das Verständnis nötig beschreiben.
  5. Ideen: Vom Ist-Zustand ausgehend die Probleme erörtern, Lösungsansätze auch mit Verweis auf verwandte Arbeiten diskutieren und den eigenen Lösungsweg stichhaltig begründen, hier zunächst die nötige Abstraktion wahren und erst im Verlauf konkreter werden, Implementierungsdetails sind hier irrelevant.
  6. Implementierung: Mit Verweis auf den eigenen Lösungsweg, soll hier die Implementierung zunächst mit der Struktur beginnend (Begründung!) und an sinnvollen Stellen auch mit konkretem Anwendungscode/Beispielen beschrieben werden.
  7. Evaluation: Optional, Vergleich der Implementierung oder des Lösungsweges mit anderen Ansätzen, Experimente, Auswertung, Bewertung.
  8. Zusammenfassung, Fazit, Ausblick: Fasst die Probleme und vor allem die aufgezeigten Lösungen/Ergebnisse zusammen und beschreibt als Ausblick auch Erweiterungsmöglichkeiten, Schließt mit einem knappen und für die Arbeit aussagekräftigen Fazit.

 

Akronyme

  • Das Akronympaket ist zu verwenden (z.B. \ac{kieler}).
  • Indentierung bei Akronymverzeichnis ist einheitlich und linksbündig zu gestalten.
  • In Überschriften (gilt auch für Bildunterschriften) explizit die Langform verwenden (\acl). Achtung: Hier darauf achten, daß das Akronym im Text dennoch eingeführt wird!
  • Ausnahmeregelung: Allgemein bekannte Abkürzungen wie GUI. Hier die Langform gar nicht verwenden.
  • Akronyme konsistent halten.
  • Allgemein übliche Akronyme nicht so üblichen Akronymen vorziehen.
  • Akronyme niemals trennen.

Abbildungen und Listings

 

  • Größe: Nicht unter 80% der Seitenbreite, möglichst 100% (Textbreite ausnutzen!)
  • Ähnliche Abbildungen sollten auch vergleichbar/gleich groß sein.
  • Schriftgröße in Abbildungen sollte ca. der Schriftgröße des Textes entsprechen.
  • Wenn Textteile der Abbildung im Text zitiert werden, ist auf ein konsistentes Schriftbild zu achten, ggf. \sf verwenden.
  • Abbildungen immer mit Nummer und sinnvoller Überschrift versehen.
  • Überschrift abstrakt und so kurz wie möglich, so lang wie nötig halten (es sollte ohne Lesen des Textes verständlich sein, was die Abbildung zeigt).
  • Diagramme sollten i.d.R. eine Legende haben (Bedeutung von Farben/Formen nicht nur im Text erläutern).
  • Abbildungen immer in der selben Reihenfolge im Dokument anordnen, in welcher sie im Text referenziert werden.
  • Abbildungen möglichst immer in der Nähe des erklärenden Textes anordnen.
  • Jede Abbildung muss auch beschrieben werden.
  • Autolayout einsetzen für entsprechende Diagrammtypen (z.B. Klassendiagramm).
  • Einheitliche Schriftgröße für alle Listings verwenden.
  • Akronyme in Bildunterschriften s.o.
  • Listings in Figures vermeiden (dies kann zu speziellen Latex-Problemen führen)
  • Für Listings gilt allgemein entsprechendes.

 

Verweise

  • Bezeichnung sollte korrekt sein: z.B. Kapitel 2, Unterkapitel 2.1, Abschnitt 2.3.4, Absatz
    • Nicht: z.B. Kapitel 2.1
  • Rückwärtsverweise sind ok, Vorwärtsverweise sind zu vermeiden.
  • Zu viele Verweise stören den Lesefluss, wichtige Dinge sollten an geeigneter Stelle auch (evtl. kürzer) wiederholt werden.
  • Abbildungen/Tabellen immer konkret benennen.

 

Allgemeine Syntax

  • Doppelpunkt als Teil des Satzes auffassen; nach : sollte kein neuer Absatz beginnen.
  • Hervorheben von Wörtern (\emph{}) möglichst selten einsetzen (s.o.).
  • Fremdsprachenwörter kursiv hervorheben.
  • Klammern vermeiden, sie stören den Lesefluss.
  • Fußnoten vermeiden, sie stören den Lesefluss.
  • Fußnoten für URLs sind ok.
  • Möglichst auf Querseiten verzichten, sie stören den Lesefluss.
  • Keine Einzelzeilen oder Überschriften vor oder nach einem Seitenumbruch stehen lassen.
  • Es sollten keine Zeilen oder Abbildungen/Tabellen über den Rand hinausragen.
  • Auf unnötigen Whitespace verzichten.
  • Codefont für Funktionsnamen/Prozeduren/... verwenden und auch hier auf Konsistenz achten.
  • LaTeX kennt keine Abkürzungs-Punkte. Z.B. Bei "e.g." oder "et al." ein xspace hinter dem letzten Punkt verwenden, da ansonsten ein zu großer Abstand zum nächsten Wort erzeugt wird (wie beim Satzende).

 

Inhaltliches und Stilistisches

  • Füllwörter, Füllphrasen und Füllsätze vermeiden, z.B.
    • due to the fact that
    • in order to
  • Zusammenhänge: "It" oder "This" vermeiden, wenn der Zusammenhang nicht wirklich eindeutig klar ist. In der Regel lieber den Bezug noch einmal explizit zum Ausdruck bringen.
  • Passiv in Sätzen nach Möglichkeit vermeiden:
    • Schlecht: „The syntax is explained in Chapter 5“
    • Gut: „Chapter 5 explains the syntax“
  • Wir/Ich-Sätze vermeiden. Ausnahme: Es geht um den inhaltlichen Kernbeitrag.

 

Anhang

  • Wesentliche Teile, die im Text wichtig sind, nicht im Anhang verstecken.
  • Anleitungen (z.B. How-Tos) gehören in den Anhang.

Technische Umsetzung

Editor/IDE

Prof. von Hanxleden would recommend Emacs as a very flexible and powerful Latex editor. Hauke (haf) recommends Texlipse as an easy-to use and also powerful Eclipse plug-in. Christoph Daniel (cds) recommends using Kile, a KDE LaTeX editor that is fast, powerful, and reasonably easy to understand and to use.

Using Git

The files associated with the thesis should be kept in the group's Git repository. The main purpose is to prevent loss of data. It also facilitates access for fellow group members if needed, and to allow on-line publication.

The main tex file for a thesis should be <name of directory>.tex. See also Git/Structure for the canonical naming scheme. Eg, the bachelor thesis of user xyz can be found in a repository named xyz-bt in the Thesss project of our  Gitorious system, in a file named xyz-bt.tex. If there is a talk to "defend" the thesis (Bachelor-Kolloquium, Disputation), the talk should also be included in this repository, and should be named <name of directory>-talk.tex; eg xyz-bt-talk.tex. In case your thesis should be made available on-line, the same names should be used, eg, xyz.pdf.

See also the notes on preparing a paper, eg regarding which files should be kept in revision management (ie, should be checked into Git) and which shouldn't.

Das LaTeX-Paket ifiseries

Für die Ausarbeitung studentischer Arbeiten empfehlen wir, das LaTeX-Paket  ifiseries zu benutzen. Es ist einfach einzubinden, bringt das meiste mit was man benötigt und wird regelmäßig gepflegt. Auf der verlinkten Webseite gibt es dazu weitere Informationen; insbesondere das  dort verlinkte Manual sollte man einmal durchlesen um sich mit den Funktionen und der Einbindung des Pakets vertraut zu machen.

Bei Fragen zur Benutzung möge man sich vertrauensvoll an einen der Lehrstuhlmitarbeiter wenden.

Das ToDo-Paket

Es kommt häufig vor dass man sich während des Schreibens Anmerkungen zum Text machen oder Dinge später hinzufügen möchte. Damit dies einfacher zu verwalten ist, steht ein extra ToDo-Paket zur Verfügung. Mit diesem Paket lassen sich Platzhalter für Grafiken, Anmerkungen zum Text in verschiedenen Farben oder einfache ToDo-Kommentare mit Referenz zum Text schnell und unkompliziert realisieren. Eingebunden wird das Paket wie folgt.

 \usepackage{todonotes}

Eine kurze, detaillierte Anleitung kann man hier nachlesen:

 http://www.tex.ac.uk/tex-archive/macros/latex/contrib/todonotes/todonotes.pdf

Die Erstellung einer Bibliographie

Zur Erstellung einer Bibliographie mit LaTeX ist das Beispiel-Dokument zu Rate zu ziehen. Die dort benutzte BibTeX-Datenbank cau-rt.bib wird Lehrstuhl-weit von Mitarbeitern und Studenten gemeinsam benutzt um Literatur-Daten zu sammeln und zu publizieren. Alle Literaturdaten, die in studentischen Arbeiten anfallen, müssen also in dieser Datei verwaltet werden. Wichtig: Bitte vermeiden Sie bibtex-Warnungen beim Hinzufügen von neuen Einträgen! Weitere Hinweise zur Beachtung finden sich hier

Das Erstellen eines deutschsprachigen Literaturverzeichnisses ist mit Hilfe des Paketes bibgerm und dem bibliographystyle gerplain möglich.

 \usepackage[ngerman]{babel}
 \usepackage{bibgerm}
  .
  .
  .
 \bibliographystyle{gerplain}

Links zu BibTeX:

Arbeit innerhalb des Lehrstuhl-Netzwerkes

Beim Arbeiten im Lehrstuhl-Netzwerk werden keine zusätzlichen Maßnahmen notwendig; der LaTeX-Zugriff auf die BibTeX-Datenbank ist automatisch über das Netzwerk gewährleistet. Für verändernde Zugriffe auf die Datenbank muss mit Subversion gearbeitet werden.

Arbeit außerhalb des Lehrstuhl-Netzwerkes

Beim Arbeiten außerhalb des Lehrstuhl-Netzes wird es notwendig die Datenbank dem lokal installierten LaTeX-System zur Verfügung zu stellen. Eventuell muss die dazugehörige kpse-Datenbank reinitialisiert werden. Für verändernde Zugriffe auf die Datenbank muss mit Git gearbeitet werden.

Zugriff auf das Git-Repository der BibTeX-Datenbank

Für Zugriff auf das Git-Repository der BibTeX-Datenbank ist folgender Befehl zu verwenden

git clone git@…:resources/bib.git

Nach dem Auschecken des Moduls bib steht die Datei cau-rt.bib zur Verfügung. Hinweise zur genauen Syntax sind dem Kopf der Datei und den Beschreibungen der BibTeX-Sprache zu entnehmen.

Publishing the thesis on-line

If your advisor has agreed that your thesis should be made available on-line, and you have signed your  consent, then you can publish this as follows. Say your thesis is xyz-bt.pdf. ("bt" for Bachelor theses, "mt" for Master theses, "diss" for dissertations.) To upload this, use the command

scp xyz-bt.pdf biblio@…:/home/biblio/public_html/downloads/theses

If you don't have the right permissions to do this, ask your advisor or the System Administrator to publish this for you.

Then, check that your thesis is indeed available under the URL

 http://rtsys.informatik.uni-kiel.de/~biblio/downloads/theses/xyz-bt.pdf

Note: The name of this file should follow the canonical naming scheme used in subversion (Subversion/Structure ), even if your thesis is for some reason not in the subversion system.

Source Code

Von Ihnen im Laufe der Arbeit entwickelte Software (oder Hardware-Beschreibungen) sind Teil Ihrer Arbeit. Dies bedeutet: Die Software sollte als Listing in Ihrer Ausarbeitung erscheinen; typischerweise (wenn es sich um mehr als ca. zwei Seiten handelt) als Anhang, mit angemessen kleiner Schriftgröße, evt. zweispaltig. Es sollte eine Übersicht über die Software in geeigneter Form gegeben werden, z.B. in Form von Klassendiagrammen mit Erläuterungen. Hinweise zum Einbinden von Code in LaTeX finden sich in dem Beispieldokument (s.o.).

Hinweise zur Benotung

Die Benotung studentischer Arbeiten richtet sich zunächst nach der jeweils anzuwendenen Studienordnung; für eine Diplomarbeit im Diplomstudiengang Informatik sieht z.B. §20(2) der Diplomprüfungsordnung vor: „Die Diplomarbeit ist von der Lehrkraft, die sie ausgegeben hat und einer oder einem weiteren Prüfungsberechtigten zu beurteilen.“

Zur Beurteilung einer Diplomarbeit wird generell ein schriftliches Gutachten erstellt, welches die jeweilige Arbeit individuell würdigt (incl. Note) und an das Prüfungsamt weitergeleitet wird. Es hängt dabei von der jeweiligen Aufgabenstellung ab, welche Leistungen im Einzelfall erwartet werden; so sind z.B. die Anforderungen hinsichtlich der konkreten Umsetzung bei einer stark anwendungsbezogenen Arbeit anders als bei einer eher theoretischen Arbeit. Gewisse Anforderungen und Erwartungen hinsichtlich der Qualität der Arbeit und der Vorgehensweise des Studierenden sind jedoch allgemein gültig, und z.T. auch bereits in der jeweiligen Prüfungsordnung konkret genannt. So sieht z.B. §19(1) der Diplomprüfungsordnung vor: „Die Diplomarbeit [...] soll zeigen, dass die Kandidatin oder der Kandidat in der Lage ist, innerhalb einer vorgegebenen Frist ein Problem aus dem Fach Informatik selbständig nach wissenschaftlichen Methoden zu bearbeiten.“ Hier sind also bereits drei Kriterien genannt (Fristeinhaltung, Selbständigkeit, Wissenschaftlichkeit). Ein etwas detaillierterer Kriterien-/Bewertungskatalog ist in den beiden folgenden Tabellen angegeben. Diese sind zunächst für Diplomarbeiten ausgelegt, finden aber - mit entsprechenden Abwandlungen - auch für Studien-, Bachelor- und Masterarbeiten Anwendung.

Merkmal    Punkte
Qualität der LösungLediglich Lösungsansätze; geringes Vertrauen in die LösungLösung von TeilproblemenVollständige Lösung; gutes Vertauen in die LösungVollständige, gute Lösung und Behandlung zusätzlicher Fragestellungen 
Punkte1 - 78 - 1415 - 2122 - 28max. 28
Wissenschaftliche ArbeitstechnikSystemlose Durchführung; nur Literatur aus dem engsten UmfeldEntwicklung einer Systematik erst nach Drängen des Betreuers; geringes LiteraturvolumenSelbständige Aufarbeitung der relevanten Literatur; grobe Einordung der Ergebnisse in das wissenschaftliche UmfeldSelbständige und strukturierte Erfassung des Standes der Technik und der Literatur; systematische Einordung der Ergebnisse
Punkte1 - 67 - 1213 - 1819 - 24max. 24
Anwesenheit und Interaktion mit BetreuerSelten anwesend, Interaktion nur auf Initiative des Betreuers; schwer erreichbar; weist nicht auf Probleme hinUnregelmäßige Interaktion, jedoch generell erreichbar und häufig anwesendRegelmäßige, selbst initiierte Interaktion; Stand der Arbeit generell nachvollziehbarInformiert Betreuer regelmäßig über Stand der Arbeit; weist umgehend auf aufgetretene Probleme oder erreichte Zwischenziele hin; regelmäßige Anwesenheit
Punkte1 - 45 - 89 - 1213 - 16max. 16
Eigeninitiative und ZielstrebigkeitGeht schwierigen Problemen aus dem Weg; mangelnder zeitlicher Einsatz; Zeitplan wird deutlich überzogenTeilweise Eigeninitiative; Zeitplan im Wesentlichen eingehaltenZiel wurde mit großer Eigeninitiative erreicht; Zeitplan wurde eingehaltenEigeninitiative bei der Entwicklung der Thematik, auch bei schwierigen Problemen; Zielbewusste Zeiteinteilung
Punkte1 - 45 - 89 - 1213 - 16max. 16
Qualität der AusarbeitungAusarbeitung mit schweren Mängeln: fehlende Systematik, Schreibfehler, schlechtes Deutsch, unübersichtliche Verzeichnisse usw.Nur teilweise systematische Darstellung der Ergebnisse; Weitschweifigkeiten oder Knappheiten, aber akzeptable GestaltungSystematische, einleuchtende Gliederung, aber leichte Schwächen in Sprache und GestaltungSystematische Gliederung, flüssige Sprache, Bilder mit klarer Aussage, deutliche Darlegung der Zusammenhänge und Ergebnisse
Punkte1 - 45 - 89 - 1213 - 16max. 16
    Summemax. 100

Die Umrechnung einer Punktzahl in eine Zensur ergibt sich unter Anwendung dieses Katalogs aus der folgenden Tabelle.

Note1,01,31,72,02,32,73,03,33,74,0
Mindestpunktzahl96888072645648403224

Weiterführende Hinweise

  • Eine sehr zu empfehlende, einführende Veranstaltung zur Präsentation und Erstellung wissenschaftlicher Arbeiten („Dokumentieren und Präsentieren“) bietet regelmäßig (ca. alle zwei Jahre) Prof. Luttenberger am Lehrstuhl für  Kommunikationssysteme an.
  • „Einige typographische Grundregeln und ihre Umsetzung in LaTeX“ von  Werner Struckmann (TU Braunschweig),  PDF
  • „Anmerkungen zur Rechtschreibung“ von  Werner Struckmann (TU Braunschweig),  PDF
  • Falls Sie die Arbeit auf englisch verfassen: eine Reihe guter Ratschläge und weiterer Querverweise (wie z.B. den klassischen Strunk & White) finden sich auf  Henning Schulzrinnes Seite „ Writing Technical Articles“.
  •  Wie schreibe ich eine gute Diplomarbeit? - Eine Anleitung der Uni-Oldenburg, z.T. spezifisch für Oldenburg; auch dort gibt es noch weiterführende Links.
  • No labels