---------------------------------------------------- InfoI: Hinweise zur Bearbeitung der Übungsaufgaben ---------------------------------------------------- .. Stand: 6.11.2014 * Erste Hinweise zur Formatierung von Python-Dateien hinzugefügt .. Stand: 24.10.2014 * Erste Hinweise insbesondere zur Abgabe von Freitext-Antworten In dieser Datei finden Sie wichtige Hinweise, die bei der Bearbeitung der Übungsaufgaben und Einreichung Ihrer Lösungen zu beachten sind. Diese Datei wird im Laufe der Vorlesung gelegentlich ergänzt werden. Die jeweils aktuelle Fassung finden Sie unter der folgenden URL: http://gki.informatik.uni-freiburg.de/teaching/ws1415/info1/hinweise_uebungen.txt Änderungen der Datei werden auf dem jeweiligen Übungsblatt bekannt gemacht und eine Zusammenfassung der Änderungen finden Sie am Anfang der Datei. Bei jeder Übungsaufgabe werden wir angeben, in welcher Datei wir Ihre Lösung zu der Aufgabe erwarten. Wir bitten Sie diese Dateinamen **strikt** zu beachten. Die Tutoren und Tutorinnen, die Ihre Lösung korrigieren, werden Ihnen Punkte abziehen, wenn Sie falsche Dateinamen benutzen oder andere der folgenden Formatierungsrichtlinien nicht beachten. Warum ist dies nötig? Wir gehen davon aus, dass ein Tutor pro Aufgabenblatt 10-12 Stunden Zeit für die Betreuung seiner/ihrer Studenten hat. Davon entfallen 2-3 Stunden auf das Tutorat (Übungen) und das Betreute Programmieren. Außerdem beteiligen sich die Tutoren auch im Diskussionsforum. In der restlichen Zeit müssen sie von ca. 20-25 Studierenden die Übungsaufgaben korrigieren. Das heißt also: ca. 80-100 Dateien öffnen, Fehler finden, Programm-Code prüfen, die Lösungen bewerten und schließlich ein kurzes Feedback schreiben. Das geht nur, wenn man einen Teil dieser Aufgaben automatisiert (und darum geht es in der Informatik) durchführen kann. Fehler bei Dateinamen oder in der Formatierung kosten also Ihrem Tutor, Ihrer Tutorin wertvolle Zeit. Grundsätzlich gibt es zwei verschiedene Typen von Abgaben: * Dateien mit *Programm-Code* und * Dateien mit *Freitext-Lösungen* (das sind Aufgaben, bei denen Sie etwas erläutern, begründen, etc., sollen). Für beide Abgabetypen gelten natürlich unterschiedliche Richtlinien für die Formatierung Ihrer Lösungen. Abgabe von Python-Programmen ============================ Für Python-Dateien gelten die Formatierungsrichtlinien, die in PEP 8 [PEP8]_ formuliert sind. Genaueres finden Sie in der Beispiel-Datei: http://gki.informatik.uni-freiburg.de/teaching/ws1415/info1/docs/example.py Nachfolgend eine kurze Zusammenfassung der wichtigsten Punkte: * Eine Einrückungsebene in Python entspricht genau 4 Leerzeichen (keine Tabulatorzeichen). Falls Sie Tabulatorzeichen verwenden, achten Sie darauf, dass Ihr Editor diese beim Speichern der Datei zu 4 Leerzeichen expandiert. * Jede Zeile soll aus höchstens 79 Zeichen bestehen. Es gibt sehr seltene Ausnahmen von dieser Regel. * Funktionen, die nicht innerhalb anderer Funktionen definiert werden, (sogenannte Funktionen auf Modulebene) sollen durch zwei Leerzeilen getrennt werden. * Funktionsnamen bestehen ausschließlich aus Kleinbuchstaben: Unterstriche sind erlaubt, wenn dies die Lesbarkeit des Codes verbessert. Entsprechendes gilt für Variablennamen (siehe [PEP8]_). * Jede definierte Funktion muss mit einem Doc-String versehen werden. Im Rahmen der Vorlesung verwenden wir dazu ein Schema in Anlehnung an PEP 257 [PEP257]_. Siehe hierzu die Beispiel-Datei. * Am Anfang jeder Python-Datei steht ein Doc-String der kurz den Inhalt der Datei beschreibt. Zur Gestalt dieses Doc-Strings konsultieren Sie bitte ebenfalls die Beispiel-Datei. * Am Ende der Datei sind *alle* leeren Zeilen zu entfernen. Abgabe von Freitext-Lösungen ============================ Für die Abgabe von Freitext-Lösungen akzeptieren wir als Dateiformate ausschließlich Textdateien (ASCII- oder UTF-8-kodiert) und PDF-Dateien. Ist bei der Aufgabenstellung als Dateiname "xyz.txt" angegeben, so ist bei der Abgabe von PDF-Dateien die Dateiextension entsprechend zu modifizieren, also "xyz.pdf" anstelle von "xyz.txt". Word-Dateien o.ä. werden von Ihrem Tutor/Ihrer Tutorin *nicht* geöffnet, also auch nicht korrigiert und entsprechend die Aufgabe als **nicht abgegeben** bewertet. Bei allen Freitextabgaben erwarten wir, dass diese Dateien so formatiert werden, dass die Zuordnung zu den jeweiligen Teilaufgaben sofort ersichtlich ist. Wir empfehlen daher Textdateien wie im folgenden Template zu strukturieren (für PDF-Dateien gilt analoges): -- SNIP ----------------------------------------------------------------------- Aufgabe 1.2 =========== Aufgabe 1.2(a) -------------- Ihre Antwort zu Aufgabe 1.2(a) ... Aufgabe 1.2(b) -------------- Ihre Antwort zu Aufgabe 1.2(b) ... Literatur/Quellen ----------------- .. [Ref1] Buch, URL, etc. (siehe Beispiel am Ende dieser Datei) .. [Ref2] Weiteres Buch, URL, etc. -- SNAP ----------------------------------------------------------------------- Dieses Template können Sie einfach kopieren und für die jeweilige Aufgabe adaptieren. Beachten Sie dabei die leere Zeile vor und nach jeder ("-"-unterstrichenen) Überschrift für die Teilaufgabe. Auf Folgendes sollten Sie ferner achten: 1. Pro Zeile nicht mehr als 80 Zeichen! Gelegentlich sind Ausnahmen von der Regel sinnvoll, wie in dieser Datei in Zeile 12. 2. Verwenden Sie ausschließlich Zeichen, die übliche Texteditoren auch ohne Konvertierung der Datei öffnen können. 3. Verwenden Sie nicht das Tabulator-Teichen. 4. Am Ende der Datei sind *alle* leeren Zeilen zu entfernen. 5. Falls Sie weiterführende Literatur zur Beantwortung der Aufgaben verwenden, so geben Sie diese bitte an. Beispielhaft finden Sie dies am Ende dieser Datei. Plagiate ======== Die Übungsaufgaben sind von Ihnen persönlich zu bearbeiten. Kopien von Lösungen anderer werden als Plagiat gewertet und können im Wiederholungsfall dazu führen, dass Sie keine Zulassung zur Klausur erhalten. Als Plagiat zu werten sind im Übrigen auch Lösungen, die Sie aus Büchern, Webseiten, Internetforen, sozialen Netzwerken, etc., kopieren. Einreichung =========== Das Einreichen der Lösungen ist ausschließlich auf elektronischem Wege über das Kursverwaltungssystem *Daphne* möglich. Dabei wird ein Subversion-Repository verwendet, in dem Sie Ihre Lösungen "committen". Einzelheiten werden auf dem ersten Übungsblatt erklärt. Der jeweils angegebene Abgabetermin ist *strikt*. Nach der Ablauf der Frist ist das Einreichen von Lösungen nicht mehr möglich. Bewertet wird bei allen Aufgaben die letzte Version, die zur Abgabefrist des Übungsblattes auf den SVN-Server hochgeladen wurde. Überprüfen Sie, dass alle Ihre Lösungen im Repository hinzugefügt und hochgeladen wurden (siehe dazu auch die Hinweise auf dem ersten Übungsblatt). Das Repository darf *ausschließlich* zu Zwecken des Übungsbetriebs für die Vorlesung verwendet werden. Krankheit ========= Falls Sie längerfristig erkrankt sind, bitten wir Sie, sich sobald möglich mit den Dozenten der Vorlesung in Verbindung zu setzen. Nach Vorlage eines Attestes werden wir versuchen eine gute Lösung zu finden, damit die Zulassung zur Klausur nicht gefährdet ist. Literatur/Quellen ================= .. [PEP8] PEP 8, http://legacy.python.org/dev/peps/pep-0008/ .. [PEP257] PEP 257, http://legacy.python.org/dev/peps/pep-0257/ .. [Knu97] Donald E. Knuth: The Art of Computer Programming, Vol. 1: Fundamental Algorithms. 3rd edition. Addison-Wesley 1997 .. [Plag] Wikipedia contributors, "Plagiat," Wikipedia, The Free Encyclopedia, http://de.wikipedia.org/wiki/Plagiat (letzter Zugriff am: 10. Okt. 2014) .. [RST] reStructuredText Primer, http://sphinx-doc.org/rest.html