Vorlesungsaufzeichnungen GdI 1, Sommer 2011

Hier werden im Lauf des Kurses alle vorhandenen Aufzeichnungen zur GdI 1 im Sommersemester 2011 verlinkt.

Schnellverzeichnis

Hinweise zur Nutzung

In den Videos zum Sommer 2011 wird ein Seitenbalken eingeblendet, wenn man mit der Maus auf das Bild wechselt (er verschwindet entsprechend, wenn die Maus die Anzeigefläche verlässt). Hier wird die Vorschau der Folien ("Thumbnails") mit Titeln angezeigt und die Suche in den Folien unterstützt, indem man einen Begriff eingibt. Allerdings werden dabei nicht alle Texte der Folien erfasst.

Ein Tipp noch: wer kein Flash hat und direkt auf die MP4-Datei zugreifen will, ändert im Sommer 2011 den Link, indem hinten noch der Eintrag "media/" eingefügt wird. Unter den nun angezeigten Dateien ist dann die Datei mit Endung ".mp4" anzuklicken.

Achtung: Die ersten Aufzeichnungen sind leider stark übersteuert, da die Kombination aus Funkmikrofon und -empfänger nicht optimal einstellbar war. Entweder ich konnte im Hörsaal nicht mehr gehört haben (aber der Pegel am Laptop war OK), oder man hörte mich und der Pegel am Laptop war zu stark. Auch durch Nachjustieren ließ sich dieses Problem nicht ganz beheben.

Beispiele zur systematischen Programmierung

Berechnung der Fläche eines Rings
Dieses Video (Flash, etwa 17 MB) oder MP4, etwa 15 MB) zeigt, wie das erste eigene Programm - hier "area-of-ring" systematisch nach unseren Design-Rezepten entwickelt werden kann. Die Dauer des Beispiels ist 9 Minuten.
Berechnung des Volumens eines Tetraeders
Dieses Video (7:23 Minuten) zeigt, wie man systematisch das Programm zur Berechnung des Volumens eines Tetraeders (Übungsblatt 1) entwickeln kann. Es liegt in den Formaten Flash (etwa 18 MB), MP4 (17 MB) sowie M4V (19 MB) vor.
Implementierung einer Prozedur zur Entfernung von Duplikaten in einer Liste
Dieses Video (13:18 Minuten) illustriert die systematische Vorgehensweise beim Implementieren einer Prozedur "remove-duplicates" (aus Übungsblatt 2). Es liegt in den Formaten Flash (ca. 23 MB) und MP4 (22 MB) vor.

Einführung in Eclipse

Die folgenden Videos zur Nutzung von Java in Eclipse existieren aktuell:

  1. Nutzung von Eclipse, Teil 1: Starten und Ausprobieren des Tutorials (etwa 28 MB, Laufzeit 9:02 Minuten, Flash). Hier wird das Java-Tutorial von Eclipse durchgespielt; dabei wird die Java-Perspektive präsentiert und der Editor (kurz) vorgestellt. Es wird ein Projekt und darin eine neue Klasse angelegt und dabei auch auf die Fehleranzeige von Eclipse inklusive "Quick Fix" eingegangen. Am Ende wird die neu geschriebene Klasse ausgeführt.
  2. Eclipse und der Java-Editor (etwa 34 MB, Laufzeit 12:15 Minuten, Flash). Eine schlecht formatierte und mit Fehlern und Warnungen versehen Klasse wird korrekt eingerückt und sauber formatiert. Anschließend wird gezeigt, wie man Fehler korrigieren kann mit "Quick Fix". Die Code-Vervollständigung wird ebenso vorgeführt wie die Generierung der "Getter" und "Setter" inklusive Dokumentation. Die Outline mit Sortierung der Methodennamen wird ebenso gezeigt wie die Sortierung der Elemente der Klasse.
  3. Nutzung von JUnit in Eclipse (etwa 80 MB, Laufzeit 29:33 Minuten, Flash). Dieses Tutorial führt im Detail das Testen eines (bewusst schlecht und fehlerhaft implementierten) Taschenrechners mit Hilfe von JUnit in Eclipse vor. Dazu wird zunächst der Taschenrechner implementiert (bis etwa 09:00). Anschließend wird ein Testfall entwickelt und schrittweise genutzt, um die Fehler im Code zu finden und sicherzustellen, dass sie nach Bearbeitung verschwunden sind. Es wird auch auf die Begrenzung der Laufzeit mit @Test(timeout=...) sowie auf die Behandlung erwarteter Fehler mit @Test(expected=...class) eingegangen.

Orga-Folien

Foliensatz T0: Einführung

ThemaFolienDauerFlashMP4iPhone
EinführungT0.1-2122:39246 MB245 MB54 MB

Foliensatz T1: Grundelemente der Programmierung

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4iPhone
Grundelemente der ProgrammierungT1.1-2325:23246 MB245 MB77 MB
Design von Programmen und HilfsprozedurenT1.24-4034:15380 MB380 MB160 MB
Bedingte Ausdrücke, boolesche Funktionen, Symbole und StringsT1.41-4916:38175 MB174 MB60 MB
Das Substitutionsmodell; normale und applikative AuswertungsreihenfolgeT1.50-6116:38180 MB180 MB72 MB

Foliensatz T2: Strukturierte Datentypen

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4iPhone
Strukturen in RacketT2.1-810:51117 MB117 MB48 MB
Motivation für DatenabstraktionT2.9-1207:0279 MB79 MB29 MB
Beispiel: Operationen auf rationalen ZahlenT2.13-2011:19105 MB105 MB43 MB
Abstraktionsebenen und Vorteile der DatenabstraktionT2.21-2912:15106 MB106 MB45 MB
Mit unterschiedlichen Daten umgehenT2.30-3912:57128 MB128 MB33 MB

Foliensatz T3: Rekursive Datentypen und Strukturelle Rekursion

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4M4V
Rekursive Datentypen: Liste mit cons, list und QuoteT3.1-1523:3048 MB47 MB51 MB
Rekursive Strukturen und DesignrezeptT3.16-2727:1164 MB63 MB67 MB
Design von HilfsprozedurenT3.28-3720:0149 MB48 MB54 MB
BäumeT3.38-5421:0748 MB47 MB51 MB
Iterative Verfeinerung von ProgrammenT3.55-6105:5013 MB12 MB9 MB
Prozeduren mit mehreren komplexen ArgumentenT3.62-7113:2834 MB33 MB35 MB
Auswerten arithmetischer AusdrückeT3.72-8321:3756 MB55 MB56 MB

Foliensatz T4: Auswertungsreihenfolge und Lexikalisches Scoping

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4M4V
Auswertungsreihenfolge, Syntax und Semantik von RacketT4.1-1520:2745 MB44 MB49 MB
Lexikalisches Scoping; Auswertung von localT4.16-2920:5352 MB49 MB55 MB

Foliensatz T5: Abstraktion von Design

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4M4V
Ähnlichkeiten und Wiederverwendung von FunktionenT5.1-1318:0643 MB42 MB48 MB
Polymorphe FunktionenT5.14-2010:2627 MB26 MB26 MB
Funktionen sind WerteT5.21-3422:0955 MB54 MB58 MB
Abstraktionen aus Beispielen entwerfenT5.35-4718:0646 MB45 MB50 MB
map (inkl. Animation von foldl, foldr)T5.48-6038:3484 MB83 MB88 MB
Eindeutiger KontrollpunktT5.61-6914:0133 MB32 MB36 MB
Abstraktionen mit Funktionen als WertenT5.70-7912:3031 MB30 MB34 MB
Funktionen "ad hoc" entwerfenT5.80-9520:0649 MB48 MB51 MB
LambdaT5.96-10309:0522 MB21 MB22 MB
Pipes&Filters-Organisation von BerechnungenT5.104-11922:5851 MB50 MB58 MB

Foliensatz T6: Generative Rekursion

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4M4V
Einführung in generativ rekursive FunktionenT6.1-1114:1830 MB29 MB34 MB
Sortieren mit generativ rekursiven ProzedurenT6.12-2919:4643 MB42 MB45 MB
Richtlinien für den Entwurf von generativ rekursiven ProzedurenT6.30-4224:3264 MB63 MB64 MB
Strukturelle vs. generative RekursionT6.43-5319:4047 MB46 MB51 MB
Backtracking: Durchlaufen von GraphenT6.54-6721:0751 MB50 MB52 MB

Foliensatz T7: Komplexität von Algorithmen

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4M4V
Grundkonzepte der KomplexitätT7.1-34:5813 MB12 MB13 MB
Abstraktes Zeitmaß und KomplexitätsklassenT7.4-1931:4790 MB89 MB82 MB
O-Notation und andere MaßeT7.20-3019:5050 MB49 MB47 MB
Techniken zur KomplexitätsbestimmungT7.31-4219:4949 MB48 MB49 MB
Lösung von Rekurrenzgleichungen mit Master-Theorem, Rekursionsbaum oder SubstittionT7.43-5716:5842 MB41 MB40 MB
Vektoren in RacketT7.58-7725:1759 MB58 MB65 MB

Foliensatz T8: Akkumulation von Wissen

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4M4V
Motivation für AkkumulatorenT8.1-1219:2647 MB46 MB50 MB
Design mit AkkumulatorenT8.13-2516:4339 MB38 MB42 MB
Akkumulator-Invarianten; FazitT8.26-3106:3917 MB16 MB17 MB

Foliensatz T9: Interpreter auf Basis des Substitutionsmodells und Streams

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4M4V
Interpreter und ProgrammsemantikT9.1-910:1926 MB25 MB27 MB
Interpreter nach dem SubstitutionsmodellT9.10-1721:0849 MB48 MB53 MB
Der Datentyp mapT9.18-2311:3125 MB24 MB28 MB
Auswertungsprozedur und SubstitutionT9.24-3422:5355 MB54 MB57 MB
Ausführen von Programmen; Interpreter als universelle MaschinenT9.35-4211:2526 MB25 MB27 MB
Normale und applikative AuswertungsreihenfolgeT9.43-4905:5114 MB13 MB13 MB
StreamsT9.49-5712:4128MB27 MB33 MB

Foliensatz T10: Zuweisungen und andere Effekte

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4M4V
Funktionen mit Gedächtnis, Version 2T10.1-607:2418 MB17 MB17 MB
ZuweisungenT10.7-1418:1539 MB38 MB42 MB
Standard-E/A-Funktionen und beginT10.15-2117:3443 MB42 MB44 MB
Entwerfen von Funktionen mit Gedächtnis; ZusammenfassungT10.22-3225:0359 MB58 MB66 MB

Foliensatz T11: Von Racket nach Java

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4M4V
Allgemeine Unerschiede zwischen Racket und JavaT11.1-810:5324 MB23 MB26 MB
Übersetzung von Java-Programmen; ACM JTFT11.9-2018:4247 MB46 MB47 MB
Variablen in JavaT11.21-2813:5633 MB32 MB34 MB
Primitive DatentypenT11.29-3209:5228 MB27 MB28 MB
Operatoren für Arithmetik, Logik und BitoperationenT11.33-4625:3455 MB54 MB60 MB
Funktionen in JavaT11.47-5005:5514 MB13 MB14 MB
Strings in JavaT11.51-5708:2424 MB23 MB27 MB
Kontrollflusssteuerung in JavaT11.58-7944:45103 MB102 MB112 MB
Listen (Racket) vs. Felder (Java)T11.80-9119:4345 MB44 MB44 MB
Kommentierung von Java-ElementenT11.92-9604:4913 MB12 MB13 MB
Einführung in die Eclipse-LaufzeitumgebungT11.97-11312:0630 MB29 MB32 MB
Zusammenfassung: in beiden Stilen programmierenT11.114-11503:007 MB6 MB7 MB

Foliensatz T12: Von Racket nach Java

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4M4V
Objektorientierte Programmierung in aller Kürze; Klassen und ObjekteT12.1-2447:32109 MB108 MB116 MB
Interpreter, Compiler, Virtuelle Maschienen und die Java-LaufzeitumgebungT12.25-4021:2252 MB51 MB56 MB
Sichtbarkeit von Variablen in JavaT12.41-4304:5512 MB11 MB12 MB
PackagesT12.44-5616:2438 MB37 MB37 MB
Einführung in das Testen mit JUnit und EclipseT12.57-8747:28106 MB105 MB114 MB

Foliensatz T13: Vererbung, Funktionsvorlagen, Späte Bindung

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4M4V
Wozu Vererbung?T13.1-917:5643 MB42 MB45 MB
Inkrementelles ProgrammierenT13.10-1406:4416 MB15 MB17 MB
Definition neuer ObjekttypenT13.15-2413:1229 MB28 MB34 MB
Grundlagen von acm.graphicsT13.25-3920:3547 MB46 MB53 MB
Modellierung eines GrafiksystemsT13.40-4713:1730 MB29 MB32 MB
Abstrakte KlassenT13.48-6121:5652 MB51 MB58 MB
SchnittstellenT13.62-7318:4345 MB44 MB50 MB
Überschreiben bestehender DefinitionenT13.74-7705:2914 MB13 MB14 MB
Späte Bindung der Methodenimplementierung beim OperationsaufrufT13.78-8812:4731 MB30 MB36 MB

Foliensatz T14: Schrittweise Verfeinerung

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4M4V
Schrittweise VerfeinerungT14.1-910:0523 MB22 MB26 MB
Vorteile abstrakter OperationenT14.10-1813:1632 MB31 MB32 MB
OO-Design: Klienten und ServerT14.19-2711:3928 MB27 MB29 MB
Umsetzung der Visualisierung eines String-ArraysT14.28-3511:1130 MB29 MB31 MB

Foliensatz T15: Klasseneigenschaften, Zugriffsrechte und Collections

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4M4V
KlasseneigenschaftenT15.1-1110:3926 MB25 MB25 MB
ZugriffsrechteT15.12-2008:2017 MB16 MB17 MB
Wrapper und listenbasierte CollectionsT15.21-3119:1742 MB41 MB46 MB
Mengen und MapsT15.32-3605:2412 MB11 MB12 MB
IteratorenT15.37-4006:4916 MB15 MB16 MB

Foliensatz T16: Fehlerbehandlung

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4M4V
Fehler und deren KlassifizierungT16.1-1212:0426 MB25 MB29 MB
Fehlerbehandlung ohne eigenständige SprachkonstrukteT16.13-1906:3616 MB15 MB18 MB
Grundkonzepte der Fehlerbehandlung mit eigenständigen Sprachmechanismen in JavaT16.20-3425:1458 MB57 MB63 MB
Vorteile der Fehlerbehandlung mit eigenständigen SprachmechanismenT16.35-5719:1548 MB47 MB51 MB
Prüfung auf erwartete Ausnahmen in JUnit 4T16.5802:367 MB6 MB7 MB
Fehlerbehandlung: ZusammenfassungT16.59-6305:3013 MB12 MB13 MB

Foliensatz T17: Statische Typisierung und Subtyp-Polymorphie

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4M4V
Werte, Typen, TypsystemT17.1-1320:3046 MB45 MB48 MB
Statische und dynamische TypprüfungT17.14-2015:3537 MB36 MB40 MB
Statischer vs. dynamischer TypT17.21-2614:4835 MB34 MB38 MB
Subtyp-PolymorphieT17.27-4223:4951 MB50 MB56 MB
Die Macht der PolymorphieT17.43-5429:5167 MB66 MB81 MB

Foliensatz T18: Typkonvertierung und Generizität

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4M4V
TypkonvertierungenT18.1-720:3249 MB48 MB51 MB
Generics I: X<Y>T18.8-1414:1832 MB31 MB33 MB
Generics II: Generics und SubtypenT18.15-1810:0824 MB23 MB26 MB
Generics III: Generics und Wildcards <? extends Y>, <? super Y>T18.19-3422:2854 MB53 MB58 MB

Foliensatz T19: Qualitätssicherung

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4M4V
Einführung in die QualitätssicherungT19.1-1616:4238 MB37 MB44 MB
Design by Contract und AssertionsT19.17-2911:5030 MB29 MB31 MB
TestmethodenT19.30-3605:3214 MB13 MB14 MB
KontrollflussgraphenT19.37-4813:1429 MB28 MB30 MB
Funktionales TestenT19.49-5605:1413 MB13 MB12 MB
Testen von KlassenT19.57-5902:065 MB5 MB6 MB

Foliensatz T20: Ströme und Ein-/Ausgabe in Java

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4M4V
I/O-Verarbeitung mit StrömenT20.1-1934:4894 MB93 MB92 MB
Verarbeitungsströme (Processing)T20.20-3222:2855 MB54 MB56 MB
Verschachtelte Ströme, DecoratorT20.33-3505:0015 MB14 MB15 MB
Verschachtelte Ströme, DecoratorT20.36-4516:5546 MB45 MB42 MB
StreamTokenizerT20.46-5210:3526 MB25 MB26 MB

Foliensatz T21: GUI und verschachtelte Klassen

Der Foliensatz besteht aus den folgenden Teilen:

ThemaFolienDauerFlashMP4M4V
Grundlagen grafischer BenutzerschnittstellenT21.1-924:1267 MB66 MB56 MB
Grundlagen grafischer Benutzerschn.T21.10-1817:0040 MB39 MB40 MB
EreignisseT21.19-2716:4246 MB45 MB46 MB
Verschachtelte KlassenT21.28-4017:4551 MB50 MB46 MB
MVCT21.41-4607:4021 MB20 MB17 MB
InternationalisierungT21.47-6325:0768 MB67 MB76 MB
Zuletzt geändert: Montag, 11. Januar 2016, 12:47