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

Aus VoWi
Zur Navigation springen Zur Suche springen

Daten[Bearbeiten | Quelltext bearbeiten]

Vortragende Markus AngermannNathaniel BoisgardJürgen KoglerMarion MurzekStefan PodlipnigMichael ReiterMartin RienerDietmar SchreinerMauro TempestaSebastian Zambanini
ECTS 5,5
Alias Introduction to Programming 1 (en)
Ersetzt Programmkonstruktion VU (Puntigam)
Letzte Abhaltung 2024W
Sprache Deutsch
Abkürzung EP1
Mattermost einfuehrung-in-die-programmierung-1RegisterMattermost-Infos
Links tiss:185A91, eLearning
Zuordnungen
Bachelorstudium Informatik Modul Einführung in die Programmierung (Pflichtfach)
Bachelorstudium Wirtschaftsinformatik Modul INT/PRO - Einführung in die Programmierung (Pflichtfach)
Bachelorstudium Medieninformatik und Visual Computing Modul Einführung in die Programmierung (Pflichtfach)
Bachelorstudium Medizinische Informatik Modul Einführung in die Programmierung (Pflichtfach)
Bachelorstudium Software & Information Engineering Modul Einführung in die Programmierung (Pflichtfach)
Bachelorstudium Technische Informatik Modul Einführung in die Programmierung (Pflichtfach)


Inhalt[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

Stand SS2024:[Bearbeiten | Quelltext bearbeiten]

Man kann 100 Punkte erreichen - Stand 2024 setzen sie sich folgendermaßen zusammen:

  • K1:
    • 30 Punkte Programmiertest
    • 20 Punkte TUWEL-Test (Diesmal 5 Beispiele mit Lückentext)
    • 40 Punkte Übungseinheiten/Aufgabenblätter
    • 10 Punkte Mini-TUWEL-Tests in den Übungseinheiten
    • Bis zu 5 Bonuspunkte (die vollen 5 werden jedoch laut Hr. Podlipnigs Aussage kaum erreicht, realistischer sind 2–3) für verschiedene Dinge wie Mitarbeit, Finden von Fehlern in Folien oder Aufgabenblättern oder eventuelle Bonusaufgaben (letztere werden jedoch nicht zwingend angeboten)
  • K2:
    • 30 Punkte Programmiertest
    • 20 Punkte TUWEL-Test (Diesmal 5 Beispiele mit Lückentext)
    • 25 Punkte Übungseinheiten/Aufgabenblätter
    • 25 Punkte aus dem K2-Test (falls einem wenige Punkte, die man beim K2-Test verloren hat, auf eine bessere Note fehlen, kann man die sich evtl. bei einer Sprechstunde am Schluss „aushandeln“)
    • Bis zu 5 Bonuspunkte (die vollen 5 werden jedoch laut Hr. Podlipnigs Aussage kaum erreicht, realistischer sind 2–3) für verschiedene Dinge wie Mitarbeit, Finden von Fehlern in Folien oder Aufgabenblättern oder eventuelle Bonusaufgaben (letztere werden jedoch nicht zwingend angeboten)
  • K3:
    • 100 Punkte aus dem K3-Test

Der Notenschlüssel ergibt sich wie folgt:

Note Punkte
Sehr gut 92 - 100
Gut 83 - 91
Befriedigend 74 - 82
Genügend 65 - 73
Nicht genügend 0 - 64

Wer schon Programmiererfahrung hat, kann sich, bevor die Übungseinheiten beginnen, zu einem freiwilligen Einstufungstest anmelden, um Übungseinheiten zu skippen (Kompetenzstufen). Der Stoffumfang für den K2-Test beinhaltet meistens Variablen, Verzweigungen, Arrays. Der Stoff des K3-Tests ist der gesamte LVA-Inhalt.

Kompetenzstufen[Bearbeiten | Quelltext bearbeiten]

K1

Das ist der Standard. Wird kein Einstufungstest durchgeführt, oder wenn man weniger als 20/25 Punkte beim Einstufungstest erreicht hat, dann wird man automatisch dieser Kompetenzstufe zugewiesen. Auf diese Kompetenzstufe wurde die LVA entworfen. Sie ist auf Studierende mit wenig bis keine Programmiererfahrung ausgelegt. Es bleiben anscheinend aber auch Studierende in dieser Kompetenzstufe, die mit der Programmiersprache Java noch wenig vertraut sind. Personen in K1 müssen alle (in der Regel 9) Übungseinheiten besuchen.

K2

Um sich zu K2-Gruppen anmelden zu können, müssen mindestens 20/25 Punkte beim Einstufungstest erreicht werden. Die erreichten Pukte werden zur Gesamtpunktzahl der LVA In K2 wird werden die ersten 5 Übungseinheiten (die insgesamt 25 Punkte bringen würden - als so viel wie der Einstufungstest) übersprungen. Ab diesem Zeitpiunkt gibt es keine Unterscheidungen mehr zwischen K1 und K2.

K3

Dies ist eine Neuerung im WS2021. Hierbei kann die gesamte LVA übersprungen werden. Um in diese Kompetenzstufe zu gelangen, muss man zuerst 20/25 Punkte auf dem K2-Einstufungstest erreichen. Danach kann man sich zum K3-Einstufungstest anmelden, welcher einen Programmierteil und einen Theorieteil enthält, und den gesamten Inhalt der LVA abprüft. Die Endnote der LVA ergibt sich in dem Fall ausschließlich aus dem Ergebnis des K3-Einstufungstests. Man konnte aber nach Bekanntgabe der Note auch entscheiden (wenn man mit seiner Note nicht zufrieden war), stattdessen den K2 zu wählen, um eine bessere Note bekommen zu können.

(Ablauf der Übungen und Tests: siehe Kapitel Übungen bzw. Prüfung)

Programmiertutorium[Bearbeiten | Quelltext bearbeiten]

Ein Angebot der LVA ist das wöchentliche Programmiertutorium, das sowohl vor Ort (Inflab), als auch online (Zoom) stattfindet. Sehr empfehlenswert für unerfahrene, oder Leute, die bei einem Übungsblatt struggeln.

Stand WS2023:[Bearbeiten | Quelltext bearbeiten]

Die Einstufungstests sind gleich geblieben. Die Struktur der Übungen hat sich jedoch geändert.

Anzahl der Übungseinheiten:

Kompetenzstufe 1: 9 Einheiten

Kompetenzstufe 2: 4 Einheiten

Kompetenzstufe 3: keine (stattdessen gibt es einen zweiten Test, der den gesamten LVA-Stoff beinhaltet und 100% der Note ausmacht - Voraussetzung ist das Bestehen des K2-Tests)


Kompetenzstufe 1:

1.-3. Übungseinheit:[Bearbeiten | Quelltext bearbeiten]

Es gibt in den ersten 3 Einheiten Übungsstunden, um sich mit dem Programmieren mit Java vertraut zu machen. Der Stoff ist aber sehr ähnlich mit dem was im Propädeutikum (2 Wochen vor Semesterstart in Processing) gemacht wird bzw. auch in den Übungsstunden vor dem Propädeutikum für die, die sich kaum mit dem Programmieren auskennen. In diesen 3 Übungseinheiten hat man ein sehr engagiertes Team an Tutoren, die zwischendurch fragen, ob man Hilfe braucht beim Lösen der Aufgaben, die vom Übungsleiter an die Fernseher eingeblendet werden.

4.-7. Übungseinheit:[Bearbeiten | Quelltext bearbeiten]

Ab der 4. Einheit (die 2 Wochen nach der 3. Einheit stattfindet um das Aufgabenblatt 1 zu lösen) beginnt man mit den Abgabegesprächen. Diese laufen eigentlich ganz entspannt ab: Ein Tutor setzt sich zu euch und fragt euch was ihr gemacht habt. Im Endeffekt erklärt man also seinen Code und beantwortet auch 1-2 Fragen zu dem behandelten Thema, das hängt aber eher vom Tutor ab bzw. wie genau man seinen Code erklärt. Da es nicht für jeden Studenten einen Tutor gibt, sodass die Abgabegespräche gleichzeitig ablaufen können, gibt es immer eine Aufgabenstellung, die man währenddessen machen muss, damit man in den 2 Stunden nicht nur in die Luft schaut. Diese Aufgaben müssen dann abgegeben werden, um einen Punkt zu holen. Es ist egal wie weit man gekommen ist. Außerdem gibt es bei den ersten beiden Aufgabenblättern auch sogenannte Mini-Tests in Tuwel zu den behandelten Themen in den Aufgabenblättern, für die man auch Probetests zur Verfügung hat. Die Fragen beim Mini-Test sind die gleichen wie vom Probetest, es wird nur an den Zahlen oder Zeilen etwas geändert. Die Mini-Tests haben nur 3 und 2 Punkte und sind wirklich leicht und bei 1-2-maligem Durchgehen des Probetests vor der Übungseinheit, mit der vollen Punktzahl schaffbar.

Tuwel Test:[Bearbeiten | Quelltext bearbeiten]

Nach dem 4. Aufgabenblatt hat man einen Tuwel Test (20 Punkte - 40 Minuten mit 16 Fragen, beim 2. Termin auf 14 reduziert) über Algorithmen bis einschließlich elementare Sortieralgorithmen, Arrays, Rekursionen, Komplexität. Für diesen Tuwel Test hat man auch einen Probetest, der einen gut auf den Tuwel Test vorbereitet. Die Komplexitätsaufgaben waren zum Teil gottlos schwer, was beim Tuwel Test vielen einige Punkte gekostet hat. Ansonsten waren die Fragen gut lösbar und wenn man gut vorbereitet war, hatte man keinen Zeitdruck.

8.-9. Übungseinheit:[Bearbeiten | Quelltext bearbeiten]

Ab dem 5. Aufgabenblatt muss man seinen Code (meistens nur 1-2 Methoden/Aufgaben des Aufgabenblattes) vor der ganzen Gruppe präsentieren, wenn man aufgerufen wird. Da wird man auch zum Thema der Methode, die man implementiert hat kurz abgefragt, bei Arrays waren das z.B. Fragen wie "Was für ein Array-Typ gibt diese Methode zurück?", "Was ist eine NullPointerException?", "Was passiert wenn man x und y vertascht?" etc. - also leicht zu beantworten, wenn man seinen Code auch selbst geschrieben hat und auch bisschen Ahnung vom Thema hat.

Programmiertest:[Bearbeiten | Quelltext bearbeiten]

Nach dem 6. Aufgabenblatt hat man einen Programmiertest (30 Punkte - 60 Minuten mit 3 Methoden). 2 Methoden sind über zweidimensionale Arrays, beim ersten hat man ein Rückgabe Array, beim zweiten wird ein Array manipuliert und die dritte Methode ist immer(!) eine Rekursionsaufgabe. Man bekommt auch Teilpunkte für Lösungsansätze.

Ganz wichtiger Tipp!

Versucht so viele Punkte wie möglich durch die Aufgabenblätter und mit dem Tuwel Test zu bekommen um beim Programmiertest entspannter zu sein! Mit den Aufgabenblättern, den 3 Übungseinheiten und den Mini Tests bekommt man maximal 50 Punkte. Für eine positive Note würden also noch 15 Punkte beim Tuwel Test ausreichen und man müsste beim Programmiertest gar nicht erscheinen.

Wenn 1-2 Punkte auf die 4 (auf eine bessere Note) fehlen hat man noch eine Chance im Tutorium die ganzen Leistungen noch einmal zu besprechen bzw. seinen Code vom Programmiertest, wie beim Abgabegespräch zu erklären um die fehlenden Punkte zu bekommen.

Stand WS2021:[Bearbeiten | Quelltext bearbeiten]

Im WS2021 gab es erstmals auch eine dritte Kompetenzstufe (K3). Das Erreichen dieser ermöglicht es, die Vorlesung komplett zu überspringen. Zudem wurden die Einstufungstests vor Ort durchgeführt, anstatt online.

Der K3-Einstufungstest bestand aus einem 45 Minuten langem Theorietest auf TUWEL mit 40% Gewichtung und einem anschließenden 60 Minuten langem Programmiertest mit 60% Gewichtung. Der Theorietest umfasste 10 Fragen, mit je 4 Wahr/Falsch-Teilfragen. Pro Frage waren 4 Punkte erreichbar. Mit einer falsch bentworteten Teilfrage gab es noch 2 Punkte, mit 2 oder mehr falschen Antworten keine Punkte. Die Fragen beschäftigten sich mit der Analyse von Codefragmenten, z.B.:

- Kann der gegebene Code Exceptions auslösen?
- Mit welcher minimalen oberen Schranke kann der Algorithmus beschrieben werden?
- Terminiert der Code noch, wenn eine Zeile verändert wird? Ist der Sortieralgorithmus noch stabil? (Veränderung beschrieben)
- Wie oft wird eine bestimmte Zeile mit bestimmten Übergabeparametern aufgerufen (insb. mit rekursiven Algorithmen)?

Zur Beantwortung der Fragen durften alle Unterlagen und Onlineressourcen verwendet werden, ebenso wie IntelliJ. Allerdings wurde Code als Bild zur Verfügung gestellt und nicht in Textform. Abtippen war aufgrund der knapp ausgelegten Zeit kaum sinnvoll. Zur Programmierübung wurden 2 Beispiele mit mehrdimensionalen Arrays und 1 Beispiel mit Rekursion gefordert. Die Lösung der Beispiele war prinzipiell trivial, jedoch teilweise mit so unkonventionellen Forderungen, dass die Angabe sehr genau gelesen werden musste.

Andere Meinung: Abtippen der Codesnippets des TUWEL-Tests kann insbesondere bei Fragen, bei denen man sich unsicher ist und die durch den Compiler wirklich einfach werden hilfreich sein. Wenn man einigermaßen tippen kann, sollte es kein Problem sein, bis zu 4 Fragen auf diese Art zu lösen.

Stand SS2020:[Bearbeiten | Quelltext bearbeiten]

  • 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.]

Stand WS2017:[Bearbeiten | Quelltext bearbeiten]

  • Einstufungstest online auf TUWEL
  • 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.

Benötigte/Empfehlenswerte Vorkenntnisse[Bearbeiten | Quelltext bearbeiten]

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


Addendum aus dem Winteresemester 2022W: Ich würde Grundkenntnisse in der Programmierung empfehlen. Als Beispiel über die Programmiersprache Python. Zwar kann man theoretisch die VU auch ohne Programmierkenntnisse bestehen - jedoch gibt es beim Abschlusstest eigentlich 2 Beispiele zu etwa 20/21 Punkten, in denen nur multidimensionale Arrays vorkommen, die man dann auch manipulieren muss. Da hilft es schon sehr wenn man das bereits verstanden hat über Python, und dem Erstellen von Programmen. Dann kommt man auch während der VU weniger unter Stress, da man hier nur noch die Syntax von Java lernen muss - die Basisregeln bei den Arrays hingegen sind ja gleich bei den meisten Programmiersprachen.

Vortrag[Bearbeiten | Quelltext bearbeiten]

Podlipnig gestaltet die Vorträge ausgezeichnet - die Atmosphäre ist locker, und man kommt beim Vortrag gut mit. Man wird auch dazu ermutigt, fragen zu stellen. Es gibt immer einen Live-Stream + Aufzeichnung.

Übungen[Bearbeiten | Quelltext bearbeiten]

Stand SS2024:[Bearbeiten | Quelltext bearbeiten]

Für die ersten 3 Übungseinheiten gibt es keine Aufgabenblätter, die vorher gelöst werden müssen. Es gibt 2 Punkte für die Anwesenheit. Es geht besonders bei der ersten Einheit darum, mit dem InfLab, TUWEL, Password-Kiosk, Uploads und der Entwicklungsumgebung (IntelliJ von JetBrains) vertraut zu werden. Danach werden die ersten Schitte geübt: Hello World, Variablen anlegen, einfache Programme schreiben und verstehen. Es sind auch Gruppenarbeiten dabei (besonders bei den AUfgaben, vorgegebene Programme zu verstehen).

Ab der vierten Einheit gilt: Es muss ein Aufgabenblatt gelöst werden (Lösungen auf TUWEL hochladen, UND gelöste Beispiele ankreuzen nicht vergessen!). Ein Übungsblatt bringt 6 bis 7 Punkte. Die Deadline ist in der Regel am Ende der Woche vor der Übungseinheit. Ab Blatt 3 (= Übungseinheit 6) steigt dann auch K2 ein. Die Übungseinheiten zu Blatt 1 und 2 enthalten auch einen kleinen 15-minütigen TUWEL-Test (single choice), die jeweils 3 bis 4 Punkte bringen).

Die Bewertungen der abgegebenen Übungen haben sie im Laufe der Zeit verändert - so gibt es 2024 keine Tafelleistung mehr.

Es läuft nun so ab, dass während der Übungseinheiten alle Studis individuelles Feedback von jeweils einer Person (Tutor:in oder UE-Leitung) erhalten. Dabei werden die Lösungen besprochen, auch im Sinne von, ob die Studis ihre eigenen Abgaben überhaupt verstehen (wäre ein Hinweis auf kopiert/abgeschrieben/AI). Sie bekommen hier auch die Chance, Fehler in den Abgaben zu verbessern. Das Feedback wird mit 0-100% bewertet - dieser Prozentsatz wird dann mit den Kreuzen multipliziert (zB: wenn man die Hälfte des Blattes angekreuzt hat, und im Feedback 100% erreicht hat, erhält man die Hälfte der möglichen Punkte des Blattes. Selbiges wenn man alles ankreuzt, aber nur 50% beim Feedback erreicht hat). Es sind aber keine mündlichen Prüfungen, und die Bewertungen sind wohlwollend.

Man sollte bei den Übungen so viele Punkte wie möglich rausholen, da man diese leichter erzielen kann!

Personen in K3 absolvieren keine Übungen.

Korrekturen: Ich möchte den Text der Person hier nicht einfach bearbeiten, aber da sind ein paar Fehler drin (zumindest, wenn er sich wirklich auf SS24 bezieht): Es gab meiner Erinnerung nach „nur“ 2 „Übungs-Übungseinheiten“ für K1, bei beiden wurde die Anwesenheit mit einem Punkt belohnt. Die Mini-TUWEL-Tests in den ersten richtigen Übungseinheiten für K1 wurden jeweils mit maximal 5 Punkten bewertet und sie waren nicht single-choice, sondern mit freier Eingabe.

Plagiate[Bearbeiten | Quelltext bearbeiten]

Es wird eine Software zur Erkennung von Plagiaten verwendet - daher: plagiiert besser nicht, oder lasst euch wenigstens nicht dabei erwischen... (Variablen umbenennen und Formatierung ändern bringt 0, das ist der Software "egal"). In EP1 sind die Konsequenzen für das Plagiieren noch eher zahm. In späteren LVAs wurden Studis bereits "aus der LVA geworfen" (negative Bewertung, gesamter Fortschritt umsonst, mussten also beim nächsten Mal von vorne anfangen).

Allgemeines (veraltet)[Bearbeiten | Quelltext bearbeiten]

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.

Übung 1, Kompetenzstufe 1 (veraltet)[Bearbeiten | Quelltext bearbeiten]

Gestern (Montag) am Abend war "Üben 1" für die Kompetenzstufe 1. Hier gibt es nur 3 Punkte zu erreichen von insgesamnt 100 (65 Punkte sind für eine positive Note notwendig); dafür muss man kein Aufgabenblatt abgeben und besprechen. Die Übungen finden im Informatiklabor statt; es gibt zahlreiche Computer, eben für jede Person einen Computer, der sich einschalten lässt indem man auf dem Monitor den power-on button drückt.

Es gilt in Summe 5 Aufgaben zu lösen, zumindest zwei davon in kleinen Teams, die man vorab besprechen muss. Ein Beispiel war min-max sorting, wo in jeder Schleife die kleinere Zahl zurückgegeben wird - somit hat man einen Sortier-Algorithmus. Die erste Übung dient eher dazu die accounts aufzusetzen (sein Passwort nicht vergessen!) und eben den Ablauf üben, der für die späteren Aufgabenblätter relevant sein wird. (Ich wollte dies hier festhalten für künftige Studenten/Studentinnen, damit diese wissen wie das in etwa abläuft. Vorab Programmiererfahrung hilft, auch wie man IdeaJ benutzt hilft sicherlich.)

Ad-Hoc-Aufgaben (veraltet)[Bearbeiten | Quelltext bearbeiten]

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 (veraltet)[Bearbeiten | Quelltext bearbeiten]

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. Stand 2021W: Im Distance Learning Betrieb sind die TUWEL-Tests open-book, sprich, alle Unterlagen sind zur Beantwortung erlaubt und auch die IDE darf verwendet werden. Solange keine Chatprogramme benutzt werden, ist es auch erlaubt beispielsweise Google als Hilfe zu verwenden.

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

WS2022[Bearbeiten | Quelltext bearbeiten]

Ich kann die Kritik aus dem Vorjahr (siehe unten) nicht nachvollziehen. Die Vorlesung ist sehr gut strukturiert, Podlipnig erklärt in der Vorlesung alles was man zum Lösen der Übungsblätter braucht, und wenn man trotzdem Schwierigkeiten hat gibt es ja die Aufzeichnungen, Folien und den Beispielcode aus der Vorlesung. Außerdem gibt es ja 3x die Woche (!) ein freiwilliges Tutorium in dem man 1:1 Betreuung bekommt wenn man nicht weiterkommt. Zusätzlich wird ausnahmslos jede Frage im TUWEL-Forum relativ rasch beantwortet. Und man hat ja ganze zwei Wochen Zeit für das Lösen eines Aufgabenblattes, das ist mehr Zeit als in jeder anderen Übung. Also alles in allem genau das Gegenteil von dem "Aussieben" das von unten im WS2021 vermutet wurde. So viel Unterstützung wie in EP1 bekommt man sonst nirgends, man muss sich schon extra anstrengen hier etwas zu finden wo die VU versucht auszusieben. Und dass CodeDraw nicht real eingesetzt wird um UIs zu bauen sollte klar sein, hier gehts aber auch nicht darum den Umgang mit einer bestimmten Library beizubringen, sondern eben eine erste "Einführung in die Programmierung" zu geben und dafür ist CodeDraw durchaus sehr gut geeignet, außerdem sind ja nur manche der Aufgaben in CodeDraw zu machen. Wenn das wem zu fad ist weil man schon alles weiß, kann man ja einfach den K3-Test am Anfang machen und die VU überspringen.


WS2021[Bearbeiten | Quelltext bearbeiten]

Die Aufgabenblätter sind unnötig kompliziert formuliert. Zeitaufwand steht in keinster Weise in einem akzeptablen Verhältnis zu den Punkten die man dafür bekommt. Viele Aufgaben sind nur herumprobieren und haben wenig mit Programmierverständnis zu tun. Vor allem, weil eine eigens für diese LVA entwickelte Bibliothek namens CodeDraw verwendet wird und man zwanghaft versucht irgendwas mit graphischer Oberfläche zu machen!

Andere Meinung: Die Aufgabenblätter sind meiner Meinung nach weder kompliziert formuliert, noch ist der Zeitaufwand zu hoch. Man sollte als K1 schon ein bis zwei Nachmittage für ein Aufgabenblatt einplanen. Als K2 ist ein Aufgabenblatt durchaus in 2-5 Stunden lösbar. Wobei die Aufgabenblätter gegen Ende des Semesters etwas komplexer werden. Bei CodeDraw kann ich nur zustimmen, dass es mMn nicht notwendig ist, allerdings ist es eine gute Abwechslung zu sturem "Konsolenprogrammieren" und vor allem für Anfänger ist es auch sehr motivierend wenn man ein richtiges Bild gezeichnet hat.

Ich gehöre nicht zum Durchschnittstunden. Mir haben die Zeitangaben nicht viel gebracht oder bringen mir halt im allgemeinen recht wenig. Bin deutlich länger gesessen. Fand die Aufgaben im gesamten doch recht schwer, weil man halt mehr oder weniger begrenzt in seiner ausführung war. hilfsmethoden waren nicht erlaubt, außer die die angegeben waren oder die man in der vo durchgenommen hat. Hilfsmethoden wie arrays to list und dann wieder zurück zu array wurden ausgeschlossen zum beispiel. wenn man ne hilfsmethode nimmt, dann hätte man die hilfsmethode erklären dürfen + was ein list etc.... der code wurde in den ue leider zu detailreich gefragt (bei uns zumindest), statt halt aufs konzept und die idee einzugehen wie man das lösen kann/gelöst hat. Zur vo. die sprünge waren eher komisch. ok variablen deklarien initalisieren. dann schleifen, cases. dann rekursion. dazwischen wird codedraw eingeführt, was man sich hätte ersparen können. dann den sprung zu algorithmen inkl laufzeit?

- Das Hauptproblem von CodeDraw ist das man das danach nie wieder benötigt. Ich hatte schon damals 2020 vorgeschlagen auf Swing oder JavaFX zu setzen; die sind wenigstens auch nach der VU brauchbar. Wurde nicht berücksichtigt. Ich vermute da es eine Vorgabe gibt eben "auszusortieren". Auch die Aufgabenstellungen sind viel zu kompliziert. Ich habe dann den Beispiel-Input mit dem Beispiel-Output verglichen. Das war einfacher als die Aufgabenstellung durchzulesen. Die Aufgabenstellung ist oft sehr konfus und wirr. Auch das man kaum vorhandene Methoden verwenden darf zeigt doch das es nicht darum geht den Studierenden etwas real beizubringen sondern auszusieben - ich verwende zum Beispiel GraalVM und statically compiled native binaries. Das klappt hervorragend; mein Java Code klappt auch so. Und ist 1000x einfacher gehalten als diese konfusen Aufgaben. Es ist eben eine "Aussiebe-VU", mit realem Code hat das kaum etwas zu tun. Wer bitte schreibt unnötig komplizierten Code wenn man viel einfacheren Code verwenden kann um ein Problem zu lösen? Die Inhalte der VU sind sehr konstruiert. Podlipnig ist nett und fair, aber man muss eben ehrlich sein und sagen das die VU einfach nur auf aufsortieren setzt. 0.0.0.0 14:17, 10. Aug. 2022 (CEST)

Prüfung, Benotung[Bearbeiten | Quelltext bearbeiten]

Stand SS2024:[Bearbeiten | Quelltext bearbeiten]

Es gibt einen Theorietest via TUWEL vor Ort bei dem man bis zu 20, und einen Programmiertest, bei dem man 30 Punkte erreichen kann. Für beide Tests gibt es jeweils zwei Termine. Für beide Tests gilt: man kann bei beiden Terminen antreten, wobei immer der bessere Versuch zählt. Man muss sich für die Testtermine separat anmelden. Die Ergebnisse des ersten Antrittes sind immer vor der Abmeldefrist für den zweiten Termin bereits draußen.

TUWEL-Test:[Bearbeiten | Quelltext bearbeiten]

Dauert 40 Minuten (Bearbeitungszeit) und findet im Inflab (im SS2024 probeweise in den Prüfungsräumen der TU.it) statt - es gibt über den Prüfungstermin verteilt viele Timeslots, die man sich bei der Anmeldung aussuchen kann (800 Studis passen nicht in den Inflab - durch die Timeslots gibt es genug Plätze für alle). Früher war es ein multiple-choice Test mit allgemeinen Theoriefragen und Code Snippets, diesmal gab es erstmals nur 5 größere Fragen, die man mittels ausfüllen eines Lückentextes beantwortet.

Programmiertest:[Bearbeiten | Quelltext bearbeiten]

Dauert 75 Minuten (Bearbeitungszeit) und findet im Inflab (im SS2024 probeweise in den Prüfungsräumen der TU.it) statt - es gibt über den Prüfungstermin verteilt viele Timeslots, die man sich bei der Anmeldung aussuchen kann (800 Studis passen nicht in den Inflab - durch die Timeslots gibt es genug Plätze für alle). Das häufigste Schema ist: 2 Beispiele mit 2D-Arrays und 1 Rekursionsbeispiel. Es empfiehlt sich alles zu versuchen, was einen sinnvoll erscheint, da es Teilpunkte gibt! Nichts hinzuschreiben ist keine gute Idee. Auch nicht vergessen die Testfälle in der Angabe zu implementieren! Das sind quasi 3 geschenkte Punkte! (Selbst wenn die implementierten Methoden nicht funktionieren, gibt es diese Punkte!)

Hier erneut der Schlüssel:

Note Punkte
Sehr gut 92 - 100
Gut 83 - 91
Befriedigend 74 - 82
Genügend 65 - 73
Nicht genügend 0 - 64

Es gibt keine Mindestpunktzahl für Teilleistungen! (Man kann theoretisch als auch mit 0 Punkten auf den Programmiertest bestehen).

(Veraltet)[Bearbeiten | Quelltext bearbeiten]

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.

WS 2021: Im Wintersemester 2021 konnte man durch die Aufgabenblätter 38 Punkte erhalten. Je einen Punkt bekam man für die Anwesenheit bei den ersten 2 Übungen, bei denen man mithilfe eines/r Tutors/in Beispiele live programmieren sollte (K1). Zusätzlich gab es noch 2 Tuwel-Tests. Beim ersten Tuwel-Test konnte man 10 Punkte erhalten und beim zweiten Tuwel-Test 20 Punkte. Am Ende des Semesters gibt es noch einen Programmiertest bei dem man 30 Punkte erreichen kann.

WS 2020: Im Wintersemester 2020 konnten durch die Aufgabenblätter 40 Punkte, durch eine Online-Programmieraufgabe 10 Punkte, durch einen TUWEL-Test 20 Punkte und durch einen Programmiertest am Ende des Semesters 30 Punkte erreicht werden. Der Notenschlüssel sieht wie folgt aus:

Note Punkte
Sehr gut 100 - 90
Gut 89 - 80
Befriedigend 79 - 70
Genügend 69 - 60
Nicht genügend 59 - 0

Dauer der Zeugnisausstellung[Bearbeiten | Quelltext bearbeiten]

Semester Letzte Leistung Zeugnis Dauer
23.01.2020|03.02.2020|11 Tage
28.01.2021|19.02.2021|22 Tage
02.07.2024|09.07.2024|7 Tage

Zeitaufwand[Bearbeiten | Quelltext bearbeiten]

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. 1-2 Stunden pro Übungsblatt
  • mit guter Programmiererfahrung: ca. 1,5h pro Blatt.
  • (Anmerkung zu dem "ca 1.5h pro Blatt" von oben. Das ist sehr stark von der Aufgabenstellung ab. Manche Aufgaben sind einfach zu lösen, bei anderen benötigt man durchaus länger.)

Unterlagen[Bearbeiten | Quelltext bearbeiten]

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. Anmerkung aus 2022W: mittlerweile gibt es einige Beispieltests von Moodle unter den Materialen, so das jemand diesen Eintrag hier entfernen könnte.]

Tipps[Bearbeiten | Quelltext bearbeiten]

  • 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).
  • Vielleicht üben unter "Zeitdruck" zu programmieren. (Anmerkung: beim Abschlusstest hat man 60 Minuten Zeit; andere Studierende oder Tutoren stören jedoch hie und da, so das man die Konzentration verlieren mag. Daher empfiehlt es sich konzentriert arbeiten zu können und zumindest das erste Beispiel relativ zügig umzusetzen.
  • Ich habe die VU beim 2. Antritt geschafft. Für künftige Studierende gebe ich hier noch ein wenig Rat, den ich hier nummerieren werde. 1) Ich empfehle das man schon vorher mit einer Programmiersprache Erfahrung sammelt. Python ist da deutlich einfacher; die Beispiele zu Arrays kann man in Python lösen. Wenn man das verstanden hat ist das in Java auch kein Problem mehr. 2) Die Arbeitsblätter + Freies Üben bringen 50 Punkte. Das sind die wichtigsten Punkte. Man sollte nach Möglichkeit alle Punkte erreichen; das sollte auch möglich sein da man ausreichend Zeit hat. Diese Punkte sind am einfachsten zu erreichen; ich hatte hier 35 Punkte erreicht von 50 Punkten. Am Ende hat mir ein Punkt für einen 3er gefehlt, also hier empfehle ich möglichst viele Punkte zu sammeln. 3) Moodle Test ist ein wenig Glückssache, ich habe nur 10 Punkte erreicht aber trat nur 1x an, daher: nutzt beide Antritte und schaut auch ein paar Algorithmen an, da manche der Fragen sehr ähnlich sind wie dies in der Vorlesung/Folien vorgegeben ist. Man hat ein Blatt Papier so das man die Werte von Variablen hinschreiben kann; das hilft um herauszufinden wo man in einer Schleife sein mag. Bei manchen Fragen habe ich dann geraten, aber auch beim Raten hilft es definitiv wenn man manche Antwortmöglichkeiten ausschliessen kann. Immer genau die Angabe lesen! Das waren meine drei Tipps - viel Erfolg an die künftigen Jahrgänge.

Highlights / Lob[Bearbeiten | Quelltext bearbeiten]

Podlipnig brennt für die Lehre, freut sich über Lob und setzt auch Kritik/Feedback der Studis um!

Weitere Meinung (aus SS2024): Die Seite zu dieser LVA bearbeite ich eigentlich nur für Lob.

  • Die negativen Bewertungen vergangener Semester kann ich echt nicht nachvollziehen.
    • In dieser LVA wird aktuell keineswegs ausgesiebt und ich kann mir auch kaum vorstellen, dass es unter Hr. Podlipnigs Leitung jemals so war. Fragen werden schnell und gründlich in den Diskussionsforen beantwortet und wie andernorts bereits erwähnt gibt es auch die beinahe wöchentlichen freiwilligen Tutorensprechstunden. Man wird hier wirklich an der Hand genommen.
    • Ja, die Beispiele sind konstruiert und finden so in der Form bestimmt keine praktische Anwendung, aber darum geht es hier auch nicht. Das hier ist die Einführung der Einführungs-LVA, sie soll die absoluten Grundkenntnisse vermitteln. Und für Programmieranfänger Beispiele zu kreieren, die bereits Praxisrelevanz besitzen, aber dennoch Grundkonzepte beibringen/abprüfen, ist wohl kaum möglich.
  • Prüfungsergebnisse gab es sogar schneller als angekündigt – z. B. wurde für den ersten Test eine Woche veranschlagt, die Ergebnisse gab es nach zwei Tagen. (Wobei das wahrscheinlich auch an der geringeren Studentenanzahl im SS liegt, also sollte man das fürs WS wohl eher nicht unbedingt erwarten. Eine Woche ist trotzdem gut.). Generell kann ich mich an nichts erinnern, was kommuniziert, dann aber nicht eingehalten wurde.
  • Leute, die den Stoff bereits beherrschen und sich in ihrer Sache sicher sind, können mit einem Test die LVA einfach vollständig überspringen.
  • Auf Vorschläge und Feedback wird eingegangen und es wird auch versucht, dieses umzusetzen. Die Beschwerden bezüglich zu wenig Testzeit wurden sich zu Herzen genommen und dementsprechend wurde in diesem Semester testweise die Prüfungszeit um 15 Minuten verlängert. Auch Beschwerden bezüglich unterschiedlich schwerer Prüfungsbeispiele je nach Test wurden meiner Meinung nach zufriedenstellend beantwortet (ca.: es gab in der Vergangenheit vereinzelte Beispiele, von denen sie im Nachhinein wissen, dass sie schwerer waren, die meisten anderen Beschwerden verteilen sich jedoch auf die restlichen Beispiele und haben hauptsächlich damit zutun, was man bereits gesehen hat – das halte ich für plausibel und ehrlich, zumal man durch die zwei Testtermine eigentlich eh nicht so viel Pech haben sollte, dass die Tests bei beiden Terminen für einen schwer sind).
  • Beide Tests haben zwei Prüfungstermine und man kann, unabhängig der erreichten Punkte, zu beiden antreten. Dabei zählt der bessere Antritt. Außerdem fand ich angenehm, dass die ersten Tests schon Anfang/Mitte Juni und nicht erst Ende Juni waren, damit sie nicht ganz in die Prüfungsphase reinfallen.
  • Obwohl mir der meiste Stoff bereits bekannt war, fand ich es trotzdem angenehm, die Vorlesungen zu besuchen. Hr. Podlipnig macht seine Arbeit ausgezeichnet und ich hoffe, dass er noch viele weitere Semester in die Programmierung einführen darf. :) Auch das Tutorenteam war freundlich. Neben EVC mein Highlight für mein erstes Semester. <3

Verbesserungsvorschläge / Kritik[Bearbeiten | Quelltext bearbeiten]

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.)

Es wäre toll, wenn man beim Programmiertest etwas mehr Zeit haben würde. 30 Minuten mehr würden vielen Besuchern der LVA Helfen auch alle Beispiele zu lösen.

Materialien

Neues Material hinzufügen

A