Informatik-Berichte und die KI-Erkennung: Code, Pseudocode und die Prosa dazwischen

Ein Fachbericht in der Informatik sind zwei Dokumente, die zusammengeheftet wurden. Eines davon wird gemessen. Das andere besteht aus Werten – und es ist das, was eine Überarbeitung unbemerkt kaputt machen kann.

HumanPen-Team

· 12 Min. Lesezeit

Die kurze Antwort

Die veröffentlichte Position von Turnitin zu Code ist kurz und eindeutig: Das Modell „does not reliably detect AI-generated text in the form of non-prose, or code" (KI-generierten Text in Form von Nicht-Prosa oder Code erkennt es nicht zuverlässig), und in der FAQ heißt es ergänzend, Turnitin sei „not pursuing ChatGPT code detection at this time." (die Erkennung von ChatGPT-Code wird derzeit nicht verfolgt). Ihre Listings, Ihre Pseudocode-Blöcke und Ihre Terminal-Auszüge sind also nicht das, worum es bei dem KI-Prozentwert geht. Es geht um die Absätze dazwischen – und das sind in einem Informatik-Bericht die Design-Begründung, der Algorithmus-Durchgang, die Komplexitätsanalyse und die Auswertungsdiskussion. Genau diese Absätze sind zugleich die gleichförmigsten Stellen des Dokuments, weil gutes technisches Schreiben gleichförmig sein soll.

Unabhängig davon gilt: Was Ihr Fachbereich Ihnen zu erstellen erlaubt, legt dessen Richtlinie zur akademischen Integrität fest – nicht das, was ein Detektor misst. Die eine Frage beantwortet zu haben heißt nicht, die andere beantwortet zu haben. Wer beide für dieselbe Frage hält, landet genau deshalb in einem Gespräch.

Was Turnitin über Code tatsächlich sagt

Zwei Sätze tragen die ganze Aussage. Der erste steht in der Definition der FAQ zu dem, was analysiert wird:

"The model does not reliably detect AI-generated text in the form of non-prose, or code, nor does it detect short-form/unconventional writing such as bullet points (short non-sentence structures)." (Das Modell erkennt KI-generierten Text in Form von Nicht-Prosa oder Code nicht zuverlässig und erkennt ebenso wenig Kurzformen oder unkonventionelles Schreiben wie Aufzählungspunkte – kurze Strukturen, die keine Sätze sind.)

Lesen Sie noch eine Zeile weiter, denn dort wird es brauchbar:

"This means that a document containing several different writing types would result in a disparity between the percentage and the highlights." (Das bedeutet, dass ein Dokument mit mehreren verschiedenen Textarten zu einer Abweichung zwischen dem Prozentwert und den Hervorhebungen führt.)

Ein Informatik-Bericht ist schon vom Aufbau her ein Dokument mit mehreren verschiedenen Textarten; diese Abweichung ist für dieses Genre also der Normalzustand und keine Anomalie. Der Leitfaden zum Bericht formuliert denselben Ausschluss mit einer längeren Liste: Neben Code nennt er Gedichte und Skripte, und auf der Seite der Kurzformen ergänzt er Tabellen und annotierte Bibliografien.

Der zweite Satz kursiert meist ohne seinen Zusammenhang, deshalb lohnt es sich zu sagen, wo er steht: Er ist die letzte Zeile der Antwort auf „Why is AI detection not being added to Gradescope?" (Warum wird die KI-Erkennung nicht in Gradescope eingebaut?), und diese Antwort lautet, Turnitin habe „not currently have plans to add these capabilities to Gradescope, since the primary use case for Gradescope is handwritten text while for AI detection we're focusing on typed text" (derzeit keine Pläne, diese Funktionen Gradescope hinzuzufügen, da der Hauptanwendungsfall für Gradescope handschriftlicher Text ist, während man sich bei der KI-Erkennung auf getippten Text konzentriert), und weiter: „In addition, we are not pursuing ChatGPT code detection at this time." (Außerdem verfolgen wir die Erkennung von ChatGPT-Code derzeit nicht.)

Das ist für die Informatik wichtiger als für jedes andere Fach, denn Gradescope ist der Ort, an dem viele Programmieraufgaben eingereicht werden. Wenn Ihre Implementierung zu einem Autograder geht und Ihr schriftlicher Bericht zu einer Turnitin-Aufgabe, dann sind das zwei Pipelines mit unterschiedlichen Aufgaben – und der KI-Schreibanteil, den Sie am Ende sehen, wurde auf der zweiten berechnet. Welches Turnitin-Produkt die KI-Erkennung hat behandelt die Lizenzseite dieser Trennung.

Welche Teile Ihres Berichts Prosa sind – im hier gemeinten Sinn

Die Definition steht im Leitfaden zum Bericht, und ihre Beispiele lohnen einen Blick:

"Qualifying text (prose sentences contained in long-form writing format) means individual sentences contained in paragraphs that make up a longer piece of written work, such as an essay, a dissertation, or an article, etc." (Als qualifizierender Text – Prosa-Sätze in einem Langtextformat – gelten einzelne Sätze in Absätzen, die ein längeres schriftliches Werk bilden, etwa einen Aufsatz, eine Dissertation oder einen Artikel usw.)

Ein Aufsatz, eine Dissertation, ein Artikel. Ein Projektbericht, der im Ton einer API-Referenz geschrieben ist, ist keines der drei, und Turnitin veröffentlicht keine Entscheidung dazu. Veröffentlicht wird der Satz-Test; hier ist er, einzeln auf jedes Element angewandt. Das ist unsere Zuordnung, nicht die des Anbieters.

Element eines Informatik-BerichtsSätze in Absätzen?Anmerkungen
Einleitung, Problemstellung, verwandte ArbeitenJaGewöhnliche akademische Prosa
Design-Begründung: warum Sie sich für die eine Struktur und gegen eine andere entschieden habenJaMeist der am stärksten argumentierende Teil der Datei
Algorithmus-Durchgang in WortenJaHier landen die Hervorhebungen meist
Absätze zur KomplexitätsanalyseJa, wenn als Sätze geschriebenEine Zeile, die nur aus `O(n log n)` und je einem Symbol davor und dahinter besteht, ist kein Satz
Pseudocode-BlockNeinZeilenstruktur, keine vollständigen Sätze
Quellcode-ListingNeinIn der Ausschluss-Formulierung des Anbieters ausdrücklich genannt
Terminal-Auszug, Log-Ausgabe, StacktraceNeinKeine Prosa – und auch nicht das, was Sie umformulieren sollten
Installations- oder Build-Anweisungen als nummerierte BefehleNeinAufzählungspunkte und kurze Strukturen ohne Satzcharakter sind ausgeschlossen
Referenzeinträge zu Funktionen oder EndpunktenKommt darauf an, wie Sie sie geschrieben haben„Gibt den geparsten Token-Strom zurück." ist ein Satz; eine zweispaltige Parametertabelle ist keiner
Auswertungstabellen mit Laufzeiten und GenauigkeitZahlen: neinEin Release-Hinweis vom 9. August 2023 sagt, dass Langtext-Prosa innerhalb von Tabellenzellen verarbeitet wird und dass bestehende Einreichungen zur erneuten Verarbeitung noch einmal eingereicht werden müssen
Diskussion der Ergebnisse, Einschränkungen, weitere ArbeitJaVom Anfang bis zum Ende Prosa
LiteraturverzeichnisAusgeschlossenDerselbe Release-Hinweis sagt, dass Literaturverzeichnisse ausgeschlossen werden, wenn der KI-Schreibbericht verarbeitet wird

Aus dieser Tabelle folgen zwei Konsequenzen. Ihr Nenner ist klein, der Prozentwert ist also eine Aussage über einen Ausschnitt der Datei und nicht über die Datei – die FAQ sagt das mit denselben Worten: "This percentage is not necessarily the percentage of the entire submission. If text within the submission is not considered long-form prose text, it will not be included." (Dieser Prozentwert ist nicht notwendigerweise der Prozentwert der gesamten Einreichung. Wenn Text innerhalb der Einreichung nicht als längere Prosa gilt, wird er nicht einbezogen.) Und wenn der Bericht viele Listings enthält, kann so wenig qualifizierender Text übrig bleiben, dass das Alles-oder-Nichts-Verhalten kurzer Dokumente relevant wird. In den Dateianforderungen heißt es, eine Einreichung brauche "at least 300 words of prose text in a long-form writing format" (mindestens 300 Wörter Prosa in einem Langtextformat), damit überhaupt ein Bericht entsteht.

Die gemessene Prosa ist die gleichförmigste Prosa, die Sie schreiben

Turnitin veröffentlicht eine Beschreibung dessen, was seine Fehlalarme gemeinsam haben:

"Sometimes false positives (incorrectly flagging human-written text as AI-generated), can include content without a lot of structural variation, text that literally repeats itself, or text that has been paraphrased without developing new ideas." (Manchmal können zu Fehlalarmen – also menschlich geschriebenem Text, der fälschlich als KI-generiert markiert wird – Inhalte ohne große strukturelle Abwechslung gehören, Text, der sich wörtlich wiederholt, oder Text, der umformuliert wurde, ohne neue Gedanken zu entwickeln.)

Und der nächste Satz richtet sich eher an die Person, die Ihre Arbeit bewertet, als an Sie:

"If our indicator shows a higher amount of AI writing in such text, we advise you to take that into consideration when looking at the percentage indicated." (Wenn unser Indikator bei einem solchen Text einen höheren Anteil an KI-Schreiben anzeigt, empfehlen wir Ihnen, das bei der Betrachtung des angezeigten Prozentwerts zu berücksichtigen.)

Lesen Sie diese beiden Eigenschaften nun gegen ein gut geschriebenes technisches Dokument. Strukturelle Abwechslung ist genau das, was ein Referenzabschnitt bewusst entfernt: Jede Funktion bekommt dasselbe Gerüst – erst der Name, dann die Parameter, dann der Rückgabewert, dann die Fehlerfälle –, damit jemand, der das Gerüst einmal gelernt hat, den Rest überfliegen kann. Etwas zweimal gleich zu sagen ist genau die Art, wie Sie einem Leser mitteilen, dass zwei Komponenten sich gleich verhalten. Ein Stilratgeber, der Ihnen sagte, Sie sollten die Form jedes Eintrags variieren, wäre ein schlechter Stilratgeber.

Dieselbe Form zeigt sich im Algorithmus-Durchgang, aus einem anderen Grund. Dieser Abschnitt sagt meist noch einmal in Worten, was das Listing darüber schon sagt. Etwas noch einmal zu sagen hat stilistisch nirgendwohin zu gehen. Jeder Schritt beginnt mit dem Schritt, jeder Satz hat dasselbe Subjekt, und der Absatz ist ein Protokoll des Kontrollflusses.

Zwei ehrliche Grenzen dieser Argumentation. Turnitin nennt keine Häufigkeit für diese Eigenschaften, sondern nur eine Liste dessen, was Fehlalarme „can include" (enthalten können); niemand kann Ihnen also sagen, wie viel des Effekts darauf zurückgeht. Und das Verhalten des Modells ist kein Regelwerk, aus dem sich rückwärts schließen ließe: Die FAQ sagt "Our model is not explicitly programmed to evaluate specific signals such as 'burstiness,' 'perplexity,' or other individual metrics sometimes referenced in public discussions." (Unser Modell ist nicht ausdrücklich darauf programmiert, einzelne Signale wie 'burstiness,' 'perplexity,' oder andere in öffentlichen Diskussionen genannte Einzelmetriken zu bewerten.) Der Mythos von Perplexity und Burstiness hat die ausführlichere Fassung, einschließlich des Satzes an anderer Stelle derselben Seite, der Sie davor bewahrt, diesen einen zu überinterpretieren.

Die Hälfte der Datei, die aus Werten besteht

Hier ist die Asymmetrie, die Informatik-Berichte von Aufsätzen unterscheidet. Der von der Messung ausgenommene Inhalt ist keine träge Hintergrundmasse. Es ist der Teil des Dokuments, in dem ein einziges verändertes Zeichen das Dokument falsch macht – und eine Überarbeitung liest ihn, ganz gleich, ob ihn jemand bewertet.

InhaltWarum das ein Wert ist und keine FormulierungWas eine plausibel klingende Umformulierung kostet
Bezeichner und ihre Schreibweise: `getUser` gegen `get_user`Der Name ist es, was aufgelöst wirdDie Prosa nennt nun eine Funktion, die Ihr Code nicht definiert
Kommandozeilen-Flags, `--max-workers=8`Ausführbarer Text„das Flag für die maximalen Worker auf acht gesetzt" lässt sich nicht in eine Shell einfügen
Pfade und Modulnamen, `src/parser/tokenizer.py`Er verweist auf eine reale Stelle im ProjektNiemand findet die Datei mehr
Versionen, `Python 3.11`, `CUDA 12.4`ReproduzierbarkeitEine Umgebung, die niemand mehr nachbauen kann
Komplexitätsangaben, `O(n log n)`, amortisiert `O(1)`Eine Behauptung, hinter der ein Beweis steht„etwa linear" ist eine schwächere und andere Behauptung
Zitierte Fehlermeldungen und Exit-CodesEin Zitat dessen, was das Programm ausgegeben hatEs ist kein Zitat mehr
Endpunkt- und Methodennamen, `POST /v1/jobs`Eine SchnittstellenvereinbarungEine Anfrage, die 404 zurückgibt
Seeds, Hyperparameter, Aufteilung des DatensatzesDie Grundlage Ihrer ZahlenErgebnisse, die niemand reproduzieren kann – Sie eingeschlossen

Es gibt ein zweites Versagen, das schwerer zu sehen ist, weil das Ergebnis sich völlig lesbar liest. Ein technisches Dokument gibt einem Konzept einen Namen. Wenn eine Überarbeitung in Abschnitt 3 `hash map` stehen lässt und in Abschnitt 4 `dictionary` für dasselbe Objekt, oder wenn zwischen `worker` und `thread` abgewechselt wird, sagt das Dokument nicht mehr, ob das ein und dasselbe ist oder zweierlei – und wer die Arbeit bewertet, kann das nicht klären, ohne Ihren Code zu lesen. Das ist ein Schaden am Dokument, und auch hier spielt kein Messwert eine Rolle. Es lohnt sich, das auszusprechen, denn es läuft einer Gewohnheit zuwider, die Ihnen sonst überall nützt: In den meisten Texten ist ein definierter Begriff eine Wortwahl, in diesem Genre ist er näher an einem Bezeichner.

Zehn Minuten Prüfen, in dieser Reihenfolge

Für keine dieser Prüfungen brauchen Sie Werkzeuge, die Sie nicht ohnehin offen haben.

  • Kopieren Sie jeden Befehl aus dem Dokument und führen Sie ihn in einem Wegwerf-Verzeichnis aus. Installationsanweisungen veralten als Erstes und werden als Letztes noch einmal gelesen.
  • Listen Sie die Bezeichner auf, die Ihr Code definiert, und suchen Sie im Dokument nach jedem einzelnen. Was im Code steht und im Dokument fehlt, ist eine Umbenennung, die ohne Sie stattgefunden hat.
  • Suchen Sie Ihre fünf wichtigsten Fachbegriffe heraus und prüfen Sie jeden einzeln. Ein Name pro Begriff, überall – oder korrigieren Sie es jetzt.
  • Lesen Sie jede Komplexitätsaussage gegen die Funktion, die sie beschreibt. `O(n log n)` und „effizient" sind nicht austauschbar, und nur eines von beidem lässt sich bewerten.
  • Gleichen Sie alles in Anführungszeichen mit einem echten Lauf ab. Log-Zeilen und Fehlermeldungen sind Zitate.

Wo tatsächlich Spielraum ist

Wenn der markierte Block Ihr Algorithmus-Durchgang ist, gibt es eine Frage, die sich lohnt, bevor Sie die Sätze anfassen: Tut dieser Abschnitt überhaupt etwas, was das Listing darüber nicht schon tut? Ein Durchgang, der nur die Variablen umbenennt und zwischen die Schritte ein „dann" setzt, ist in einem Bericht doppelter Inhalt – ganz gleich, was ein Detektor dazu sagt. Die Version, die ihren Platz verdient, erklärt, warum die Schleife so aufgebaut ist, welche Alternative es gab und wo sie zusammenbricht.

Das ist auch die Stelle, an der Ihr Schreiben irgendwo hingehen kann. Design-Begründung, verworfene Alternativen, der Bug, der zwei Tage gekostet hat, was der Benchmark nicht misst, die Einschränkung, die Sie mit einer weiteren Woche beheben würden. Diese Absätze variieren in ihrer Form, weil das Denken darin variiert. Abschnitte im Referenzstil tun das nicht – und sollten es auch nicht.

Man sollte die Grenzen dieses Rats ehrlich benennen: Ich beschreibe, was einen Bericht besser lesbar und leichter zu beurteilen macht. Niemand – uns eingeschlossen – kann Ihnen sagen, was das mit einer Zahl macht. Turnitin veröffentlicht weder die Pooling-Funktion noch die Segmentlänge und warnt, das eigene Modell "may not always be accurate (it may misidentify human-written, AI-generated, and AI-paraphrased text), so it should not be used as the sole basis for adverse actions against a student." (sei nicht immer zutreffend – es könne menschlich geschriebenen, KI-generierten und KI-umformulierten Text falsch einordnen – und solle daher nicht als alleinige Grundlage für nachteilige Maßnahmen gegen einen Studierenden dienen).

Wenn Sie die Prosa überarbeiten

Warum sich ein Informatik-Bericht langsam überarbeiten lässt, hat wenig mit Sätzen zu tun. Ein umgeschriebener Absatz kann vier Bezeichner, ein Flag und eine Versionsnummer tragen, und jedes davon muss gegen den Code zurückgeprüft werden, bevor Sie dem Absatz trauen können. Rechnen Sie die Kosten in berührten Absätzen.

Deshalb verlangt Das Tool HumanPen, dass Sie den Umfang zuerst benennen. Laden Sie das Dokument hoch, markieren Sie dann entweder die Textstellen, oder importieren Sie einen KI-Bericht von Turnitin oder iThenticate und lassen Sie dessen markierte Stellen die Grenze ziehen. Alles außerhalb bleibt unangetastet, was in diesem Genre heißt: Ihre Listings und Ihre Befehlsblöcke nehmen überhaupt nicht am Durchgang teil, es sei denn, Sie tun sie hinein. Die Engine geht nicht unterhalb eines Absatzes, eine Auswahl, die mitten im Absatz endet, wird also auf den ganzen Absatz erweitert und Ihnen vorher zur Bestätigung angezeigt, und die Credits zählen die tatsächlich umgeschriebenen Wörter. Die Terminologie steht auf der Liste dessen, was neben Struktur, Zitaten und Layout bewahrt werden soll. Textstellen, die danach noch markiert sind, können kostenlos erneut umgeschrieben werden, wo die Bedingungen dafür erfüllt sind.

In der FAQ des Tools gibt es einen Hinweis dazu, komplexe Dokumente nach dem Download zu prüfen. Bei einem Bericht voller Bezeichner heißt das: die Checkliste aus dem vorigen Abschnitt, nicht ein Durchlesen. Was bei einem Round Trip kaputtgeht – Felder und Querverweise eingeschlossen –, steht auf Dokumentebene in Word-Felder, Inhaltsverzeichnisse und Querverweise.

Häufig gestellte Fragen

Erkennt Turnitin KI-generierten Code? Turnitin sagt, das Modell erkenne KI-generierten Text in Form von Nicht-Prosa oder Code nicht zuverlässig, und die FAQ sagt, die Erkennung von ChatGPT-Code werde derzeit nicht verfolgt. Das ist eine Aussage darüber, was dieser Bericht misst. Es ist keine Aussage darüber, was Ihre Institution erlaubt – das steht in einem anderen Dokument, das Sie lesen sollten.

Wird mein Pseudocode-Block bewertet? Die veröffentlichte Regel lautet, dass das Modell Prosa-Sätze innerhalb von Absätzen analysiert, und Kurzformen sowie Strukturen ohne Satzcharakter werden als Dinge aufgeführt, die es nicht erkennt. Ein Pseudocode-Block ist zeilenstrukturiert, nicht satzstrukturiert. Der Absatz, der ihn einführt, ist Prosa.

Warum konzentrieren sich die Hervorhebungen so auf einen Abschnitt? Teils Arithmetik: Wenn der größte Teil Ihrer Datei ausgenommen ist, können Hervorhebungen nur in dem erscheinen, was übrig bleibt. Turnitin beschreibt außerdem, dass überlappende Segmente bewertet und die Werte zusammengefasst werden; gleichförmige Textpassagen erzeugen daher eher gleichförmige Ergebnisse als eine Streuung.

Mein Abschnitt zur Komplexitätsanalyse wurde markiert, und ich habe jedes Wort selbst geschrieben. Das kommt vor, und der FAQ-Absatz zu Fehlalarmen ist das, was Sie der Person vorlegen sollten, die Ihre Arbeit bewertet – insbesondere sein Schlusssatz, der dazu rät, die Eigenart des Textes beim Lesen des Prozentwerts einzubeziehen. Was er nicht leisten wird: die Urheberschaft zu klären, in keine der beiden Richtungen.

Mein Bericht besteht fast nur aus Listings und es wurde kein KI-Bericht erzeugt. Prüfen Sie die Untergrenze, bevor Sie von einem Fehler ausgehen. In den Dateianforderungen heißt es, eine Einreichung brauche mindestens 300 Wörter Prosa in einem Langtextformat, und ein listing-lastiger Bericht kann darunter bleiben, selbst wenn die Seitenzahl gesund aussieht. Die allgemeine Ausschlussliste steht in welche Inhalte die Turnitin-KI überspringt.

WEITERLESEN