Okay, willkommen zu ADAP. Ich bin überrascht, positiv froh, dass nicht so viele im Raum sind,
registriert sind 73 Studenten. Jetzt haben wir unsere kryptische E-Mail rausgeschickt,
dass dann doch bitte nur eine Teilmenge hier kommt. Sofern das glücklicherweise nicht
überlastet. Mein Name ist Dirk Riele, ich leite diesen Kurs. Wir fangen auch für die,
die online da sind, wir fangen pünktlich um 13 Uhr an. Heute ist eine Ausnahme, eben weil es
eine Verwirrung mit Univis gab, was den Raum betrifft. Wir fangen um 13 Uhr an. Dieser Kurs
ist ein später Bachelor, früher Master Kurs mit dem Ziel, Ihnen Domänen unabhängige,
fortgeschrittene objektorientierte Programmierung und Entwurf nahezu bringen, nahezu legen. Folgt
so nach AUD, parallel vielleicht zu Systemprogrammierung, also fortgeschrittene
Programmierung für bestimmte Domäne, zum Beispiel Betriebssysteme und aus meiner Sicht auch orthogonal
oder parallel zu so etwas wie maschinelles Lernalgorithmen. Hier geht es nicht um NML,
hier geht es um grundlegende Prinzipien guten Entwurfs und guter Programmierung. Wir machen das
mit einer Anwendung namens Wahlzeit, an der Sie inkrementell arbeiten werden, da gibt es schon die
existierende Anwendung und die werden Sie je nach Übungsaufgabe in bestimmter Hinsicht erweitern.
Wir, das sind Andreas Bauer, heute der hier vorne neben mir sitzt, Georg Schwarz und Julia Krause,
meine TA's im Englischen oder wissenschaftliche Mitarbeiter, die in der Lehre mithelfen im Deutschen.
Diese Wahlzeitanwendung ist recht einfach, das ist eine klassische Web-Anwendung, wo Ihnen Fotos
beliebiger Art gezeigt werden, die Sie dann bewerten können, klicken Sie halt das eine 10 oder 1 und
kriegen Sie einfach das nächste Foto vorgelegt, nichts großartig Neues, diese Art von Software
gibt es schon seit Jahren. Wahlzeit ist allerdings ein Rahmenwerk, soll heißen, es ist nicht spezifisch
auf das Anwendungsbeispiel, das Sie hier sehen, Blumenfotos zugeschnitten und was Sie machen werden,
um sich vorzubereiten für die Übungen, ist sich ein Thema Ihrer Wahl selbst auszusuchen.
Vielleicht sind Sie in Origami oder Sie mögen gerne Essen oder Sie mögen gerne Bergbilder oder Fußball
oder doch wieder Blumen oder Hot Rods, was auch immer, eine Ihrer ersten sehr einfachen Überlegungen
wird sein, das mache ich fachlich, eine Domäne, die Ihnen nahe lebt. Wenn Sie gerne Briefmarken
sammeln, dann haben Sie halt Fotos von Briefmarken drin, wenn Sie gerne Sport mögen, haben Sie halt
Ihre Lieblingssportart da drin und auf die Art und Weise wird jeder Student dieses Rahmenwerk Wahlzeit
zu einer Anwendung, in meinem Beispiel hier eben Flowers, Blumen, werden Sie die anpassen für Ihre
Bedürfnisse, das ist die Idee eines Rahmenwerks und so sorgen wir auch dafür, dass die Programmierarbeit,
die Sie individuell auch als Hausaufgabe leisten, sich halt unterscheidet. Das wird Ihre erste
Aufgabe sein, Sie überlegen sich, was Sie mögen. Sie werden dann das Rahmenwerk, da gehe ich dann
später noch drauf ein, so erweitern, dass es eben für diese Domäne passt. So gibt es von Wahlzeit
dem Framework, also WF hier, halt eine Fotoklasse, ein einfacher Aspekt und Sie werden dann halt Ihre
domänenspezifische Fotoklasse in einer Wahlzeit Erweiterung, Wahlzeit Extension hier dann Flower
Photo in meinem Beispiel einführen. Eine Klasse, die das Foto repräsentiert, eine weitere Klasse, die
das fachliche Objekt oder die Klasse hinter den Fotos repräsentiert. So haben Sie vielleicht viele
Rosenfotos, aber nur eine Rose. Vielleicht ist das sogar eine ganz bestimmte Rose, nämlich die im
dritten Beet von hinten, also hat Ihnen einen Ort und so weiter. In der Art und Weise, wie wir für
unterschiedliche fachliche Programmierherausforderungen diese domänenspezifischen
Klassen einfügen, werden Sie das halt als Teil der Hausaufgaben machen und Sie sehen, wie das fachliche
Modell und dran gekoppelte Programmieraufgaben und Entwurfsaufgaben sich halt im Laufe des
Semesters verfeinern. Das wird also immer inkrementell aufeinander gebaut. Die konkreten
Inhalte haben Sie ja vielleicht in der Univers-Ausschreibung schon gesehen. Was brauchen Sie denn, um hier
erfolgreich zu sein? Naja, wir setzen Java voraus und auch Git. Es ist jetzt so, dass dieser Kurs schon
länger läuft, aber wie das so bei Kursen ist, man ändert ständig etwas. Was wir nicht mehr machen,
ist einen aktiven Beitrag einzufordern. Deswegen können wir jetzt zum Beispiel auch jene, die
online nur dabei sind, stummschalten, obwohl Sie gerne, wenn Sie mich hören, in den Chat
hineintippen können, wenn Sie eine Frage haben und dann wird Andi an Ihrer Stelle die Hand heben.
Sie müssen also nicht mehr aktiv teilnehmen und eine weitere Änderung, die wir dieses Semester
vorgenommen haben, ist, dass wir von der App Engine partiell weg sind. Google App Engine wird
Presenters
Zugänglich über
Offener Zugang
Dauer
01:16:52 Min
Aufnahmedatum
2019-10-14
Hochgeladen am
2019-10-15 13:40:33
Sprache
de-DE
This course teaches principles and practices of advanced object-oriented design and programming.
Students learn the following concepts:
Class-Level
-
Method design
-
Class design
-
Classes and interfaces
-
Subtyping and inheritance
-
Implementing inheritance
-
Design by contract
Collaboration-Level
-
Values vs. objects
-
Role objects
-
Type objects
-
Object creation
-
Collaboration-based design
-
Design patterns
Component-Level
-
Error handling
-
Meta-object protocols
-
Frameworks and components
-
Domain-driven design
-
API evolution