Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

hamena314

Zerschmetterling

  • "hamena314" is male
  • "hamena314" started this thread

Posts: 2,032

Date of registration: Aug 31st 2003

Location: Hannover

Occupation: Informatikstudent (d'uh)

1

Tuesday, June 5th 2012, 10:46am

Programmcode zitieren? (Bachelor-, Master-, ... Arbeit)

Hey,

ich frage mich gerade, ob und ab wann man fremden Programmcode zitieren muss / sollte.
Derzeit schreibe ich an meiner Abschlussarbeit und habe es halt öfters, dass ich eine einzelne Zeile fremden Code übernehme.
Wenn die Zeile trivial ist (z.b. so oder ähnlich in der Dokumentation vorkommt) mag man drüber streiten, aber wenn in der einen Zeile eine aussergewöhnliche Idee steckt finde ich, müsste man das angeben.

Dann sieht mein Code allerdings so aus.

Java source code

1
2
3
4
5
6
7
Meine Programmierzeile
Fremde Programmierzeile <-- müsste u.U. zitiert werden
Meine Programmierzeile
Fremde Programmierzeile <-- müsste u.U. zitiert werden
Meine Programmierzeile
Fremde Programmierzeile <-- müsste u.U. zitiert werden
......


Das Problem gilt natürlich auch für größere Codeblöcke.

Die Frage ist auch, WIE man dann zitiert. Nur in der schriftlichen Ausarbeitung wie z.b. der Bachelorarbeit?
Oder bereits im Quelltext mit Kommentaren?
Oder in einer ganz anderen Form?

Allerdings hab ich jetzt bereits 5 verschiedene Leute gefragt und 5 verschiedene Meinungen gehört.
Gibts da einen Zitier-Knigge für?

PS: "Zeile" ist hier mit ungefähr einer Anweisung gemeint. Mir ist bewusst dass man ein komplettes Programm in einer Zeile schreiben kann.
Nicht der Wind bestimmt die Richtung, sondern das Segel! (Lao Xiang, China)

Emma

Mädchen

  • "Emma" is female

Posts: 40

Date of registration: Oct 7th 2011

2

Tuesday, June 5th 2012, 11:13am

Allerdings hab ich jetzt bereits 5 verschiedene Leute gefragt und 5 verschiedene Meinungen gehört.
Hehe. :D

Mein Vorschlag: Frag Deinen Betreuer. Er ist derjenige, der sich Deine Arbeit anguckt und beurteilt, also mach es doch einfach so wie er es für richtig hält.

kiLLroy

Alter Hase

  • "kiLLroy" is male

Posts: 436

Date of registration: Apr 21st 2008

Location: Hannover

Occupation: CTO

3

Tuesday, June 5th 2012, 4:45pm

Emmas Vorschlag finde ich gut. Der Betreuer ist ein guter Tie-Braker und wenn er keine richtige Aussage dazu treffen kann, dann ist es ihm egal bzw. es macht keinen(*) Unterschied wie du es nun machst.
(*) Ich würde mich als jemand der deinen Code lesen würde extrem darüber aufregen, wenn du in dem Code mit "Zitaten" anfängst. Egal wie die nun exakt aussehen (kurze einzilige Kommentare, Java-doc usw.). Also bei aller Liebe zur Angabe von Referenzen, aber das ist alles andere als positiv.

Ganz nebenbei: Im Prinzip regelt das die Lizenz, unter der der - von der verwendete - Code steht. Ich gehe aber mal davon aus, dass da keine so richtig angegeben ist bzw. der Code halt aus dem Institut (oder ähmliches) stammt und das deshalb nicht so genau genommen wurde.
Man hört ja oft verdammt gute Aussagen, prädestiniert für eine Signatur, aber jedes mal vergesse ich mir solche aufzuschreiben, darum steht hier dieser Mist...

Rick

Mädchen

  • "Rick" is male

Posts: 1,266

Date of registration: Mar 17th 2004

Location: ::1/128

Occupation: Forentroll

4

Tuesday, June 5th 2012, 5:36pm

Solange du den Code nicht veroeffentlichst, brauchst du dir darueber sowieso keine Sorgen zu machen.
In der Regel wird Code bei Arbeiten nicht mit veroeffentlich (Ausnahme koennen Pseudocode-Abschnitte im Anhang bilden), und dann sollte es unproblematisch sein.
Wenn du deinen Code doch veroeffentlcihst, musst du durch den sumpfigen Pfuhl der Softwarelizenzen waaten.
Das ist so ziemlich das widerlichste was es gibt, weil es gefuehlte 100 inkompatible Lizenzen gibt, und damit vermutlich zwei Zeilen von unterschiedlichen Projekten nie vereint werden koennen.

Generell wuerde ich einer Zeile gut geschriebenem Code vorwerfen, dass er nicht eine hinreichende Schoepfungshoehe enthaelt um zitierwuerdig zu sein.
Das ist als wuerdest du jedes Wort, in der Arbeit, die du schreibst, dass schonmal jemand gesagt hast, diesem als Zitat zuordnen.

Wenn du Codebloecke (idealerweise als Methoden/Funktionen) verwendest, dann kannst du in deren JavaDoc-header schreiben woher sie stammen.
Wer einen komplexen Vorgang in eine Zeile Code packt, hat keinen zitierwuerdigen Code geschafft (Ausnahmen moegen existieren, aber ich glaube nicht daran).

Betreuer fragen kann nicht schaden, aber da es vermutlich nicht um oeffentlich zugaenglichen Code geht, wird der auch nur sagen "Wurscht".

GLHF

Sometimes you've got to ask yourself: Is xkcd shitty today?

BenjaminH

Trainee

  • "BenjaminH" is male

Posts: 56

Date of registration: Jul 17th 2008

Location: Linden-Nord

Occupation: Wissenschaftlicher Mitarbeiter (DCSec/L3S)

5

Wednesday, June 6th 2012, 9:44am

<persönlicheMeinungErfahrung>
Also wenn es sich um Codeblöcke oder mehr handelt, dann solltest du das markieren. Die Markierung hat verschiedene Zwecke: Erstens, geh mal davon aus, dass der Code auch mal veröffentlicht werden könnte. Entsprechend muss man spätestens dann die Lizenzen von Fremdcode prüfen und gegebenenfalls dokumentieren. D. h. ein Verweis auf die Quelle (wie eine URL) würde später viel wert sein. Willst Du es noch besser machen, kommen Autor und falls bekannt der Lizenzname dazu. Zweitens, die Markierung zeigt den Re-use, der ja durchaus auch gewünscht ist, und schützt vor bösen Überraschungen, wenn man sonst deinen Code mal woanders wieder findet. Zu einem Projekt durfte ich als Betreuer das ganze mal tagelang von Hand nachholen und spreche daher vielleicht nicht von der optimalen Lösung aber aus Erfahrung. Auch wenn es eher Mühe macht, solltest du vielleicht nun schon klären, ob Veröffentlichungspläne existieren (hängt zwar auch vom Ergebnis ab), denn dann sollte mal gleich nur Code zusammen flunschen, der lizenztechnisch zueinander passt. Unterscheiden würde ich persönlich noch zwischen Code kopiert aus irgendwelchen HowTos (wie GUI-Programmierung-basics) oder Implementierungen von speziellen Features (NFC-Nutzung bei einem Android-Telefon) oder Implementierungen von kompletten Algorithmen. Das erste wäre in meinen Augen nachrangig, das zweite nett und hilfreich für Folgearbeiten und das dritte spätestens ein Muss. Zum Wie: am einfachsten in den Code-Kommentaren bzw. der Inline-Doku. Code kommt in der Ausarbeitung i.d.R. nicht vor, also auch die Quellenangabe nicht. Zeigst du in der Ausarbeitung jedoch besondere Code-Teile, muss auch dort die Quelle hin. Aber auch dort reicht es IMO im Code-Kommentar. Code-Stücke-Quellen im Quellenverzeichnis eher nein. Wobei zuletzt kann Fremdcode nicht abdruckwürdig für Deine Arbeit sein. Da gehört wenn dein Code hin. Wenn man das mit den Quellen von vornherein berücksichtigt, geht das ganz gut es auch richtig zu machen, wie ich zumindest bei einer sehr guten Abschlussarbeit schon sehen durfte.
</persönlicheMeinungErfahrung>
Es gibt nur eine bessere Sache als auf dem Wasser zu sein: Noch mehr auf dem Wasser sein.

This post has been edited 1 times, last edit by "BenjaminH" (Jun 6th 2012, 9:50am)