Eigenen Code für die Testate auswendig gelernt?

Prof. Karsten Weihe
Dozentin/Dozent
Beiträge: 1824
Registriert: 21. Feb 2005 16:33

Eigenen Code für die Testate auswendig gelernt?

Beitrag von Prof. Karsten Weihe » 8. Jul 2015 08:59

Hallo allerseits,

mich würde interessieren, wie viele von Ihnen den eigenen Code für die Praxistestate mehr oder weniger auswendig gelernt haben, und was genau Sie dazu bewogen hat, vielen Dank!

Nachtrag: Mir stellt sich zudem die Frage, ob dasselbe Problem auch bei anderen Formen von Praxistestaten (z.B. in der GdI I) ebenfalls auftritt, und wenn nein, warum nicht.

KW

Nullmann
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 139
Registriert: 21. Apr 2015 20:59

Re: Eigenen Code für die Testate auswendig gelernt?

Beitrag von Nullmann » 8. Jul 2015 10:39

Ich habe für die ersten beiden Testate meinen Quellcode so ziemlich auswendig gelernt. Deshalb habe ich auch das dritte, doppelt so große, Programmierpraktikum nicht mehr gemacht.
Der Grund dafür war bei mir die Angst, durch eine kleinen Fehler durch das komplette Testat zu rasseln. Dass ich eventuell vergesse, eine Zeile hin zu schreiben und dann anfangen muss umständliches Debugging zu begehen. Ja, ich hatte den Code selbst geschrieben. Das war aber auch schon ein paar Wochen vor dem Testat, besonders für die ersten Implementierungen. Und auch alle Gedankengänge, die ich beim Programmieren hatte, hätte ich dort nicht mehr so abrufen können. Besonders nicht ohne irgendwelche Hilfestellungen wie Kommentare oder gar dem Aufgabenblatt, welches man ja auch während der Bearbeitung selbst hatte.
Das Ergebnis war, dass ich beide Praxistestate innerhalb kürzester Zeit zwar bestanden habe, mir davor aber einen ziemlichen Stress gemacht habe.

Ich persönlich empfinde die "altmodische" Art der Testierung - die Erklärung des eigenen Codes - um einiges intuitiver und einfacher.

Nasdat
Neuling
Neuling
Beiträge: 7
Registriert: 18. Mai 2015 16:09

Re: Eigenen Code für die Testate auswendig gelernt?

Beitrag von Nasdat » 8. Jul 2015 11:16

Ich habe ebenfalls meinen Quellcode auswendig gelernt. Das dass zwar nicht der Zweck oder die Absicht des Veranstalters war, war mir auch klar, da ich ja jedermanns Code hätte auswendig lernen können.

Der Grund dafür war zum einen, dass sich zwischen meinen Testatsterminen, den Abgabeterminen und meiner Bearbeitung meist mehrere Wochen lagen und ich mir ein erneutes gründliches Eindenken in den damals geschriebenen Code sparte. Natürlich ging ich im Kopf grob die Schritte durch, aber auswendig lernen ging wesentlich schneller.
Der andere Grund dafür war, dass ich bedenken hatte, in der Aufregung im Testat beim rekonstruieren meiner Vorgehensweise eine triviale Kleinigkeit zu vergessen. Mit dem Code auswenidg im Kopf war ich jedes Mal innerhalb von 5 Minuten fertig und hatte keine "große", "anfällige" Denkleistung zu erbringen. Klar hätte ich so auch etwas vergessen können, aber dann hätte ich immer noch den Rest der Zeit nutzen können, um es doch auf "normale" Art zu versuchen bzw. zu "fricklen". Das Auswendiglernen war quasi auch eine Absicherung.

EDIT: Zum Nachtrag:
Im Wintersemester 14/15 in GdI I (von der ich nur berichten kann) gab es keine Praxistestate dieser Art. Die Studienleistung setzte sich aus Zwischenklausur, Hausübungen (nur Abgaben, kein Testat) und dem Programmierprojekt. Zwar gab es ein Testat zum Programmierprojekt, allerdings war diese, zumindest bei mir, von anderer Gestalt als die Praxistestate von GdI II
Zuletzt geändert von Nasdat am 8. Jul 2015 11:21, insgesamt 1-mal geändert.

ttt3
Neuling
Neuling
Beiträge: 9
Registriert: 11. Mai 2015 22:14

Re: Eigenen Code für die Testate auswendig gelernt?

Beitrag von ttt3 » 8. Jul 2015 11:21

Für die Praxistestate (zumindest bei meinem Tutor) habe ich keinerlei Code auswendig gelernt und es war auch nicht notwendig. Er hat fairerweise immer nur einzelne Codebestandteile gelöscht und somit die Kohärenz gewahrt. Innerhalb weniger Minuten war das Testat lösbar (vorausgesetzt man hat die Aufgabenstellung durchdrungen) und ich denke, dass es so auch anfangs konzipiert war.

Jedoch habe ich schon mehrmals gehört, dass andere Tutoren wirklich eine komplette Methode (samt jeglicher Dokumentation) gelöscht haben. Da hat man meines Erachtens gar keine Chance ohne jeglichen Kontext das Testat zu bestehen. Bedenkt man, wie lange an den Aufgaben (vor allem Praxis 3) gearbeitet wurde, so ist es schlichtweg unmöglich und unfair eine komplette Funktion mit allerlei while-Schleifen, welche auf die eigene Abgabe abgestimmt wurden, zu rekonstruieren.

Ich schließe mich dem Vorposter an und plädiere auf eine mündliche Testierung (da so am besten das Verständnis der Aufgabe abgeprüft werden kann) oder zumindest die einheitliche Instruktion an alle Tutoren niemals eine Funktion aus dem Kontext zu ziehen. Es kann doch nicht der Sinn des Testates sein die Gedächtnisfähigkeit abzuprüfen!
Könnten beispielsweise Theorie- und Praxistestate nicht zusammengeführt werden?

420MLGuWOTm9
Neuling
Neuling
Beiträge: 9
Registriert: 29. Mai 2015 14:33

Re: Eigenen Code für die Testate auswendig gelernt?

Beitrag von 420MLGuWOTm9 » 8. Jul 2015 11:32

Auswendig gelernt, da ich dadurch die Sicherheit habe zu bestehen und zudem das ich mit anderen zusammen gearbeitet habe.
Sehe in den Praxistestaten keinen wirklichen Nennwert, da man im Prinzip den Code anderer abgeben kann .
Nur das hier , im Gegensatz zur GdI 1, der Code eben auswendig gelernt werden muss, was ziemlich unnötig ist. Wer die Aufgabe selbst gemacht hat, hat am Ende den Mehrwert. Falls jemand nicht die Praxistestate in Eigenregie geschafft hat, hat sich den Code beschafft und auswendig gelernt.
Wer es nicht selbst macht und dadurch Inhalte der Vorlesung nicht versteht, wird am Ende in der Klausur sowieso Probleme bekommen.

Exceptionalist
Windoof-User
Windoof-User
Beiträge: 25
Registriert: 23. Apr 2015 15:41

Re: Eigenen Code für die Testate auswendig gelernt?

Beitrag von Exceptionalist » 8. Jul 2015 12:04

Ich bin kein "Auswendiglerner" und hatte auch gar nicht die Zeit meinen kompletten Code auswendig zu lernen.
Im Nachhinein hätte ich mir aber gewünscht ich hätte meinen Code auswendig gelernt!
Bei den ersten beiden Praxistestaten kam ich noch halbwegs klar, auch wenn mein Tutor mir beim zweiten Mal helfen musste.

Beim dritten Praxistestat wurde allerdings eine Hilfsmethode für Aufgabenteil 3 komplett gelöscht, mitsamt Dokumentation. Ich habe dann nach 2 Minuten aufgegeben, weil ich keinerlei Chance gesehen habe die Hilfsmethode von grundauf zu rekonstruieren. Somit bin ich durch das Testat gefallen und Andere die fremden Code abgegeben und auswendig gelernt haben sind durchgekommen.

Prof. Karsten Weihe
Dozentin/Dozent
Beiträge: 1824
Registriert: 21. Feb 2005 16:33

Re: Eigenen Code für die Testate auswendig gelernt?

Beitrag von Prof. Karsten Weihe » 8. Jul 2015 12:30

Exceptionalist hat geschrieben:Ich bin kein "Auswendiglerner" und hatte auch gar nicht die Zeit meinen kompletten Code auswendig zu lernen.
Im Nachhinein hätte ich mir aber gewünscht ich hätte meinen Code auswendig gelernt!
Aber irgendwie haben Sie sich doch auf das Testat vorbereitet, oder haben Sie ich dann gar nicht vorbereitet?

Exceptionalist hat geschrieben: Somit bin ich durch das Testat gefallen und Andere die fremden Code abgegeben und auswendig gelernt haben sind durchgekommen.
Wissen Sie das definitiv und aus erster Hand, dass tatsächlich jemand so durchgekommen ist? Ich meine, durch reines Auswendiglernen ohne ernsthaftes Verständnis, also mit einem "fotographischen" Gedächtnis?

Der Grund, warum ich so frage, ist: Wir können ja praktisch nichts dagegen tun, dass jemand fremden Code abgibt, sofern derjenige sich ausreichend geschickt anstellt. Wie auch bei mündlichen Testaten können wir nur folgende Haltung einnehmen: Wenn derjenige sich so intensiv mit dem Code auseinandergesetzt hat und ihn so gut verstanden hat, dass er souverän damit umgehen kann (Fragen beantworten im mündlichen Testat bzw. Zeilen wiederherstellen bei uns), dann müssen wir das halt akzeptieren, auch wenn es uns nicht gefällt.

KW

¯\_(ツ)_/¯
Erstie
Erstie
Beiträge: 15
Registriert: 25. Apr 2015 17:53

Re: Eigenen Code für die Testate auswendig gelernt?

Beitrag von ¯\_(ツ)_/¯ » 8. Jul 2015 12:58

Ich habe meinen Code einigermaßen auswendig gelernt, sodass ich bemerke, was genau gelöscht wurde und was ich so ungefähr wieder hinschreiben muss.
Da ziemlich viel Zeit zwischen Abgabe und Testate vergangen ist war ich nicht mehr 100%ig in dem Code eingearbeitet und schnell auswendig zu lernen fand ich einfacher, als das Löschen einzelner Methoden zu lernen.
Ich konnte meinen Code sehr schnell auswendig lernen und hatte somit auch kein Problem damit, die Testate zu bestehen.
Da ich auch vor Testaten immer sehr stark aufgeregt bin hat das Auswendiglernen ein bisschen dazu beigetragen, mir die Prüfungsangst zu nehmen, da ich mich viel sicherer gefühlt habe.
Da manchmal nur zu wissen, was der Code ungefähr macht nicht ganz ausreicht, sondern man auch Details kennen muss (z.B. im dritten Praktikum war die Reihenfolge des Löschens und Verknüpfens von Edges und Tris wichtig) fand ich auswendiglernen angenehmer als in den Code wieder reindenken, Methoden löschen und das neue Implementieren aufwändiger und schwieriger.

Exceptionalist
Windoof-User
Windoof-User
Beiträge: 25
Registriert: 23. Apr 2015 15:41

Re: Eigenen Code für die Testate auswendig gelernt?

Beitrag von Exceptionalist » 8. Jul 2015 13:49

Prof. Karsten Weihe hat geschrieben:
Exceptionalist hat geschrieben:Ich bin kein "Auswendiglerner" und hatte auch gar nicht die Zeit meinen kompletten Code auswendig zu lernen.
Im Nachhinein hätte ich mir aber gewünscht ich hätte meinen Code auswendig gelernt!
Aber irgendwie haben Sie sich doch auf das Testat vorbereitet, oder haben Sie ich dann gar nicht vorbereitet?
Ich habe vielmehr versucht mir in Erinnerung zu rufen welchen Zweck die Methoden hatten und habe mir von Freunden Code löschen lassen und bin die Testatssituation mehrmals durchgegangen. Die Kommilitonen schienen allerdings ein besseres Verständnis zum Code zu besitzen (da sie die Aufgaben selbst bearbeitet hatten) und konnten so meist "sinnvoller" löschen. Mit sinnvoller meine ich, dass es Codefragmente waren, die etwas Essentielles dargestellt haben. Also ein wichtiges Stück Code, dass eigentlich jeder so ähnlich gehabt haben muss. In den Testaten schien es manchmal so, dass eher willkürlich gelöscht wurde, so waren auf einmal Schleifen mitten im Code verschwunden, die zwar in der Prozedur geholfen haben, jedoch im größeren Kontext keine Hilfe zur eigentlichen Problemstellung geleistet hatten.
Prof. Karsten Weihe hat geschrieben:
Exceptionalist hat geschrieben: Somit bin ich durch das Testat gefallen und Andere die fremden Code abgegeben und auswendig gelernt haben sind durchgekommen.
Wissen Sie das definitiv und aus erster Hand, dass tatsächlich jemand so durchgekommen ist? Ich meine, durch reines Auswendiglernen ohne ernsthaftes Verständnis, also mit einem "fotographischen" Gedächtnis?

Der Grund, warum ich so frage, ist: Wir können ja praktisch nichts dagegen tun, dass jemand fremden Code abgibt, sofern derjenige sich ausreichend geschickt anstellt. Wie auch bei mündlichen Testaten können wir nur folgende Haltung einnehmen: Wenn derjenige sich so intensiv mit dem Code auseinandergesetzt hat und ihn so gut verstanden hat, dass er souverän damit umgehen kann (Fragen beantworten im mündlichen Testat bzw. Zeilen wiederherstellen bei uns), dann müssen wir das halt akzeptieren, auch wenn es uns nicht gefällt.
Ja das haben mir Kommilitonen aus erster Hand berichtet, da sie nicht sonderlich programmierfreudig waren.
Meiner Meinung nach liegt in einer mündlichen Testierung der Vorteil, dass -ähnlich wie in den Theorietestaten- auch Fragen zum größeren Verständnis gestellt werden könnte. "Hat der Student verstanden wie die Datenstruktur funktioniert?" "Weiß er wie man bei einer rekursiven Implementierung vorgeht?" etc. Natürlich kann nie ganz umgangen werden, dass fremder Code abgegeben wird. Allerdings kann so zumindest festgestellt werden, dass der Student die Aufgabe in den Gesamtkontext einordnen kann, bzw. können sich so Leute "retten" die mit der Testatssituation Schwierigkeit haben.

Prof. Karsten Weihe
Dozentin/Dozent
Beiträge: 1824
Registriert: 21. Feb 2005 16:33

Re: Eigenen Code für die Testate auswendig gelernt?

Beitrag von Prof. Karsten Weihe » 8. Jul 2015 13:53

Exceptionalist hat geschrieben: Ja das haben mir Kommilitonen aus erster Hand berichtet
Was genau: "fotographisch" auswendig gelernt oder auswendig gelernt plus verstanden?

KW

Exceptionalist
Windoof-User
Windoof-User
Beiträge: 25
Registriert: 23. Apr 2015 15:41

Re: Eigenen Code für die Testate auswendig gelernt?

Beitrag von Exceptionalist » 8. Jul 2015 14:22

Prof. Karsten Weihe hat geschrieben:
Exceptionalist hat geschrieben: Ja das haben mir Kommilitonen aus erster Hand berichtet
Was genau: "fotographisch" auswendig gelernt oder auswendig gelernt plus verstanden?

KW
Ersteres :!:

Thomi
Neuling
Neuling
Beiträge: 7
Registriert: 21. Apr 2015 14:48

Re: Eigenen Code für die Testate auswendig gelernt?

Beitrag von Thomi » 8. Jul 2015 16:12

Ich persönlich muss sagen, dass ich versucht habe meinen Code fotografisch auswendig zu lernen.
Ich habe alle 3 Praktika selbst bearbeitet und auch verstanden. Jedoch habe ich beim Dritten etwas Hilfe gebraucht, bis ich auf einen guten Ansatz gekommen bin.
Warum ich mich aufs Auswendiglernen konzentriert habe? - Weil wie viele vor mir auch schon geschrieben haben der Zeitpunkt der Bearbeitung (insbesondere Praktikum 1+2) schon recht lange zurück lag & um mir die Prüfungsangst zu nehmen. Ich finde der Code, insbesondere bei Praktikum 3, war recht viel und unübersichtlich. Wir durften ja leider auch nicht Methoden in andere Klassen auslagern. Zudem finde ich persönlich es schwer unter Zeitdruck Code zu rekonstruieren, einfach weil man sich in den Ablauf perfekt hineindenken muss (wenn man es nicht auswendig gelernt hat) und das obwohl man unter Stress steht und eventuell nervös ist.
Im Praktikum 1 und 2 habe ich im Testat sofort bildlich vor mir gesehen, was gelöscht wurde und war nach ca. 5 Minuten fertig (hierfür war ganz klar das fotografische Gedächtnis verantwortlich).
Bei Praktikum 3 hingegen hatte ich im Testat nur so eine grobe Ahnung wie der Code an der Stelle aussehen muss. Dieses Praktikum habe ich nur bestanden, weil ich meinen Code selbst geschrieben & auch verstanden habe, wie mein Code funktioniert, denn es wäre fast an einer Verneinung in einer if()-Bedingung gescheitert.

Mein Rat wäre, die Praxistestate entweder ähnlich wie die Theorietestatsituation zu gestalten (hier wird viel besser gezeigt ob man Aufgabenstellung,Datenstruktur und Code wirklich verstanden hat, weil hier auswendig lernen nichts bringt) oder zumindest im Testat das Benutzen der Aufgabenstellung/mitgebrachten Skizzen (ich hatte viele um mir bei Praktikum 3 die Funktionsweise meines Programms klarzumachen) zu erlauben.

Thomi

joshimoo
Windoof-User
Windoof-User
Beiträge: 29
Registriert: 25. Apr 2015 17:16

Re: Eigenen Code für die Testate auswendig gelernt?

Beitrag von joshimoo » 8. Jul 2015 22:30

Um mal ein Gegenbeispiel zu nennen:
Ich habe meinen Code nicht auswendig gelernt.
Auf der anderen Seite muss ich dazu auch sagen das ich mich auch nicht auf die Praxis Testate vorbereitet habe. :oops:
Beim ersten lag dies daran das ich nicht wusste was mich bei den Testaten erwartet, daher hoffte ich einfach das dass schon irgendwie passt ;)
Beim zweiten, nehme ich einfach an das es Faulheit war, dazu muss ich sagen das ich den Code für das Zweite Testate +/- 1nen Tag vor der Abgabe geschrieben habe, welches zufällig das Wochenende vor dem ersten Praxis Testat war :)
Beim letzten war mir das Resultat des Testat nicht mehr so wichtig, da ich bereits 2 Praxis hatte und mir sicher war das ich auch Foo und Theory schaffe.

Um mal ein Beispiel davon zu geben, was bei mir gelöscht wurde:
Ich finde, das Löschverhalten okay, man hätte mir genauso gut auch noch den Index Kommentar und so weiter löschen können.
Ich denke das wenn man den Code selbst geschrieben und verstanden hat, sollte jeder mit den passenden Java Vorkenntnissen in der Lage sein den unten stehen Code unter zur Hilfenahme des Debuggers etc wieder zu vervollständigen.

Code: Alles auswählen

	/**
	 * return a subdivision of the passed triangle
	 * reuse the passed triangle as one of the new ones
	 * NOTE: containerTriangle needs to be index 0
	 */
	private Triangle[] createTriangleSubDivision(Triangle containerTriangle, LinkedList<Edge> innerEdges, LinkedList<Edge> outerEdges) {

		// NOTE: For the indexes I use, i, i, (i+1)%3 to wrap around
		// Update Edges for the existing Triangle
		Edge[] updatedEdges = new Edge[] { outerEdges.get(0), innerEdges.get(0), innerEdges.get(1) };

                // TODO: 5 Lines
		// return FIXME
	}

	private Triangle getTriangleRec(Point p, Triangle node, Set<Triangle> visited) {

		// Have we found the triangle
		if (node.containsPoint(p)) { return node; }

		// Recurse Down if we have not visited this before?
                // TODO: 5 Lines

		// Not the target
		return null;
	}

hololol2
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 154
Registriert: 27. Apr 2015 14:13

Re: Eigenen Code für die Testate auswendig gelernt?

Beitrag von hololol2 » 9. Jul 2015 00:26

Ich habe meinen Code auch nicht auswendig gelernt.
Ich habe mir lediglich am jeweiligen Tag auf dem Weg nach Darmstadt für ca 20 Minuten meinen Code durchgelesen, da die Bearbeitungszeit schon eine Weile her war.
Damit habe ich mir den groben "Ablauf" der Funktionen in Erinnerung gerufen.
Ich bin damit auch gut durchgekommen, allerdings kann ich natürlich nicht wirklich vergleichen, was bei anderen gelöscht wurde.

Außerdem hatte ich schon bei der Implementierung auf möglichst intuitiven Code geachtet, d.h. mein Code war vermutlich nicht sonderlich performant und so, aber dafür sehr einfach zu verstehen und nachzuvollziehen

Janina
Neuling
Neuling
Beiträge: 3
Registriert: 10. Okt 2014 09:53

Re: Eigenen Code für die Testate auswendig gelernt?

Beitrag von Janina » 9. Jul 2015 10:10

Hallo,

Ich habe meinen Code so ziemlich komplett auswendig gelernt. Habe ich für das erste Testat nicht gemacht. Da habe ich die komplette Aufgaben am Tag vor dem Testat noch einmal bearbeitet und mir mehrmal den Code angesehen, im Testat konnte ich leider wenig davon abrufen. Ich weiß leider auch nicht, woran es genau lag, aber ich konnte keinen klaren Gedanken fassen und mir das logisch herleiten. Zum einen weil ich mich selbst unter Zeitdruck gesetzt habe (wenn alle anderen in dem Raum ihr Testat schon fertig haben) zum anderen weil der Tutor die ganze Zeit stumm hinter einem gestanden und auf den Bildschirm geschaut hat.
Deswegen habe ich für das zweite und dritte Testat lieber auswendig gelernt, was vor allem bei dem dritten viel Arbeit war. Aber sich jede der vielen Hilfmethoden (mein Code war sehr lang) einzeln herleiten zu können in nur einer halben Stunde, habe ich mir nicht zugetraut.

Antworten

Zurück zu „Archiv“