Vorlesungsmaterial zu Foliensatz T00 "Einführung"

Auf dieser Seite finden Sie die gesammelten Vorlesungsmaterialien zum Foliensatz T00, "Einführung".

Foliensatz

Der Foliensatz wird über den direkten Zugriff auf das Verzeichnis bereitgestellt.

"Message" von Foliensatz T0 "Einführung"

Welches Wissen sollte man als Studierender aus dem Foliensatz T00 mitnehmen? Diese Frage ist natürlich nicht ganz einfach in einem Satz zu beantworten; wäre das so einfach, hätten wir uns und Ihnen die gesamten Folien ersparen können lächelnd. Ich versuche aber dennoch, hier auf die wesentlichen Inhalte nochmals kurz einzugehen, auch, damit Sie überprüfen können, ob Sie die relevanten Inhalte als solche erkannt und verstanden haben.

Insgesamt haben wir versucht, in diesem Foliensatz darzustellen, warum wir die GdI 1 genau so machen, wie wir sie machen - und nicht etwa, wie es an vielen anderen Universitäten der Fall ist, direkt mit Java anfangen. Anfangs haben wir erklärt, worum es uns in der GdI 1 geht: die Studierenden sollen lernen, wie man aus einem Problem mit einer (meist) schwammigen umgangssprachlichen Beschreibung ein Programm macht, das der Computer verstehen und abarbeiten kann. Dabei soll nicht "gebastelt" werden, sondern das Programm systematisch entwickelt werden (dazu gleich mehr).

Zusätzlich versuchen wir mit unserem Ansatz, die sehr große Bandbreite an Studierenden - siehe die Ergebnisse der Abstimmung über Programmiervorerfahrung, die am Ende der ersten Vorlesungswoche sichtbar werden - durch die Veranstaltung etwas zu "homogenisieren", indem alle Studierende auf ein ungefähr vergleichbares Niveau gebracht werden. Dafür eignen sich nach unserer Überzeugung die Ansätze anderer Universitäten, die direkt mit Java beginnen, nicht gut.

Java ist zwar eine sehr interessante Programmiersprache, aber auch recht komplex - und dies leider insbesondere beim Einstieg. Damit wird für Anfänger in Java sowie allgemein für Studierende mit geringen Programmiervorkenntnissen eine eigentlich unnötige Hürde aufgebaut, die zusätzlich demotivierend und demoralisierend wirken kann. Die How to Design Programs Teaching Languages (HtDP-TL) hingegen haben eine zwar vielleicht gewöhnungsbedürftige, aber sehr einfache und kompakte Syntax - die man auch als Neuling sehr einfach und schnell lernen kann. Auch die Arbeitsumgebung DrRacket ist zwar vielleicht nicht sehr schön, aber sehr einfach zu nutzen. Die professionelle Arbeitsumgebung für Java (Eclipse), die wir später nutzen, kann gerade am Anfang überfordern.

Durch den Anfang mit den HtDP-TL, einer Reihe von für (fast) alle Studierenden unbekannten Programmiersprachen, senken wir daher eine Eingangshürde. Selbst sehr programmiererfahrende Studierende werden insbesondere anfangs "umdenken" müssen und können zunächst mit ihrem Wissensvorsprung weniger glänzen oder demotivieren.

Aus meinem eigenen Studium kenne ich die Situation, dass gerade in den Übungen und im Computerpool neben jemand, der sich mit der Bearbeitung mangels Vorkenntnissen schwer tat, jemand saß, der die gleiche Aufgabe in einem Bruchteil der Zeit erfolgreich bearbeitete. Das war in der Regel sehr frustriedend zu sehen, und man konnte sich fragen "schaffe ich das überhaupt? Bin ich gut genug?".

Unser Ansatz basiert auf vier "Säulen" als zentralen Elementen: der Nutzung einer einfachen Entwicklungsumgebung (1.), einer einfachen - aber sukzessive mächtiger werdenden - Programmiersprache (2.) mit jeweils für Sie besser verständlichen Fehlermeldungen, präzisen Modellen zum Verstehen der Programme (3.) und einem Leitfaden zur Entwicklung von Programmen (4.). In vielen "Konkurrenzveranstaltungen" wird zwar auch mit einer vereinfachten Entwicklungsumgebung für Java begonnen (Punkt 1, eingeschränkt auch Punkt 2). In fast allen anderen Vorlesungen gibt es aber große Defizite bei den Modellen für die Programmiersprache (3.) und vor allem bei der Vermittlung "wie kommt man zum Programm?", also unseren Design-Rezepten (Säule 4). Ausgenommen hiervon sind vorrangig die Vorlesungen, die einem verwandten Ansatz folgen, etwa in Stuttgart, Tübingen, Freiburg und Görlitz.

Von allen mir bekannten Vorlesungen unterscheiden wir uns dadurch, dass wir zur Mitte des Semesters die funktionale Programmierung verlassen und mit Java weitermachen. Außerdem bieten wir ein Abschlussprojekt mit dem Ziel, ein wirklich nutzbares Computerspiel zu entwickeln - mit bislang einer Erfolgsquote von jeweils über 90%. Damit ist die TU Darmstadt weltweit potenziell einmalig! Wie erfolgreich dieses Vorgehen ist, können wir gerne gegen Ende des Semesters diskutieren und werden dann auch eine Abstimmung dazu anbieten.

Zuletzt geändert: Dienstag, 12. Januar 2016, 08:10