Fachliche und methodische Kenntnisse:
Nach positiver Absolvierung von Einführung in die Programmierung 2 können die Studierenden Folgendes beschreiben:
- systematische Vorgehensweisen beim Programmieren (vor allem zum Erstellen und Verwenden von Datenabstraktionen sowie zum Durchlaufen und Modifizieren rekursiver Datenstrukturen),
- beispielhaft ausgewählte Algorithmen, Datenstrukturen und Datenabstraktionen,
- häufige Fehlerquellen sowie Techniken zur Qualitätssicherung (Verifikation von Eingabedaten, Exception-Handling, Testen, Dokumentation, Code-Review).
Kognitive und praktische Fertigkeiten:
Nach positiver Absolvierung von Einführung in die Programmierung 2 können die Studierenden
- Inhalte in natürlicher Sprache formulierter Programmieraufgaben in ausführbare Java-Programme umsetzen,
- beschriebene Datenabstraktionen, Algorithmen und Datenstrukturen implementieren und verwenden,
- Sprachelemente und Techniken zur Datenabstraktion, zum Durchlaufen und Modifizieren rekursiver Datenstrukturen, zur Ein- und Ausgabe über Dateien sowie zur Qualitätssicherung anwenden.
Soziale und persönliche Kompetenzen:
Nach positiver Absolvierung von Einführung in die Programmierung 2 können die Studierenden
- beim Lösen von Programmieraufgaben selbständig vorgehen sowie in Zweierteams zusammenarbeiten,
- Eigenschaften von Programmen kommunizieren.
Vorbesprechung
In der Vorbesprechung am 5.3.2018 (10:00-11:00, Audi.Max.) wird viel organisatorische Information zur Lehrveranstaltung geboten. Bitte nehmen Sie daran teil.
Lernaktivitäten
- In den Vorlesungen (Vorträgen) jeden Montag und Dienstag ab jeweils 10 Uhr c.t. im Audi.Max werden die inhaltlichen Themen der Lehrveranstaltung überblicksmäßig erklärt und Beispiele gegeben. Es wird empfohlen, an allen Vorlesungen teilzunehmen. Die erste Vorlesung am 5.3. dient zur Vorbesprechung.
- Das Skriptum steht unter "Unterlagen" zum Download bereit. Es dient als begleitendes Textbuch, enthält aber auch Informationen, die Studierende schon vor der Teilnahme an dieser Lehrveranstaltung haben sollten. Idealerweise machen sich Studierende daher bereits vor Beginn der Lehrveranstaltung mit dem Skriptum vertraut.
- Programmieraufgaben auf insgesamt 7 über das Semester verteilt herausgegebenen Aufgabenblättern sind innerhalb von je ca. 6 Tagen als Hausübungen bei freier Zeiteinteilung zu lösen. Lösungen sind vor der jeweiligen Deadline (stets ein Montag um 6:00 Uhr zu Beginn einer Übungswoche) als IntelliJ-IDEA-Projekte in TUWEL hochzuladen. Außerdem sind in TUWEL jene Aufgaben anzukreuzen, die erfolgreich gelöst werden konnten. Manche der Aufgaben sind als "verpflichtend" gekennzeichnet und werden auf jeden Fall als angekreuzt betrachtet; diese sind unbedingt zu lösen.
- Die Team-Aufgabe ist eine etwas größere Programmieraufgabe, die in einem Zweierteam innerhalb von nicht ganz zwei Monaten zu Lösen ist. Die Lösung muss wie bei Aufgabenblättern in TUWEL hochgeladen werden. Rechtzeitig vor der Deadline soll Feedback zu einer vorläufigen Version der Lösung bei einem Tutor oder einer Tutorin eingeholt werden, und gegebene Empfehlungen sind in die Endversion einzuarbeiten.
- Jede Übungsgruppe besteht aus etwa 25 Personen. In jeder der 8 pro Übungsgruppe im InfLab stattfindenden geleiteten Übungseinheiten zu je 45 Minuten werden die Lösungen eines Aufgabenblatts oder der Team-Aufgabe besprochen. Auf Aufforderung durch den Leiter der Übungsgruppe sind eigene Lösungen zu präsentieren. Außerdem sind alleine oder in einem Zweierteam (wie vom Übungsleiter verlangt) kleine Programmieraufgaben unter Zeitdruck zu lösen. Solche Ad-hoc-Aufgaben können von Lösungen verpflichtender Aufgaben auf Aufgabenblättern abhängen; ohne Lösung der verpflichtenden Aufgabe ist eine solche Ad-hoc-Aufgabe kaum lösbar.
- Das "Programmier-Café" ist ein wöchentlich stattfindender Termin (Freitag, 10 bis 12 Uhr), zu dem sich Studierende freiwillig zu einem zwanglosen Erfahrungsaustausch im InfLab (Pong-Raum) treffen, auch um gemeinsam zu programmieren. Zumindest ein Lehrender, ein Tutor oder eine Tutorin sind anwesend um Fragen zu beantworten.
- Zwei reguläre Tests etwa in der Mitte und am Ende des Semesters (am 9. Mai und 28. Juni) zu je 60 Minuten sind an Computern in den Laboren zu absolvieren und enthalten neben Multiple-Choice-Aufgaben vor allem Programmieraufgaben.
- Zu jedem regulären Test wird ein Nachtragstest stattfinden, dessen Ergebnis als Ersatz für den entsprechenden regulären Test angesehen wird. Die Teilnahme an einem Nachtragstest setzt voraus, dass im Übungsteil mindestens 50% der erreichbaren Leistungen erbracht wurden und der entsprechende reguläre Test versäumt oder negativ beurteilt wurde. Der Nachtragstest zum ersten regulären Test findet zu Beginn der Sommerferien (5. Juli) und jener zum zweiten regulären Test am Ende der Sommerferien statt (genauer Termin wird noch bekanntgegeben).
Wer soll teilnehmen
- Studierenden, die "Einführung in die Programmierung 1" erfolgreich absolviert haben, wird empfohlen, "Einführung in die Programmierung 2" in kurzem Abstand danach zu absolvieren.
- Es wird empfohlen, "Einführung in die Programmierung 2" im selben Semester wie "Algorithmen und Datenstrukturen" zu absolvieren.
- Studierenden, die in "Einführung in die Programmierung 1" nicht positiv beurteilt wurden, wird dringend davon abgeraten, an "Einführung in die Programmierung 2" teilzunehmen. Davon ausgenommen sind höchstens jene Studierende, die nur ganz knapp an einer positiven Beurteilung gescheitert sind, die Ursachen für das Scheitern kennen und diese vor der Teilnahme an "Einführung in die Programmierung 2" behoben haben.
- Studierenden, die im Sommersemester in das Studium einsteigen, wird empfohlen, nur dann an "Einführung in die Programmierung 2" teilzunehmen, wenn schon umfangreiche Programmiererfahrungen in Java vorhanden sind.
Anmeldung
Um an der Lehrveranstaltung teilnehmen zu können, ist in TISS eine Anmeldung zur Lehrveranstaltung innerhalb der kurzen Anmeldefrist nötig. Im selben Zeitraum ist in TISS auch die Anmeldung zu einer Übungsgruppe nötig, bei der die Termine und der Ort für geleitete Übungen bestimmt werden.
Mail
Senden Sie Fragen zur Lehrveranstaltung bitte an folgende Mailadresse:
ep2@complang.tuwien.ac.at
ECTS-Breakdown
(4 ECTS entsprechen 100 Arbeitsstunden)
- 21 h Teilnahme an Vorlesungen
- 06 h Teilnahme an 8 geleiteten Übungseinheiten zu je 45 Minuten
- 03 h Teilnahme an 2 regulären Tests zu je 60 Minuten (und anteilsmäßig an Nachtragstests)
- 28 h Lösung der 7 Aufgabenblätter (4 h pro Aufgabenblatt)
- 16 h Lösung der Team-Aufgabe
- 26 h Selbststudium, Programmier-Cafe, Testvorbereitung
Fachliche und methodische Kenntnisse:
Studierende müssen bereits vor der Teilnahme an der Lehrveranstaltung Folgendes beschreiben können:
- grundlegende prozedurale Konzepte von Java,
- grundlegende Such- und Sortier-Algorithmen auf Arrays,
- Fehlerquellen in einfachen prozeduralen Programmen.
Kognitive und praktische Fertigkeiten:
Studierende müssen bereits vor der Teilnahme an der Lehrveranstaltung einfache Programme in Java erstellen, nachvollziehen, debuggen, modifizieren und dokumentieren können.
Soziale und persönliche Kompetenzen:
Studierende müssen bereits vor der Teilnahme an der Lehrveranstaltung
- beim Lösen von einfachen Programmieraufgaben selbständig vorgehen können,
- einfache Programmeigenschaften kommunizieren können.