185.A92 Einführung in die Programmierung 2
Diese Lehrveranstaltung ist in allen zugeordneten Curricula Teil der STEOP.
Diese Lehrveranstaltung ist in mindestens einem zugeordneten Curriculum Teil der STEOP.

2020S, VU, 3.0h, 4.0EC
TUWEL

Merkmale

  • Semesterwochenstunden: 3.0
  • ECTS: 4.0
  • Typ: VU Vorlesung mit Übung

Lernergebnisse

Nach positiver Absolvierung der Lehrveranstaltung sind Studierende in der Lage

  • Programmieraufgaben, die in natürlicher Sprache formuliert sind, in ausführbare Java-Programme umzusetzen,
  • systematische Vorgehensweisen beim Programmieren (zum Erstellen und Verwenden abstrakter Datentypen einschließlich Abstraktionshierarchien sowie zum Durchlaufen und Modifizieren rekursiver Datenstrukturen) zu beschreiben,
  • ausgewählte Algorithmen (wie Einfügen, Löschen, Suchen, Vergleichen, Sortieren, Iterieren), Datenstrukturen (Varianten von Listen, Bäumen und Hashtabellen) und abstrakte Datentypen (wie Datensätze, Queues, Stacks, Collections, Listen, Maps und Hierarchien davon) zu beschreiben,
  • vorgegebene Datenabstraktionen, Algorithmen und Datenstrukturen zu implementieren und zu verwenden,
  • Sprachelemente und Techniken zur Datenabstraktion, zum Durchlaufen und Modifizieren rekursiver Datenstrukturen, zur Ein- und Ausgabe über Dateien sowie zur Qualitätssicherung anzuwenden,
  • häufige Fehlerquellen sowie Techniken zur Qualitätssicherung (Verifikation von Eingabedaten, Exception-Handling, Testen, Dokumentation, Code-Review) zu beschreiben,
  • beim Lösen von Programmieraufgaben selbständig vorzugehen sowie in Zweierteams zusammzuenarbeiten und dabei Eigenschaften von Programmen zu kommunizieren.

Inhalt der Lehrveranstaltung

  • Konzept der Datenabstraktion und Sprachelemente zur Datenabstraktion
  • Implementierung und wesentliche Eigenschaften rekursiver Datenstrukturen (wie Listen und Bäume)
  • Implementierung und wesentliche Eigenschaften von Algorithmen (etwa zum Einfügen, Löschen, Suchen, Sortieren, Vergleichen, Konvertieren, Iterieren) für verschiedene Datenstrukturen
  • Abstraktion über Datenstrukturen mit vergleichbaren Zugriffsfunktionen
  • Exception-Handling
  • Ein- und Ausgabe über Dateien, Überprüfung von Eingaben
  • einfache Testmethoden und Code-Review
  • Ansätze zur Programmoptimierung und damit verbundene Fehlerquellen
  • Programmierstile und Programmdokumentation

Methoden

  • 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 2.3. dient zur Vorbesprechung.
  • Das Skriptum steht unter "Unterlagen" zum Download bereit. Es dient als begleitendes Lehrbuch, 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 einer knappen Woche als Hausübungen bei freier Zeiteinteilung zu lösen. Lösungen sind vor der jeweiligen Deadline als IntelliJ-IDEA-Projekte abzugeben.
  • Die Team-Aufgabe ist eine etwas größere Programmieraufgabe, die in einem Zweierteam innerhalb von etwa zwei Monaten zu Lösen ist. Die Lösung muss wie bei Aufgabenblättern abgegeben 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 Übungstests können von Lösungen der Aufgabenblätter abhängen; ohne Lösung des entsprechenden Aufgabenblatts ist eine solche Aufgabe kaum lösbar.
  • Das Programmier-Café ist ein wöchentlich stattfindender Termin, zu dem sich Studierende freiwillig zu einem zwanglosen Erfahrungsaustausch im InfLab 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 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 kurz vor Beginn der Sommerferien und jener zum zweiten regulären Test kurz nach Ende der Sommerferien statt.

Prüfungsmodus

Prüfungsimmanent

Weitere Informationen

Vorbesprechung

In der Vorbesprechung am 2.3.2019 (10:00-11:00, Audi.Max.) wird viel organisatorische Information zur Lehrveranstaltung geboten. Bitte nehmen Sie daran teil.

Wer soll an der Lehrveranstaltung 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.
  • 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 während der kurzen Anmeldefrist eine Anmeldung zu einer Übungsgruppe der Lehrveranstaltung nötig, bei der die Termine und der Ort für geleitete Übungen bestimmt werden.

Mail

Senden Sie Fragen zur Lehrveranstaltung bitte von Ihrer TU-Mailadresse aus 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-Café, Testvorbereitung

Fernlehre

Lernaktivitäten mit Anwesenheit an der TU werden im ganzen Semester nur in wenigen Ausnahmefällen stattfinden. Aus diesem Grund müssen wir auch den Abhaltemodus von EP2 entsprechend anpassen. Wir werden folgendermaßen vorgehen:

  • Übungseinheiten finden nicht im InfLab statt. Geben Sie dennoch wie geplant (bis spätestens Freitag, 13:00 Uhr pünktlich) Lösungen Ihrer Aufgabenblätter in Git über commit und push ab. Diese Lösungen werden wir uns anschauen und beurteilen. Die Beurteilung erfolgt in bis zu zwei Schritten:
    1. Im ersten Schritt erfolgt die Beurteilung teilweise automatisiert (durch Unit-Tests), begleitet von einer oberflächlichen manuellen Kontrolle durch Tutor_innen. Wir werden Sie über die Ergebnisse durch "Issues" in Git informieren.
    2. Einige (nicht alle) abgegebene Lösungen werden einer genaueren manuellen Beurteilung unterzogen. Die Auswahl der so zu beurteilenden Lösungen erfolgt auf ähnliche Weise wie die Auswahl der Studierenden, die bei einer Übung mit Anwesenheit gebeten würden, die Lösung zu präsentieren. Zu den auf diese Weise beurteilten Lösungen erhalten Sie ebenfalls Feedback in Form von Git-Issues. Sollten Sie kein solches Feedback erhalten, wurde Ihre Lösung keiner genaueren Beurteilung unterzogen.
  • Die Beurteilung der Aufgabenblätter ergibt sich aus obigen Beurteilungsschritten (Punkte aus dem 2. Schritt wenn es diesen gibt, sonst aus dem 1. Schritt), das heißt, als Mitarbeitsfaktor (der dazu gedacht war, die Mitarbeit während der Übung in die Beurteilung einzubeziehen) wird stets 1 angenommen, auch ohne Anwesenheit.
  • Im Diskussionsforum (TUWEL) wird nach der Abgabe-Deadline pro Aufgabenblatt ein Thema eröffnet, in dem neben einer "Musterlösung" auch die Unit-Tests veröffentlicht werden, die im ersten Beurteilungsschritt verwendet wurden. Bitte nutzen Sie dieses Thema auch dazu, unterschiedliche Lösungsvarianten der Aufgaben zu diskutieren.
  • Für jede Übungsgruppe steht eine Tutorin oder ein Tutor bereit um alle Ihre Fragen zu beantworten und Sie auch inhaltlich beim Lernen zu unterstützen. Die Tutorin oder der Tutor Ihrer Übungsgruppe wird sich mit Ihnen in Verbindung setzen. Bitte zögern Sie nicht, Fragen jeglicher Art zu stellen oder Diskussionen über inhaltliche Themen zu beginnen. Die Kommunikation mit Tutor_innen bleibt privat und wird nicht veröffentlicht. Für öffentliche Diskussionen raten wir dazu, das Diskussionsforum in TUWEL zu verwenden.
  • Die Teamaufgabe ist wie geplant in Zweierteams zu lösen. Einzelheiten zur Teambildung erfahren Sie auf dem entsprechenden Aufgabenblatt am 20. März. Wir weisen darauf hin, dass es zahlreiche Möglichkeiten der Zusammenarbeit gibt, auch ohne sich persönlich zu treffen.
  • Die Übungstests (Kurztests während der Übungen) entfallen gänzlich. Dadurch sind in den Übungen insgesamt 32 Punkte weniger erreichbar als ursprünglich geplant. Das Beurteilungsschema wird angepasst, das heißt, die erreichbaren 68 Punkte entsprechen 100%, für eine positive Übungsbeurteilung sind nach wie vor 50% nötig, das sind 34 Punkte.
  • Das Programmier-Cafe kann nicht stattfinden. Bitte benutzen Sie das Diskussionsforum oder wenden Sie sich mit Fragen an den/die Tutor_in Ihrer Übungsgruppe.
  • Alle weiteren Vorlesungen werden nicht im Audi.Max. abgehalten. Sie werden aber über TUWEL entsprechende Vorlesungsaufzeichnungen abrufen können. Natürlich stehen Ihnen neben dem Skriptum auch die Vorlesungsfolien und Beispielprogramme zur Verfügung, die Sie wie gewohnt über TISS herunterladen können.
  • Beide Tests werden voraussichtlich Mitte Juni bis Anfang Juli an mehreren bei der Prüfungsanmeldung wählbaren Tagen stattfinden, voraussichtlich Test 1 und Test 2 pro Person zu einem gemeinsamen Termin um Weg- und Aufenthaltszeiten auf ein Minimum zu redzieren. Auch wenn beide Tests zum gleichen Termin (bzw. direkt hintereinander) stattfinden, handelt es sich um zwei Tests, die getrennt voneinander beurteilt werden. Nachtragstests zu beiden Tests werden voraussichtlich im Herbst (ebenso zu einem gemeinsamen Termin) stattfinden. Bezüglich der Zulassung zu einem Nachtragstest gibt es keine Änderungen, das heißt, ein Antritt zu einem Nachtragstest ist nur möglich, wenn der Übungsteil positiv abgeschlossen wurde, der entsprechende reguläre Test aber nicht.

Direkte Kommunikation ist ein wichtiger Bestandteil vieler erfolgversprechender Lernaktivitäten. Uns ist bewusst, dass "Fernlehre" kein gleichwertiger Ersatz sein kann. Wir bitten um Verständnis für die notwendigen Maßnahmen. Sie sollten die Nachteile durch diese Maßnahmen aber durch intensivere persönliche Auseinandersetzung mit den Themen der Lehrveranstaltung wettmachen können. Insbesondere sollten Sie die Beispielprogramme, auch die komplexeren, ohne fremde Hilfe (auch ohne Google) zu verstehen versuchen und Programmieraufgaben ohne fremde Hilfe lösen.

Vortragende

Institut

LVA Termine

TagZeitDatumOrtBeschreibung
Mo.10:00 - 11:0002.03.2020 - 09.03.2020GM 1 Audi. Max.- ARCH-INF Vorlesung
Di.10:00 - 11:0003.03.2020 - 10.03.2020GM 1 Audi. Max.- ARCH-INF Vorlesung
Do.15:00 - 17:0012.03.2020InfLab Pong Programmier-Café
Einführung in die Programmierung 2 - Einzeltermine
TagDatumZeitOrtBeschreibung
Mo.02.03.202010:00 - 11:00GM 1 Audi. Max.- ARCH-INF Vorlesung
Di.03.03.202010:00 - 11:00GM 1 Audi. Max.- ARCH-INF Vorlesung
Mo.09.03.202010:00 - 11:00GM 1 Audi. Max.- ARCH-INF Vorlesung
Di.10.03.202010:00 - 11:00GM 1 Audi. Max.- ARCH-INF Vorlesung
Do.12.03.202015:00 - 17:00InfLab Pong Programmier-Café

Leistungsnachweis

  • Eine positive Beurteilung der Lehrveranstaltung setzt voraus, dass in jedem der folgenden drei Teile mindestens 50% der erreichbaren Leistungen erbracht wurden:
    • Übungsteil
    • 1. Test (1. regulärer Test oder ersatzweise entsprechender Nachtragstest)
    • 2. Test (2. regulärer Test oder ersatzweise entsprechender Nachtragstest)
  • Bei positiver Beurteilung der Lehrveranstaltung ergibt sich die Note aus dem Durchschnitt der prozentuell in jedem dieser drei Teile erbrachten Leistungen:
    1. :  87.5% bis 100% (sehr gut)
    2. :  75% bis 87,5% (gut)
    3. :  62.5% bis 75% (befriedigend)
    4. :  50% bis 62.5% (genügend)
  • Der Prozentsatz erbrachter Leistungen des Übungsteils ist die Summe der auf folgenden drei Gebieten erreichten Punkte (insgesamt maximal 100 Punkte):
    • Bis zu 35 Punkte: Summe der Beurteilungen der 7 Aufgabenblätter und deren Präsentationen während der Übungseinheiten (maximal 5 Punkte pro Aufgabenblatt), die so errechnet werden: (Mitarbeitsfaktor * Punkte für gelöste Aufgaben des Aufgabenblatts) wobei der Mitarbeitsfaktor vom Übungsleiter vergeben wird und zwischen 0 und 1 liegt (1 in der Regel; 0 bei Nichtanwesenheit während der Übung, Mitarbeitsverweigerung oder offensichtlichem Nichtverstehen einer selbst hochgeladenen Lösung einer Aufgabe; ein Wert zwischen 0 und 1 bei mangelhafter Präsentation),
    • Bis zu 32 Punkte: Summe der Beurteilungen der 8 Übungstests (jeweils maximal 4 Punkte) durch den Übungsleiter,
    • Bis zu 33 Punkte: Beurteilung der Team-Aufgabe durch den Übungsleiter, wobei die Team-Aufgabe mit maximal 17 Punkten beurteilt wird, wenn vor dem Hochladen der endgültigen Lösung kein Feedback von einer Tutorin oder einem Tutor eingeholt wurde.

Prüfungen

TagZeitDatumOrtPrüfungsmodusAnmeldefristAnmeldungPrüfung
Di.10:00 - 12:0010.11.2020InfLab Q*bert schriftlich22.10.2020 00:00 - 03.11.2020 12:00in TISSNachtermin zum Nachtragstest (beide Tests zu wiederholen)
Di.10:00 - 11:0010.11.2020InfLab Frogger schriftlich22.10.2020 00:00 - 03.11.2020 12:00in TISSNachtermin zum Nachtragstest (nur ein Test zu wiederholen)

LVA-Anmeldung

Von Bis Abmeldung bis
02.03.2020 12:00 04.03.2020 13:00 04.03.2020 13:00

Anmeldemodalitäten:

Die Anmeldung zu einer Übungsgruppe gilt gleichzeitig auch als Anmeldung zur Lehrveranstaltung.

Gruppen-Anmeldung

GruppeAnmeldung VonBis
di11a02.03.2020 12:0004.03.2020 13:00
di11b02.03.2020 12:0004.03.2020 13:00
di12a02.03.2020 12:0004.03.2020 13:00
di12b02.03.2020 12:0004.03.2020 13:00
di17a02.03.2020 12:0004.03.2020 13:00
di17b02.03.2020 12:0004.03.2020 13:00
di18a02.03.2020 12:0004.03.2020 13:00
di18b02.03.2020 12:0004.03.2020 13:00
mi11a02.03.2020 12:0004.03.2020 13:00
mi11b02.03.2020 12:0004.03.2020 13:00
mi12a02.03.2020 12:0004.03.2020 13:00
mi12b02.03.2020 12:0004.03.2020 13:00
mi17a02.03.2020 12:0004.03.2020 13:00
mi17b02.03.2020 12:0004.03.2020 13:00
mi18a02.03.2020 12:0004.03.2020 13:00
mi18b02.03.2020 12:0004.03.2020 13:00
mo11a02.03.2020 12:0004.03.2020 13:00
mo11b02.03.2020 12:0004.03.2020 13:00
mo12a02.03.2020 12:0004.03.2020 13:00
mo12b02.03.2020 12:0004.03.2020 13:00
mo15a02.03.2020 12:0004.03.2020 13:00
mo15b02.03.2020 12:0004.03.2020 13:00
mo16a02.03.2020 12:0004.03.2020 13:00
mo16b02.03.2020 12:0004.03.2020 13:00
mo17a02.03.2020 12:0004.03.2020 13:00
mo17b02.03.2020 12:0004.03.2020 13:00
mo18a02.03.2020 12:0004.03.2020 13:00
mo18b02.03.2020 12:0004.03.2020 13:00

Curricula

Literatur

Die beiden zum Download angebotenen Varianten des Skriptums unterscheiden sich nur im Format, nicht im Inhalt.

Vorkenntnisse

Studierende müssen bereits vor der Teilnahme an der Lehrveranstaltung in der Lage sein

  • einfache Programme in Java zu erstellen, modifizieren, debuggen und dokumentieren sowie deren Abläufe nachzuzeichnen,
  • grundlegende prozedurale Konzepte von Java zu beschreiben,
  • grundlegende Such- und Sortier-Algorithmen auf Arrays zu beschreiben,
  • Fehlerquellen in einfachen prozeduralen Programmen zu beschreiben,
  • beim Lösen von einfachen Programmieraufgaben selbständig vorzugehen und einfache Programmeigenschaften zu kommunizieren.

 

Vorausgehende Lehrveranstaltungen

Begleitende Lehrveranstaltungen

Sprache

Deutsch