Allgemeine Informationen
Lehrveranstaltungskonzept
Abgrenzung
Diese Lehrveranstaltung darf weder als Einführungskurs in die Programmierung bzw. in Java noch als fortgeschrittener Java-Kurs missverstanden werden. Am Rande werden zwar einige Sprachkonzepte kurz erläutert, aber
- ohne gute Vorkenntnisse werden diese Erläuterungen nicht verständlich und Programmieraufgaben kaum lösbar sein;
- wesentliche Teile von Java wie die umfangreichen Klassenbibliotheken werden kaum behandelt.
Aufbau und Charakteristik
Wöchentliche Vorlesungen vermitteln den eher theoretischen Stoff und geben Hintergrundinformationen. Ebenso (fast) wöchentliche Programmieraufgaben, die in Kleingruppen zu lösen sind und auf den Vorlesungsstoff Bezug nehmen, sollen
- das Verständnis des Vorlesungsstoffs vertiefen;
- praktische Programmierfähigkeiten fördern;
- die Fähigkeit herausbilden, theoretisches Wissen und Meta-Wissen in die praktische Programmierung einfließen zu lassen (unter anderem wichtig zum Auffinden guter Datenabstraktionen);
- den Umgang mit unvollständigen Spezifikationen üben (wichtig zur Beherrschung von Untertypbeziehungen und Zusicherungen);
- helfen, eine eigenständige, teamfähige und erfolgversprechende Herangehensweise zu entwickeln.
Zur Erreichung der letzten drei Punkte wird großer Wert auf das selbständige Finden von Lösungswegen und individuelle Lösungen gelegt; der eigene Weg zur Lösung ist wichtiger als die Lösung selbst. Statt vorgezeichneter Lösungswege und Musterlösungen gibt es nur grobe Zielvorgaben.
Viele Studierende sind es nicht gewohnt, auf unvollständigen Spezifikationen aufzubauen und sich auf eigene Lösungswege zu verlassen. Entsprechend oft werden Programmieraufgaben als unklar und schwierig empfunden.
Für die ersten drei Programmieraufgaben (Einstiegsphase) können Tutorinnen bei Bedarf Unterstützung geben, gezielt spezifische Schwächen beseitigen und Einstiegshürden mildern. Jedoch werden auch Tutorinnen auf individuelle Lösungswege bestehen.
Übungsteil
Gruppen
Übungen werden in Gruppen zu je drei Personen durchgeführt. Durch die Gruppenarbeit sollen Diskussionen der Übungsaufgaben gefördert und die Fähigkeit zur Teamarbeit ausgebaut werden.
Übungsaufgaben
Übungsaufgaben werden fast wöchentlich am Mittwoch ausgegeben. Die Aufgaben sind innerhalb der vorgegebenen Frist (meist eine Woche) zu lösen. Bei Bedarf kann die Frist um eine Woche erstreckt werden, was jedoch zu einer schlechteren Beurteilung führt. Von dieser Möglichkeit soll nur in Notfällen Gebrauch gemacht werden.
Abgabe der Lösungen
Jede Gruppe hat ein git-Repository auf dem Übungsrechner g0.complang.tuwien.ac.at, auf dem die Lösungen im der Aufgabe entsprechenden Verzeichnis abzulegen sind. Von dort werden sie jeweils um 12:00 Uhr (strikte Deadline) am Tag der Abgabe automatisch abgesammelt. Pro Gruppe und Aufgabe kann es nur eine einzige gemeinsame Lösung geben.
Informationen zur Einrichtung und Benutzung von git sind im Anhang des Skriptums zu finden.
Fristerstreckung
Wenn die Einhaltung des Abgabetermins nicht möglich ist, wird nach Eintreffen einer Mail (sinngemäß) folgenden Inhalts bis 14:00 Uhr am Tag der Abgabe bei den Lehrveranstaltungsleitern eine Fristerstreckung gewährt: Gruppe ... bittet um Erstreckung der Abgabefrist für Aufgabe ... um eine Woche und akzeptiert eine Reduktion der Punkteanzahl für diese Aufgabe um ein Drittel.
Einstiegsphase
Die ersten drei Aufgaben bilden zusammen eine Einstiegsphase. Sie soll
- Studierenden mit geringen Vorkenntnissen ermöglichen, den Anschluss zu finden,
- Erfahrungen sammeln lassen, die bei den weiteren Aufgaben hilfreich sind,
- einen Freiraum schaffen, in dem bis zu einem vorgegebenen Maß ohne Auswirkungen auf die Beurteilung experimentiert werden kann,
- den Gruppenzusammenhalt fördern und frühzeitig gruppeninterne Konflikte aufdecken.
Die erste Aufgabe wird einfach sein und Gelegenheit geben, in aller Ruhe die Zusammenarbeit innerhalb der Gruppe sowie mit der Tutorin zu organisieren und die Werkzeuge kennenzulernen. Die zweite Aufgabe wird dagegen sehr umfangreich sein und dazu zwingen, eine Auswahl der zu lösenden Teilaufgaben zu treffen. Die dritte Aufgabe soll helfen, individuelle Probleme selbst zu erkennen. Die weiteren Aufgaben, die nicht mehr zur Einstiegsphase gehören, sind jeweils einem inhaltlichen Teilbereich der objektorientierten Programmierung gewidmet.
Terminals im Übungsraum
Im Übungsraum (CL-Lab) in der Argentinierstraße 8 (im Tiefparterre, durch den Hof zu erreichen) stehen Terminals, an denen die Übungsaufgaben gelöst werden können. Als Server ist g0 zu wählen. Vor Verlassen des Terminals ist es unbedingt nötig, sich auszuloggen. Die wichtigste benötigte Software sollte auf der g0 installiert sein.
Arbeiten von zu Hause aus
Studierende können sich von jedem beliebigen Terminal aus unter ihrem Account auf g0.complang.tuwien.ac.at einloggen. Eine sichere Verbindung wird beispielsweise durch ssh o*@g0.complang.tuwien.ac.at unter Linux hergestellt, wobei * durch die Matrikelnummer zu ersetzen ist.
Die Übung kann auch zur Gänze auf einem anderen Rechner durchgeführt werden. Dazu ist ein Rechner mit einem Java-Interpreter (java) und -Compiler (javac) mit den dazugehörigen Standardbibliotheken nötig; auf der g0 ist JDK8 installiert (zwecks Kompatibilität auch auf dem von Ihnen verwendeten Rechner empfohlen). Für eine Aufgabe wird zusätzlich AspectJ benötigt. Die Verwendung einer Entwicklungsumgebung wie z.B. Eclipse, NetBeans und IntelliJ IDEA wird empfohlen. Für Zugriffe auf das Repository ist git nötig. Die üblichen Entwicklungsumgebungen ermöglichen einen einfachen Umgang mit git, sobald sie mit den nötigen Verbindungsdaten und Verzeichnisstrukturen eingerichtet sind. Verbindungsdaten erhalten Studierende kurz nach Ende der Anmeldefrist per Mail.
Tutorinnen
Jede Gruppe wird durch eine Tutorin betreut. Diese gibt intensive Unterstützung in der Eingangsphase, danach in beschränktem Umfang. Die Betreuung erfolgt in der Regel per Mail, es können aber auch Treffen mit der Tutorin (direkt oder über Skype) frei vereinbart werden.
Hilfestellung bei Gruppenfindung
Zu einigen Terminen während der Anmeldefrist bieten Tutorinnen Unterstützung bei der Gruppenfindung:
- Mi, 3.10., 14-15 Uhr: Vorraum vor Informatik-HS (direkt nach der Vorbesprechung)
- Do, 4.10., 15-16 Uhr: Gang/Hof vor Übungsraum (CL-Lab)
- Mo., 8.10., 13-14 Uhr: Gang/Hof vor Übungsraum (CL-Lab)
- Di., 9.10., 13-14 Uhr: Gang/Hof vor Übungsraum (CL-Lab)
ECTS Breakdown
(3 ECTS entsprechen 75 Arbeitsstunden)
- 49.7 h - Lösen der 9 Programmieraufgaben
- 00.3 h - Besprechung der Programmieraufgaben im Abgabegespräch
- 00.7 h - Vorbesprechung
- 09.8 h - Vorträge
- 14.2 h - Prüfungsvorbereitung
- 00.3 h - mündliche Prüfung
Hinweise zur Anmeldung
Anmeldung zur Lehrveranstaltung
Die Anmeldung zur Lehrveranstaltung in TISS ist eine unbedingte Voraussetzung für die Teilnahme. TISS überprüft unter anderem, ob die STEOP erfüllt ist.
Es ist in TISS auch die Anmeldung zu einer der zahlreichen Gruppen (= Übungsgruppen) nötig. Die Gruppen haben Namen der Form oopXn, wobei n eine fortlaufende Nummer und X der Anfangsbuchstabe im Vornamen der Tutorin ist, welche die Gruppe betreut. Verabreden Sie sich bitte zuerst mit anderen Studierenden und tragen Sie sich dann zusammen (bzw. kurz hintereinander) in eine Gruppe ein. Gruppen bestehen stets aus drei Personen. Achten Sie darauf, dass nach dem Anmeldevorgang alle Mitglieder der Gruppe in derselben Gruppe einen Platz bekommen haben, also niemand nur in der Warteliste steht. Sollte das der Fall sein, melden Sie sich bitte gleich wieder ab und in einer anderen Gruppe an. Unvollständige Gruppen werden wiederholt aufgelöst, damit Platz für vollständige Gruppen geschaffen wird. Melden Sie sich daher nie alleine oder zu zweit in eine Gruppe an. Personen, die zur Lehrveranstaltung angemeldet, aber bis zum Ende der Anmeldefrist noch in keiner vollständigen Gruppe sind, werden willkürlich zu Gruppen zusammengefügt.
Anmeldung zum Abgabegespräch
Zwischen 7. und 14. Jänner 2019 müssen Sie sich in TISS zum Abgabegespräch anmelden. Termine für Abgabegespräche werden in der zweiten Jännerhälfte fast täglich angeboten. Es gibt gerade ausreichend viele viertelstündige Termine. Alle Gruppenmitglieder sollen zum selben Termin erscheinen, und es reicht, wenn ein Gruppenmitglied die Anmeldung vornimmt. Zur Anmeldung trägt sich ein Gruppenmitglied in eine noch leere Gruppe ein, dessen Titel den Prüfer und Termin beschreibt. Die Abgabegespräche finden in den Büros der Prüfer (Argentinierstraße 8, 4. Stock) statt. Achtung: Die derzeit eingetragenen Termine können sich bis zu Beginn der Anmeldefrist noch leicht ändern.
Anmeldung zur Prüfung
Für die mündliche Prüfung zum Vorlesungsteil ist eine gesonderte Anmeldung in TISS nötig. Mitte bis Ende Jänner werden fast täglich Prüfungstermine angeboten. Spätere Prüfungstermine gibt es bis Juni an fast jedem Montag, außer in der vorlesungsfreien Zeit. Sie müssen sich als Einzelperson (jedes Gruppenmitglied für sich) anmelden. Wählen Sie unbedingt einen Prüfungstermin, der nach Ihrem Termin für das Abgabegespräch liegt. Achtung: Die derzeit eingetragenen Prüfungstermine können sich noch ändern.
Terminübersicht
Allgemeine Termine
- Anmeldung Lehrveranstaltung ... 3.10. - 9.10. in TISS
- späteste Abmeldung ... 30.10. in TISS
- Vorbesprechung ... 3.10., 13 (c.t.) - 14 Uhr, Informatik-HS
- Vorlesungen ... 10.10. - 16.1., 13 (c.t.) - 14 Uhr, Informatik-HS
- neue Aufgaben ... mittwochs (10.10. - 12.12.) in TISS
- Lösungsabgaben ... 12:00 Uhr pünktlich an Abgabeterminen
- Anmeldung Abgabegespräch ... 7.1. - 14.1.
- Abgabegespräch ... zweite Jännerhälfte
- Anmeldung Prüfung ... bis eine Woche vor Prüfungstermin
- Prüfung ... zweite Jännerhälfte (viele Termine) oder montags bis Juni
Übungsaufgaben
jeweils Ausgabetermin und Abgabetermin
- Aufgabe: 10.10. - 17.10.
- Aufgabe: 17.10. - 24.10.
- Aufgabe: 24.10. - 31.10. (Nachbesserungen bis 21.11.)
- Aufgabe: 31.10. - 14.11.
- Aufgabe: 07.11. - 21.11.
- Aufgabe: 21.11. - 28.11.
- Aufgabe: 28.11. - 05.12.
- Aufgabe: 05.12. - 12.12.
- Aufgabe: 12.12. - 19.12.
Die Beurteilung setzt sich je zur Hälfte aus den Leistungen bei der Lösung der Programmieraufgaben (Übungsteil) und dem Ergebnis einer mündlichen Prüfung zum Vorlesungsteil zusammen. Für eine insgesamt positive Beurteilung ist eine positive Beurteilung beider Teile, des Übungsteils und des Vorlesungsteils nötig. Es wird empfohlen, die Prüfung bald nach Abschluss des Übungsteils abzulegen. Prüfungen müssen bis spätestens Juni desselben Studienjahres positiv abgelegt sein, sonst wird ein negatives Zeugnis ausgestellt. Ein negatives Zeugnis wird auch ausgestellt, wenn der Übungsteil oder zwei Antritte zur mündlichen Prüfung negativ beurteilt wurden.
Eine negative Prüfung kann innerhalb der Lehrveranstaltung und innerhalb des vorgegebenen Zeitrahmens höchstens einmal wiederholt werden.
Beurteilung des Übungsteils
Lösungen der Aufgabenstellungen werden nicht gleich nach der Abgabe endgültig beurteilt, sondern erst in einem Abgabegespräch gegen Ende des Semesters. Dabei fließt neben der Qualität der Lösungen auch die Mitarbeit innerhalb der Übungsgruppe in die Beurteilung ein. Zur Feststellung der Mitarbeit müssen eigene Lösungen verstanden und Entscheidungen begründet werden können. Es wird jedoch schon vor dem Abgabegespräch per Mail Rückmeldungen über die vorläufigen Beurteilungen der Lösungen geben, auf denen die Beurteilungen im Abgabegespräch aufbauen.
Je nach Qualität der Lösungen und der Mitarbeit werden Punkte vergeben. Für die Einstiegsphase (= die ersten drei Aufgaben) schlagen Tutorinnen eine vorläufige Beurteilung mit bis zu 100 Punkten vor, abhängig von der Rechtzeitigkeit, Vollständigkeit und Korrektheit der Lösungen (auch in Bezug auf konkrete Aufforderungen zur Beseitigung von Mängeln in zuvor abgegebenen Lösungen). Lösungen der weiteren sechs Aufgaben werden nach ihrer Qualität (entsprechend den in den Aufgabenstellungen genannten Qualitätskriterien) durch die Lehrveranstaltungsleiter beurteilt. Bis zu 100 Punkte gibt es für jede der sechs Aufgaben, im Falle einer Fristerstreckung jedoch nur 2/3 der andernfalls erreichten Punkte. Die Beurteilung des Übungsteils ergibt sich aus der Summe der Punkte (für Einstiegsphase und weitere Aufgaben):
- 000 - 350 Punkte -> nicht genügend
- 351 - 437 Punkte -> genügend
- 438 - 525 Punkte -> befriedigend
- 526 - 612 Punkte -> gut
- 613 - 700 Punkte -> sehr gut