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.

2019S, VU, 3.0h, 4.0EC

Merkmale

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

Ziele der Lehrveranstaltung

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.

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) 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
  • Programmierstile und Programmdokumentation

Weitere Informationen

Vorbesprechung

In der Vorbesprechung am 4.3.2019 (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 4.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. Manche der Aufgaben sind als "verpflichtend" gekennzeichnet und sind unbedingt zu lösen.
  • 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 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, 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.

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 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-Cafe, Testvorbereitung

Vortragende

Institut

LVA Termine

TagZeitDatumOrtBeschreibung
Mo.10:00 - 11:0004.03.2019 - 24.06.2019GM 1 Audi. Max. Vorlesung
Di.10:00 - 11:0005.03.2019 - 25.06.2019GM 1 Audi. Max. Vorlesung
Do.15:00 - 17:0014.03.2019 - 06.06.2019Informatiklabor Pong Programmier-Café
Fr.10:00 - 12:0015.03.2019 - 21.06.2019Informatiklabor Pong Programmier-Café
Einführung in die Programmierung 2 - Einzeltermine
TagDatumZeitOrtBeschreibung
Mo.04.03.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Di.05.03.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Mo.11.03.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Di.12.03.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Do.14.03.201915:00 - 17:00Informatiklabor Pong Programmier-Café
Fr.15.03.201910:00 - 12:00Informatiklabor Pong Programmier-Café
Mo.18.03.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Di.19.03.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Fr.22.03.201910:00 - 12:00Informatiklabor Pong Programmier-Café
Mo.25.03.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Di.26.03.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Fr.29.03.201910:00 - 12:00Informatiklabor Pong Programmier-Café
Mo.01.04.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Di.02.04.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Fr.05.04.201910:00 - 12:00Informatiklabor Pong Programmier-Café
Mo.08.04.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Di.09.04.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Fr.12.04.201910:00 - 12:00Informatiklabor Pong Programmier-Café
Mo.29.04.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Di.30.04.201910:00 - 11:00GM 1 Audi. Max. Vorlesung

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 der Durchschnitt der prozentuell erbrachten Leistungen auf folgenden drei Gebieten:
    • Summe der Beurteilungen der Aufgabenblätter und deren Präsentationen während der Übungseinheiten, die so errechnet werden: (Mitarbeitsfaktor * Punkte für gelöste Aufgaben laut Aufgabenblatt) 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 einer selbst hochgeladenen Lösung einer Aufgabe),
    • Summe der Beurteilungen der vor Ort zu lösenden Ad-hoc-Aufgaben durch den Übungsleiter,
    • Beurteilung der Team-Aufgabe durch den Übungsleiter, wobei die Team-Aufgabe mit maximal 50% beurteilt wird, wenn vor dem Hochladen der endgültigen Lösung kein Feedback von einer Tutorin oder einem Tutor zu einer vorläufigen Lösung eingeholt wurde.

Prüfungen

TagZeitDatumOrtPrüfungsmodusAnmeldefristAnmeldungPrüfung
Do.08:00 - 20:0014.05.2020complang-Labor schriftlich05.05.2020 12:00 - 12.05.2020 13:00in TISS1. Test
Do.08:00 - 20:0014.05.2020Informatiklabor Frogger schriftlich05.05.2020 12:00 - 12.05.2020 13:00in TISS1. Test
Do.08:00 - 20:0014.05.2020Informatiklabor Q*bert schriftlich05.05.2020 12:00 - 12.05.2020 13:00in TISS1. Test
Do.08:00 - 20:0014.05.2020Informatiklabor Pong schriftlich05.05.2020 12:00 - 12.05.2020 13:00in TISS1. Test
Do.08:00 - 20:0014.05.2020DSLab schriftlich05.05.2020 12:00 - 12.05.2020 13:00in TISS1. Test
Do.10:00 - 17:3014.05.2020 CL-Lab, Argentinierstraße 8, Tiefparterreschriftlich05.05.2020 12:00 - 12.05.2020 13:00in TISSTest 1 im CL-Lab
Do.10:00 - 17:3014.05.2020 DSLab, Argentinierstraße 8, Keller, Eingang Paniglgasseschriftlich05.05.2020 12:00 - 12.05.2020 13:00in TISSTest 1 im DSLab
Do.10:00 - 17:3014.05.2020 InfLab (Frogger, Q*bert, Pong) Favoritenstraßeschriftlich05.05.2020 12:00 - 12.05.2020 13:00in TISSTest 1 im InfLab
Do.10:00 - 17:3014.05.2020 TILab, Treitlstraße 3, Hochparterreschriftlich05.05.2020 12:00 - 12.05.2020 13:00in TISSTest 1 im TILab
Do.08:00 - 20:0025.06.2020Informatiklabor Pong schriftlich16.06.2020 12:00 - 23.06.2020 13:00in TISS2. Test
Do.08:00 - 20:0025.06.2020DSLab schriftlich16.06.2020 12:00 - 23.06.2020 13:00in TISS2. Test
Do.08:00 - 20:0025.06.2020Informatiklabor Frogger schriftlich16.06.2020 12:00 - 23.06.2020 13:00in TISS2. Test
Do.08:00 - 20:0025.06.2020Informatiklabor Q*bert schriftlich16.06.2020 12:00 - 23.06.2020 13:00in TISS2. Test
Do.08:00 - 20:0025.06.2020complang-Labor schriftlich16.06.2020 12:00 - 23.06.2020 13:00in TISS2. Test

Gruppentermine

GruppeTagZeitDatumOrtBeschreibung
di11aDi.11:00 - 12:0019.03.2019Informatiklabor Frogger -
di11aDi.11:00 - 12:0002.04.2019 - 18.06.2019Informatiklabor Frogger -
di11bDi.11:00 - 12:0019.03.2019Informatiklabor Q*bert -
di11bDi.11:00 - 12:0002.04.2019 - 18.06.2019Informatiklabor Q*bert -
di12aDi.12:00 - 13:0019.03.2019Informatiklabor Frogger -
di12aDi.12:00 - 13:0002.04.2019 - 18.06.2019Informatiklabor Frogger -
di12bDi.12:00 - 13:0019.03.2019Informatiklabor Q*bert -
di12bDi.12:00 - 13:0002.04.2019 - 18.06.2019Informatiklabor Q*bert -
di17aDi.17:00 - 18:0019.03.2019Informatiklabor Frogger -
di17aDi.17:00 - 18:0002.04.2019 - 18.06.2019Informatiklabor Frogger -
di17bDi.17:00 - 18:0019.03.2019Informatiklabor Q*bert -
di17bDi.17:00 - 18:0002.04.2019 - 18.06.2019Informatiklabor Q*bert -
di18aDi.18:00 - 19:0019.03.2019 - 18.06.2019Informatiklabor Frogger -
di18bDi.18:00 - 19:0019.03.2019 - 18.06.2019Informatiklabor Q*bert -
mi11aMi.11:00 - 12:0020.03.2019Informatiklabor Frogger -
mi11aMi.11:00 - 12:0003.04.2019 - 12.06.2019Informatiklabor Frogger -
mi11bMi.11:00 - 12:0020.03.2019Informatiklabor Q*bert -
mi11bMi.11:00 - 12:0003.04.2019 - 12.06.2019Informatiklabor Q*bert -
mi12aMi.12:00 - 13:0020.03.2019Informatiklabor Frogger -
mi12aMi.12:00 - 13:0003.04.2019 - 12.06.2019Informatiklabor Frogger -
mi12bMi.12:00 - 13:0020.03.2019Informatiklabor Q*bert -
mi12bMi.12:00 - 13:0003.04.2019 - 12.06.2019Informatiklabor Q*bert -
mi17aMi.17:00 - 18:0020.03.2019Informatiklabor Frogger -
mi17aMi.17:00 - 18:0003.04.2019 - 12.06.2019Informatiklabor Frogger -
mi17bMi.17:00 - 18:0020.03.2019 - 12.06.2019Informatiklabor Q*bert -
mi18aMi.18:00 - 19:0020.03.2019 - 12.06.2019Informatiklabor Frogger -
mi18bMi.18:00 - 19:0020.03.2019 - 12.06.2019Informatiklabor Q*bert -
mo11aMo.11:00 - 12:0018.03.2019Informatiklabor Frogger -
mo11aMo.11:00 - 12:0001.04.2019 - 17.06.2019Informatiklabor Frogger -
mo11bMo.11:00 - 12:0018.03.2019Informatiklabor Q*bert -
mo11bMo.11:00 - 12:0001.04.2019 - 17.06.2019Informatiklabor Q*bert -
mo12aMo.12:00 - 13:0018.03.2019Informatiklabor Frogger -
mo12aMo.12:00 - 13:0001.04.2019 - 17.06.2019Informatiklabor Frogger -
mo12bMo.12:00 - 13:0018.03.2019Informatiklabor Q*bert -
mo12bMo.12:00 - 13:0001.04.2019 - 17.06.2019Informatiklabor Q*bert -
mo15aMo.15:00 - 16:0018.03.2019Informatiklabor Frogger -
mo15aMo.15:00 - 16:0001.04.2019 - 17.06.2019Informatiklabor Frogger -
mo15bMo.15:00 - 16:0018.03.2019Informatiklabor Q*bert -
mo15bMo.15:00 - 16:0001.04.2019 - 17.06.2019Informatiklabor Q*bert -
mo16aMo.16:00 - 17:0018.03.2019Informatiklabor Frogger -
mo16aMo.16:00 - 17:0001.04.2019 - 17.06.2019Informatiklabor Frogger -
mo16bMo.16:00 - 17:0018.03.2019Informatiklabor Q*bert -
mo16bMo.16:00 - 17:0001.04.2019 - 17.06.2019Informatiklabor Q*bert -
mo17aMo.17:00 - 18:0018.03.2019Informatiklabor Frogger -
mo17aMo.17:00 - 18:0001.04.2019 - 17.06.2019Informatiklabor Frogger -
mo17bMo.17:00 - 18:0018.03.2019Informatiklabor Q*bert -
mo17bMo.17:00 - 18:0001.04.2019 - 17.06.2019Informatiklabor Q*bert -
mo18aMo.18:00 - 19:0018.03.2019 - 17.06.2019Informatiklabor Frogger -
mo18bMo.18:00 - 19:0018.03.2019 - 17.06.2019Informatiklabor Q*bert -

LVA-Anmeldung

Von Bis Abmeldung bis
04.03.2019 12:00 06.03.2019 13:00 06.03.2019 13:00

Anmeldemodalitäten:

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

Die Anmeldung ist derzeit manuell gesperrt

Gruppen-Anmeldung

GruppeAnmeldung VonBis
di11a04.03.2019 12:0006.03.2019 13:00
di11b04.03.2019 12:0006.03.2019 13:00
di12a04.03.2019 12:0006.03.2019 13:00
di12b04.03.2019 12:0006.03.2019 13:00
di17a04.03.2019 12:0006.03.2019 13:00
di17b04.03.2019 12:0006.03.2019 13:00
di18a04.03.2019 12:00
di18b04.03.2019 12:00
mi11a04.03.2019 12:0006.03.2019 13:00
mi11b04.03.2019 12:0006.03.2019 13:00
mi12a04.03.2019 12:0006.03.2019 13:00
mi12b04.03.2019 12:0006.03.2019 13:00
mi17a04.03.2019 12:0006.03.2019 13:00
mi17b04.03.2019 12:0006.03.2019 13:00
mi18a04.03.2019 12:0006.03.2019 13:00
mi18b04.03.2019 12:00
mo11a04.03.2019 12:0006.03.2019 13:00
mo11b04.03.2019 12:0006.03.2019 13:00
mo12a04.03.2019 12:0006.03.2019 13:00
mo12b04.03.2019 12:0006.03.2019 13:00
mo15a04.03.2019 12:0006.03.2019 13:00
mo15b04.03.2019 12:0006.03.2019 13:00
mo16a04.03.2019 12:0006.03.2019 13:00
mo16b04.03.2019 12:0006.03.2019 13:00
mo17a04.03.2019 12:0006.03.2019 13:00
mo17b04.03.2019 12:0006.03.2019 13:00
mo18a04.03.2019 12:0006.03.2019 13:00
mo18b04.03.2019 12:0006.03.2019 13:00

Curricula

Literatur

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

Vorkenntnisse

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.

Vorausgehende Lehrveranstaltungen

Begleitende Lehrveranstaltungen

Sprache

Deutsch