diff --git a/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.aux b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.aux index 7baf31d3..fd70a991 100644 --- a/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.aux +++ b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.aux @@ -21,12 +21,12 @@ \@writefile{lot}{\select@language{ngerman}} \@writefile{toc}{\contentsline {section}{\numberline {1}Animal}{1}{section.1}} \@writefile{toc}{\contentsline {section}{\numberline {2}AnimalScript}{1}{section.2}} -\@writefile{toc}{\contentsline {section}{\numberline {3}Generator}{1}{section.3}} +\@writefile{toc}{\contentsline {section}{\numberline {3}Generator (im Moment nur stickpunktartig. Bitte ausformulieren!)}{1}{section.3}} \@writefile{toc}{\contentsline {section}{\numberline {4}Verbesserungsvorschl\"age}{1}{section.4}} \@writefile{toc}{\contentsline {section}{\numberline {5}Fazit}{1}{section.5}} -\@writefile{toc}{\contentsline {section}{\numberline {6}was ihnen am Praktikum gut gefallen hat und was weniger gut war}{1}{section.6}} -\@writefile{toc}{\contentsline {section}{\numberline {7}ob bzw. was sie gelernt haben}{1}{section.7}} -\@writefile{toc}{\contentsline {section}{\numberline {8}was wir in Zukunft an ANIMAL, ANIMALSCRIPT, der API oder den Uebungen verbessern koennten}{2}{section.8}} -\@writefile{toc}{\contentsline {section}{\numberline {9}wie zufrieden Sie mit der Betreuung im Lernportal waren}{2}{section.9}} -\@writefile{toc}{\contentsline {section}{\numberline {10}wie sie an die Aufgaben herangegangen sind und Sie-eventuell im Team-bearbeitet haben}{2}{section.10}} -\@writefile{toc}{\contentsline {section}{\numberline {11}und was sie uns sonst noch an Anregungen geben wollen}{2}{section.11}} +\@writefile{toc}{\contentsline {section}{\numberline {6}was ihnen am Praktikum gut gefallen hat und was weniger gut war}{3}{section.6}} +\@writefile{toc}{\contentsline {section}{\numberline {7}ob bzw. was sie gelernt haben}{3}{section.7}} +\@writefile{toc}{\contentsline {section}{\numberline {8}was wir in Zukunft an ANIMAL, ANIMALSCRIPT, der API oder den Uebungen verbessern koennten}{3}{section.8}} +\@writefile{toc}{\contentsline {section}{\numberline {9}wie zufrieden Sie mit der Betreuung im Lernportal waren}{3}{section.9}} +\@writefile{toc}{\contentsline {section}{\numberline {10}wie sie an die Aufgaben herangegangen sind und Sie-eventuell im Team-bearbeitet haben}{3}{section.10}} +\@writefile{toc}{\contentsline {section}{\numberline {11}und was sie uns sonst noch an Anregungen geben wollen}{3}{section.11}} diff --git a/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.log b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.log index 04ac9378..688cc924 100644 --- a/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.log +++ b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.1415926-2.3-1.40.12 (TeX Live 2011) (format=pdflatex 2011.7.3) 17 MAY 2012 17:27 +This is pdfTeX, Version 3.1415926-2.3-1.40.12 (TeX Live 2011) (format=pdflatex 2011.7.3) 25 MAY 2012 11:29 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -958,50 +958,56 @@ Underfull \hbox (badness 10000) in paragraph at lines 22--24 [] -LaTeX Font Info: Try loading font information for TS1+5ch on input line 36. +LaTeX Font Info: Try loading font information for TS1+5ch on input line 38. (/Users/Michael/Library/texmf/tex/latex/tex-tudfonts/softmake/charter/ts15ch.fd File: ts15ch.fd 2008/06/23 Fontinst v1.927 font definitions for TS1/5ch. -) -Underfull \hbox (badness 10000) in paragraph at lines 50--52 +) [1 + + +] [2] +Underfull \hbox (badness 10000) in paragraph at lines 52--54 [] -Underfull \hbox (badness 10000) in paragraph at lines 60--63 +Underfull \hbox (badness 10000) in paragraph at lines 62--65 [] -[1 - - -] -Package atveryend Info: Empty hook `BeforeClearDocument' on input line 72. - [2] -Package atveryend Info: Empty hook `AfterLastShipout' on input line 72. +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 74. +[3] +Package atveryend Info: Empty hook `AfterLastShipout' on input line 74. (./Abschlussbericht.aux) -Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 72. -Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 72. -Package rerunfilecheck Info: File `Abschlussbericht.out' has not changed. -(rerunfilecheck) Checksum: 896778DC9E760271F173CEB1C00CB473;821. -Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 72. +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 74. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 74. + + +Package rerunfilecheck Warning: File `Abschlussbericht.out' has changed. +(rerunfilecheck) Rerun to get outlines right +(rerunfilecheck) or use package `bookmark'. + +Package rerunfilecheck Info: Checksums for `Abschlussbericht.out': +(rerunfilecheck) Before: 896778DC9E760271F173CEB1C00CB473;821 +(rerunfilecheck) After: B97C1B0B8DAA122C837A09E1E0B0BE18;878. +Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 74. ) Here is how much of TeX's memory you used: - 11381 strings out of 493633 - 174586 string characters out of 3143378 - 288616 words of memory out of 3000000 - 14417 multiletter control sequences out of 15000+200000 + 11390 strings out of 493633 + 174703 string characters out of 3143378 + 287616 words of memory out of 3000000 + 14425 multiletter control sequences out of 15000+200000 57778 words of font info for 62 fonts, out of 3000000 for 9000 831 hyphenation exceptions out of 8191 - 59i,12n,75p,1521b,468s stack positions out of 5000i,500n,10000p,200000b,50000s + 59i,12n,75p,1774b,468s stack positions out of 5000i,500n,10000p,200000b,50000s {/usr/local/texlive/2011/texmf-dist/fonts/enc/dvips/base/8r.enc} -Output written on Abschlussbericht.pdf (3 pages, 64345 bytes). +Output written on Abschlussbericht.pdf (4 pages, 67592 bytes). PDF statistics: - 89 PDF objects out of 1000 (max. 8388607) - 77 compressed objects within 1 object stream - 15 named destinations out of 1000 (max. 500000) + 93 PDF objects out of 1000 (max. 8388607) + 80 compressed objects within 1 object stream + 16 named destinations out of 1000 (max. 500000) 106 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.out b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.out index a03901d1..ef705c0e 100644 --- a/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.out +++ b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.out @@ -1,6 +1,6 @@ \BOOKMARK [1][-]{section.1}{Animal}{}% 1 \BOOKMARK [1][-]{section.2}{AnimalScript}{}% 2 -\BOOKMARK [1][-]{section.3}{Generator}{}% 3 +\BOOKMARK [1][-]{section.3}{Generator \(im Moment nur stickpunktartig. Bitte ausformulieren!\)}{}% 3 \BOOKMARK [1][-]{section.4}{Verbesserungsvorschl\344ge}{}% 4 \BOOKMARK [1][-]{section.5}{Fazit}{}% 5 \BOOKMARK [1][-]{section.6}{was ihnen am Praktikum gut gefallen hat und was weniger gut war}{}% 6 diff --git a/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.pdf b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.pdf index a6f55a05..6234f982 100644 Binary files a/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.pdf and b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.pdf differ diff --git a/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.synctex.gz b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.synctex.gz index d437a8dc..29afa674 100644 Binary files a/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.synctex.gz and b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.synctex.gz differ diff --git a/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.tex b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.tex index 188395d3..4e3a1b82 100644 --- a/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.tex +++ b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.tex @@ -19,33 +19,35 @@ Gruppe: Ulf Gebhardt, Michael Scholz} \newpage \section{Animal} -Die Benutzeroberfläche von Animal ist intuitiv gestaltet. Somit hat jeder Benutzer die Möglichkeit sich einen Algorithmus schnell und einfach generieren zu lassen. In der Animation selbst sind sämtliche Steuerungsfunktionen vorhanden. Besonders gut hat uns hierbei die variabel einstellbare Abspielzeit gefallen. Wünschenswert wäre jedoch eine Suchfunktion, mit der alle vorhandenen Generatoren durchsucht werden können. \\ \\ -Leider haben wir in der Lehrveranstaltung \glqq Grundlagen der Informatik II\grqq\ keinen Hinweis auf die Existenz von Animal bekommen. Animal wäre sicherlich eine gute Unterstützung beim Lernen der verschiedenen Algorithmen und Datenstrukturen gewesen. +Die Benutzeroberfläche von Animal ist intuitiv gestaltet. Somit hat jeder Benutzer die Möglichkeit sich einen Algorithmus schnell und einfach generieren zu lassen. In der Animation selbst sind sämtliche Steuerungsfunktionen vorhanden. Besonders gut hat uns hierbei die variabel einstellbare Abspielzeit gefallen. Wünschenswert wäre jedoch eine Suchfunktion, mit der alle vorhandenen Generatoren durchsucht werden können. Somit würde das manuelle Durchsuchen der Baumstruktur entfallen.\\ \\ +Leider haben wir bisher in keiner Lehrverantstaltung einen Hinweis auf die Existenz von Animal erhalten. In \glqq Grundlagen der Informatik II\grqq\ würde sich Animal sicherlich anbieten. Es wäre auf alle Fälle eine gute Unterstützung beim Lernen der verschiedenen Algorithmen und Datenstrukturen gewesen. \section{AnimalScript} -Die Einarbeitung in AnimalScript ist uns sehr leicht gefallen. Die Sprache ist verständlich aufgebaut, so dass auch Personen ohne Programmiererfahrung ihre eigenen Animationen schreiben können. Als weiterer Grund für die schnelle Einarbeitung ist hier das englischsprachige Tutorial aufzuführen. Es leitet den Entwickler Schritt für Schritt durch die einzelnen Abschnitte. Nach dem Tutorial waren wir bereit mit unserer ersten eigenen Animation in AnimalScript zu beginnen. Bei kleineren Problemen half fast immer ein Blick in die AnimalScript-Spezifikationen. Ein wenig Verwirrung kam bei der Erstellung der Tabelle auf. In der aktuellen Version (2.3.29) von Animal führt ein \glqq refresh\grqq\ einer Tabelle zu einer falschen Formatierung derselbigen. Das Problem haben wir gelöst, indem wir die Tabelle in zwei kleinere Tabellen aufgeteilt und diese mit einer festen Breite initialisiert haben. Durch das Shortcut \glqq reload current animation\grqq\ konnten wir die erstellte Animation gut testen. Durch die aufgeführten Faktoren haben wir Übung 2 zügig absolvieren können. Wir haben während dem gesamten Praktikum Pair-Programming betrieben. Hierbei schreibt eine Person den Quelltext. Die Übrige beobachtet, gibt Tipps und schlägt in unserem Fall bei auftauchenden Problemen in der Spezifikation nach. Nach einem, bei uns nicht festgelegten, Zeitintervall werden die eingenommenen Positionen gewechselt. Diese Methode hat sich vor allem in der Einarbeitungsphase bewährt. +Die Einarbeitung in AnimalScript ist uns sehr leicht gefallen. Die Sprache ist verständlich aufgebaut, so dass auch Personen ohne Programmiererfahrung ihre eigenen Animationen in der gegebenen Skriptsprache verfassen können. Hierfür ist eine kurze Einarbeitung in die Syntax und Semantik nötig. Dies ist uns mit dem gegebenen englischsprachigen Tutorial schnell gelungen. Es leitet den Entwickler Schritt für Schritt durch die einzelnen Abschnitte. Nach dem Tutorial waren wir bereit mit unserer ersten eigenen Animation in AnimalScript zu beginnen. Bei kleineren Problemen half fast immer ein Blick in die AnimalScript-Spezifikationen. Ein wenig Verwirrung kam bei der Erstellung der Tabelle auf. In der aktuellen Version (2.3.29) von Animal führt ein \glqq refresh\grqq\ einer Tabelle zu einer falschen Formatierung derselbigen. Das Problem haben wir gelöst, indem wir die Tabelle in zwei kleinere Tabellen aufgeteilt und diese mit einer festen Breite initialisiert haben. Durch das Shortcut \glqq reload current animation\grqq\ konnten wir Änderungen an der erstellten Animation schnell testen. Durch die aufgeführten Faktoren haben wir Übung 2 zügig absolvieren können. Wir haben während dem gesamten Praktikum Pair-Programming betrieben. Hierbei schreibt eine Person den Quelltext. Die Übrige beobachtet, gibt Tipps und schlägt in unserem Fall bei auftauchenden Problemen in der Spezifikation nach. Nach einem, bei uns nicht festgelegten, Zeitintervall werden die eingenommenen Positionen gewechselt. Diese Methode hat sich vor allem in der Einarbeitungsphase bewährt. -\section{Generator} +\section{Generator (im Moment nur stickpunktartig. Bitte ausformulieren!)} +-> wir haben schon den Quellcode aus Übung 3 (Erstellen einer Animal-Animation mittels API) sehr dynamisch gehalten, so dass wir mit Blick auf Übung 4 (den eigentlichen Generator) nicht mehr viel ändern mussten. Es mussten nur noch kleine Anpassungen, wie z.B. das Einladen der verschiedenen Nutzereingaben implementiert werden, wobei dies meist schon durch das gegebene Wizard geschehen ist. Schön war hier dabei die automatische Erstellung der XML-Datei, da diese bei mehrere Primitiven und Properties sehr leicht unübersichtlich wird. Durch den automatisierten Vorgang muss der Entwickler sich damit nicht rumschlagen. Aber auch der Wizard hat einen Bug enthalten: Ist man so wie auf Übungsblatt 4 beschrieben vorgegangen, so wurde keine .java und .xml datei erstellt. Man musste den Wizard "beenden". Daraufhin hat er sich nicht wirklich beendet. Erst nach diesem Schritt konnte man die beiden benötigten Dateien speichern. Der gesamte Bug mit Workaround ist im Forum beschrieben. Die erstellen beiden Dateien waren in unserem Fall komplett fehlerfrei, so dass wir eigentlich nur noch unseren Quellcode aus Übung 3 reinkopieren mussten. Nach dem Kopieren wurden nur noch die "Nutzereingaben" in den Algorithmus geworfen. Die Integration in das Generator-Framework war auch problemlos, da sie auf dem Übungblatt sehr gut beschrieben war. Einzig problematisch war beim Generator die Implementierung der Funktion "void init()", welche den Generator so initialisieren sollte, dass er auch bei mehrfachem Aufrufen von generate(...) auf dem gleichen Objekt immer mit dem richtigen "Zustand" startet. Hierbei hatten wir am Anfang keine Ahnung, was dieser Satz heissen soll. Das weiss ich im Moment auch noch nicht :) ............... + \section{Verbesserungsvorschläge} Nachfolgend haben wir einige wenige Verbesserungsvorschläge stichpunktartig aufgelistet. Diese sollen als konstruktive Kritik dienen. \begin{itemize} \item Suchfunktion in Animal zum Finden der einzelnen Generatoren -\item ... +\item Bekannte Bugs entfernen. Uns hat vor allem der \glqq refresh\grqq\ -Bug während des Praktikumes gestört. \end{itemize} \section{Fazit} -Das Praktikum hat uns sehr gut gefallen. Positiv hervorzuheben ist die freie Einteilung der Arbeitszeit. Hierdurch konnten wir je nach persönlicher Auslastung während des Semesters an dem Praktikum arbeiten. Trotzdem waren die vorgeschlagenen Zeiträume auf den einzelnen Übungsblättern als Anhaltspunkte hilfreich und sinnvoll. Auch das zeitnahe Feedback auf die einzelnen Abgaben und die Möglichkeit der Verbesserung nach der erhaltenen Rückmeldung haben uns positiv überrascht. Hierdurch war es möglich Ihre Anforderungen an die einzelnen Aufgaben bestmöglich zu erfüllen. \\ +Das Praktikum hat uns sehr gut gefallen. Positiv hervorzuheben ist die freie Einteilung der Arbeitszeit. Hierdurch konnten wir je nach persönlicher Auslastung während des Semesters an dem Praktikum arbeiten. Trotzdem waren die vorgeschlagenen Zeiträume auf den einzelnen Übungsblättern als Anhaltspunkte hilfreich und sinnvoll. Auch das zeitnahe Feedback auf die einzelnen Abgaben und die Möglichkeit der Verbesserung nach der erhaltenen Rückmeldung haben uns positiv überrascht. Hierdurch war es möglich Ihre Anforderungen an die einzelnen Aufgaben bestmöglich zu erfüllen. Die wöchentlich angebotene Sprechstunde von Herrn Fischer haben wir einmal besucht. Hier wurde uns schnell geholfen, so dass unser Arbeitsfluss nicht stark beeinflusst wurde.\\ -> Muss noch ein bisschen erweitert werden - +\newpage \section{was ihnen am Praktikum gut gefallen hat und was weniger gut war} - Nur dürftige Betreuung im Moodle. Dieser Punkt wird später weiter ausgeführt. \\ - Einige Bugs (refresh der grids) sind vorhanden und beanspruchen sehr viel kreativität beim finden neuer lösungsideen. Hierdurch wird das von Guido in GDI1 immer wieder betonte KISS-Prinzip (Keep it simple, stupid!) verletzt :) \\