TU Wien:Einführung in die Programmierung 1 VU (Podlipnig)

From VoWi
Jump to navigation Jump to search

Daten[edit]

Lecturers Stefan Podlipnig
ECTS 5,5
replaces Programmkonstruktion VU (Puntigam)
Department Logic and Computation
Abbreviation EP1
Links tiss:185A91 , Mattermost-Channel
Zuordnungen
Bachelor Wirtschaftsinformatik Pflichtmodul INT/PRO - Einführung in die Programmierung
Bachelor Medieninformatik und Visual Computing Pflichtmodul Einführung in die Programmierung
Bachelor Medizinische Informatik Pflichtmodul Einführung in die Programmierung
Bachelor Software & Information Engineering Pflichtmodul Einführung in die Programmierung
Bachelor Technische Informatik Pflichtmodul Einführung in die Programmierung

Mattermost: Channel "einfuehrung-in-die-programmierung-1"RegisterMattermost-Infos

Inhalt[edit]

Die LVA bietet (dem Namen entsprechend) eine Einführung in die Programmierung mit der Programmiersprache Java. Themen:

  • Einleitung
  • Variablen, Datentypen, Operatoren
  • Verzweigungen
  • Eingabe und Ausgabe
  • Schleifen
  • Methoden
  • Zusicherungen (Assertions)
  • Arrays
  • Rekursionen — /Übungen zur Rekursion
  • Algorithmen

Ablauf[edit]

Wer schon Programmiererfahrung hat, kann bei dieser LVA einen freiwilligen TUWEL-Online-Einstufungstest machen:

  • Der Einstufungstest bestand im WS2017 aus 20 Fragen / 5 Minuten / 60 Minuten pro Versuch, der beste Versuch zählt
  • Erreicht man genug Punkte (im WS2017 15,5 / 20, also 77,5%), wird man in die Kompetenzstufe 2 gereiht, in der man nur 3 Übungen absolvieren muss.
    WS2018: Einstufungstest ab 18/24 Punkten (also 75%) in K2, dann 4 Übungen
  • Erreicht man die benötigte Punkteanzahl nicht, bleibt man in Kompetenzstufe 1 und muss 8 Übungen absolvieren.
  • Macht man den Einstufungstest nicht, kommt man auch in Kompetenzstufe 1.
  • Stand Sommersemester 2020: man kann nun 25 Punkte erreichen beim Einstufungstest für die Kompetenzstufe K2; sobald man 20 Punkte oder mehr erreicht ist man in Kompetenzstufe 2. Allerdings zählen die Punkte auch für die Endnote. Wer also nur 20 Punkte erreicht sollte sich überlegen ob er vielleicht nicht lieber Kompetenzstufe 1 nehmen möchte, da er/sie dann hier 25 Punkte erreichen könnte, also 5 Punkte mehr. (Man benötigt 60 Punkte für einen positiven Abschluß; erfahrungsgemäß ist der letzte Programmiertest am schwierigsten, zumindest hat das Podlipnig auch so gesagt im Zuge der Vorbesprechung). [Weitere Anmerkung: im Sommersemester 2020 durch die aktuellen Ereignisse, i. e. Covid19, verschieben sich nun einige Termine. Es wurde angekündigt das verstärkt TUWEL genutzt wird; daher ist das Sommersemester 2020 vermutlich nicht 1:1 zu vergleichen mit dem Sommersemester 2021 oder anderen Sommersemestern.]

Benötigte/Empfehlenswerte Vorkenntnisse[edit]

Grundsätzlich wirklich keine! Erfahrungswerte in einer beliebigen objektorientierten Programmiersprache würden aber nicht schaden.

Vortrag[edit]

Im Vergleich zu EP2, didaktisch ausgezeichnet.

Übungen[edit]

Allgemeines[edit]

Die K1-Übungen beginnen Mitte Oktober, die K2-Übungen Mitte November (für das Wintersemester; die VU wird jedoch auch im Sommersemester angeboten).

Im ersten Teil jeder Übung wird für jede Aufgabe ein_e Student_in zufällig (z.T. auch alphabetisch) ausgewählt, um seine Lösung zu präsentieren und zu erklären.

Im zweiten Teil wird entweder eine Ad-Hoc-Übung durchgeführt oder ein TUWEL-Test ist zu lösen.

Die beiden ersten Übungen der Kompetenzstufe 1 sind davon ausgenommen, die dienen nur zum "freien Üben", werden jedoch auch mit 1 Punkt beziehungsweise 2 Punkten "belohnt" - daher sollte man diese unbedingt besuchen wenn man in K1 beginnt.

Ad-Hoc-Aufgaben[edit]

Ad-Hoc-Aufgaben sind praktische Programmieraufgaben, die ohne Zuhilfenahme von Unterlagen oder Websites (kein Google, kein StackOverflow) gelöst werden müssen. Für die Ad-Hoc-Übung hat man 45 Minuten Zeit. Für richtige Ansätze bekommt man Teilpunkte. Ad-Hoc-Aufgaben orientieren sich außerdem stark an den Aufgaben der jeweiligen Übungswoche.

TUWEL-Tests[edit]

TUWEL-Tests sind Theorietests, man muss also keinen Code schreiben. Es wird aber gefordert, dass man Java-Code lesen, verstehen und auf Fehler überprüfen kann. Die Fragen sind alle aus dem Fragenkatalog der TUWEL-Tests, die man vorab zuhause üben kann.

Die TUWEL-Tests sind außerdem jederzeit zum Üben zugänglich, die tatsächlichen Fragen kommen dann aus demselben Fragenpool. Bei der Lösung der Aufgaben ist ausschließlich TUWEL zugänglich, eine Nutzung der IDE oder von Unterlagen ist nicht möglich bzw. erlaubt. Papier für Notizen/Skizzen/Überlegungen wird zur Verfügung gestellt.

Der TUWEL Test ist zum Beispiel unter folgender URL zu finden (für registrierte Benutzer), 2019S:

https://tuwel.tuwien.ac.at/course/view.php?id=17119

Für registrierte Benutzer 2020S:

https://tuwel.tuwien.ac.at/course/view.php?id=21169

Prüfung, Benotung[edit]

Geprüft wird mittels der TUWEL-Tests und Programmiertest. Es gibt in den 6 Übungen jeweils 3 TUWEL-Tests und 3 (ehem. AdHoc) Programmiertests zu lösen, für die man jeweils 30 bis 45 Minuten Zeit hat. Mit diesen und den Übungsaufgaben sind maximal 100 Punkte zu erreichen. Für eine positive Note benötigt man 60.

1. TUWEL-Test   5 Punkte zu erreichen
1. Programmiertest 10 Punkte zu erreichen
2. TUWEL-Test 10 Punkte zu erreichen
2. Programmiertest 15 Punkte zu erreichen
3. TUWEL-Test 15 Punkte zu erreichen
3. Programmiertest 20 Punkte zu erreichen

Also insgesamt 75 durch die Tests plus 25 durch die Aufgabenblätter.

Anmerkung: mit Sommersemester 2020 hat sich das ganze ein wenig geändert, auch die Punkte. Es scheint nur noch einen TUWEL-Test zu geben, der jedoch 20 Punkte bringt.

Dauer der Zeugnisausstellung[edit]

Semester Letzte Leistung Zeugnis Dauer
2019W 23.01.2020 03.02.2020 11 Tage

Zeitaufwand[edit]

In Kompetenzstufe 1:

  • stark abhängig von der Programmiererfahrung
  • mit Programmiererfahrung (kein Java zuvor) ~2-3h pro Übungsblatt (6 Übungsblätter)
  • ohne Programmiererfahrung (noch nie programmiert) ~ 8 - 10h pro Übungsblatt

In Kompetenzstufe 2:

  • ca. 10 Stunden pro Übungsblatt
  • mit guter Programmiererfahrung: ca. 1,5h pro Blatt.

Unterlagen[edit]

noch offen

  • Übungsblätter samt Lösungen, WS2018: Siehe Materialien
  • Materialien
  • [Todo: Bitte noch einen Fragenkatalog aus TUWEL hier zur Verfügung stellen, und diesen Eintrag dann entfernen; dies mag künftigen Studierenden helfen sich auf den TUWEL Test vorzubereiten, auch wenn dann andere Fragen kommen. Man kann zumindest grob abschätzen in welche Richtung diese Theorie-Fragen gehen. Sobald der für das Sommersemester 2020 veröffentlicht wird werde ich dies tun, und das hier entfernen; mit Stand 07.03.2020 gibt es jedoch auf TUWEL noch keinen TUWEL-Fragenkatalog. Leider gibt es auch hier bei den Materialien noch keinen alten Katalog.]

Tipps[edit]

  • Mit etwas Programmiererfahrung (z.B. HTL) ist es auf jeden Fall möglich die schwere Kompetenzstufe K2 zu machen, die TUWEL-Tests sind exakt gleich. Die Aufgabenblätter und Ad-Hoc-Übungen sind jedoch um einiges schwerer. Wenn du also schon Ahnung hast musst du entscheiden was dir lieber ist: eine gute Note ohne viel Arbeitsaufwand dafür 5 extra Übungen oder etwas schwerere Aufgaben & höheres Übungsniveau
  • Die K2-Übungsblätter stellen teilweise komplexere Aufgaben, zum Teil aber auch idente zu jenen der K1, allerdings zu früheren Zeitpunkten. K2-Aufgaben der ersten Übungsblätter können also auch einige Wochen später in ähnlicher Form bei K1-Blättern auftauchen. (Stand erstes Semester der LV WS2017)
    WS2018: Kompetenzstufe 1 und 2 unterscheiden sich nur dadurch, dass man in Stufe 2 die ersten beiden Übungsblätter nicht macht und stattdessen die Punkte des Einstufungstests zählen.
  • Bei den TUWEL-Tests ist genaues Hinschauen gefragt - oft scheint Code auf den ersten Blick korrekt, ist aber aufgrund von Kleinigkeiten die leicht übersehen werden können falsch (bspw Semikolon statt Doppelpunkt, ...). Wer die Tests zuvor häufig durchprobiert hat die meisten Fragen bereits gesehen und kann die Fallstricke beim Test schnell erkennen und Schlampigkeitsfehler vermeiden.
  • Programmiertests unbedingt zuvor ausprogrammieren, oft gibt es ein paar Eigenheiten, welche im Teststress mühsam zum Überlegen sind.
  • Zum Einstufungstest für K2: der ist meistens etwas schwieriger als beim "Beispielstest" angegeben. So mussten wir heute (06.03.2020) auch drei Strings miteinander vergleichen; und den String der anders ist, sofern er anders ist, zurückgeben. Das ist auch lösbar, jedoch war der Beispielstest deutlich einfacher. Vor allem da man auch nur 40 Minuten Zeit hat, und die Angabe zum Teil etwas konfus ist (mir hat es zum Beispiel mehr geholfen, die input → output Angabe am Ende durchzusehen; da war es dann klar was die Methode können musste) Bei der Benotung sind die Tutoren jedoch recht freundlich und vergeben auch durchaus Teilpunkte, so das man eigentlich 20 Punkte erreichen kann wenn man programmieren kann, selbst wenn man nicht alles richtig hat. Man sollte sich dann jedoch auch vorbereiten, das vor Ort zu erklären; oft erhält man dadurch dann noch die Teilpunkte (kommt wohl auch auf die Tutoren selbst an wie streng diese den Quelltext beurteilen aber mein Eindruck war das sie versuchen möglichst fair zu bewerten, und eher schauen ob der Studierende auch wirklich programmieren kann; und das kann man recht gut erkennen, auch wenn jemand Fehler macht).

Verbesserungsvorschläge / Kritik[edit]

Meiner Ansicht nach sollten die TUWEL-Tests weniger gewichtet werden, da sie teilweise Fragen stellen die eher die Konzentrationsfähigkeit abtesten, als Wissen oder Verständnis.

Anmerkung: Ab Sommersemester 2020 hat sich das ganze etwas geändert. Es gibt, sofern ich dies richtig verstanden habe, nur noch einen einzigen TUWEL Test der 20 Punkte bringt (also 1/5 der Gesamtpunktezahl). (Und das wurde dann nochmals geändert, da durch die covid-19 Thematik keine Lehrveranstaltungen mit physischer Präsenz möglich sind - ist alles gerade ein ziemliches Chaos.)