Programmiertechnik II WS 2016/17 Fakultät Informatik Bachelor Angewandte Informatik Prof. Dr. Oliver Bittel [email protected] www-home.htwg-konstanz.de/~bittel WS 16/17 Überblick ! OOP: – Schnittstellen und Klassen – Implementierung und Vererbung – generische Datentypen – Entwurfsmuster interface List<E> class ArrayList<E> class LinkedList<E> ! Funktionale Programmierung: - Funktionale Interfaces und Lambda-Ausdrücke - Ströme ! Datenstrukturen und Algorithmen: - Felder, verkettete Listen, Bäume - Suchen und Sortieren ! Java Collections (Behälter): Anwenden können und internen Aufbau verstehen ! Grafische Benutzeroberflächen Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik II – Einleitung WS 16/17 2 Inhaltsverzeichnis (1) 1. Grundlagen (Wiederholung und Ausblick) Klassen, Interfaces, Vererbung, abstrakte Klassen, Subtypen, Ausblick auf geschachtelte Klassen, generische Typen und Java 8 2. Programmiermethodik Kapselung, Substitutionsprinzip, immutable Klassen, vertragsbasiertes Programmieren 3. Datentyp Liste Listen-Interface, Liste als Feld, Liste als verkettete Liste, doppelt verkettete Listen 4. Datentyp Keller und Schlange Anwendungen, Keller bzw. Schlange als Feld und als verkettete Liste Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik II – Einleitung WS 16/17 3 Inhaltsverzeichnis (2) 5. Generische Datentypen Motivation, generische Typen und Methoden, generischer Keller, obere und untere Typschranken, Platzhalter (Wildcards), Ko- und kontravariante Typen. 6. Iterierbare Container Iterator, Iterable, Foreach- und Iterator-Schleife Generische Liste mit Iterator 7. Java Collections - Teil I Collection, List, LinkedList und ArrayList, Queue und Deque, ArrayDeque Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik II – Einleitung WS 16/17 4 Inhaltsverzeichnis (3) 8. Rekursion Grundbegriffe, viele Beispiele, Teile-und-Hersche-Verfahren, Endrekursion, Rekursion und Keller 9. Komplexitätsanalyse Größenordnungen von Laufzeiten, Worst-, Best- und Average-Case-Analyse, Teile-und-Herrsche-Verfahren 10. Sortierverfahren Sortieren durch Einfügen, Auswählen bzw. Vertauschen, QuickSort, MergeSort, HeapSort, stabiles Sortieren, externes Sortieren, generisches Sortieren 11. Bäume Allgemeine Bäume und Binärbäume, binäre Suchbäume Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik II – Einleitung WS 16/17 5 Inhaltsverzeichnis (4) 12. Java Collections - Teil II Set und TreeSet, Map und TreeMap, Arrays und Collections 13. Graphische Benutzeroberflächen AWT und Swing, Hauptfenster und Container, Swing-Komponenten, Layout-Manager, Ereignisverarbeitung, Dialogfenster, Zeichnen 14. Java 8 Lambda-Ausdrücke, Funktionale Interfaces, Ströme, funktionale Programmierung, Parallelität 15. Entwurfsmuster Uni- und bidirektionale Assoziationen, Kompositum, Strategie, Schablonenmethode, Adapter, Dekorierer, Fabrikmethode, Beobachter Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik II – Einleitung WS 16/17 6 Wichtige Literatur (1) ! Ken Arnold, James Gosling and David Holmes, The Java Programming Language, Addison, 4. Auflage: 2005. ! Das Standardwerk. ! Java 5.0 ! Mark Allen Weiss, Data Analysis and Algorithm Analysis in Java, Addison Wesley, 2. Auflage, 2005. ! Geht weit über die Vorlesung hinaus; Grundlage für Algorithmen-Vorlesung im 3. Semester ! Java 5.0 Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik II – Einleitung WS 16/17 7 Wichtige Literatur (2) ! Christian Ullenboom, Java ist auch eine Insel, Galileo Computing; 11. Auflage; 2014. ! Java 8.0 ! Ältere Ausgabe (Java 7.0) in der Bibliothek als elektronische Ausgabe verfügbar. ! Scheffler, Wiesenberger, Seese und Ratz, Grundkurs Programmieren in Java, Hanser-Verlag 2014. ! Einführung in die Java-Programmierumng ohne Vorkenntnisse. ! Grafische Oberflächen werden ausführlich behandelt. ! Java 8.0. ! Als elektronische Ausgabe in der Bibliothek verfügbar. Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik II – Einleitung WS 16/17 8 Ergänzende Literatur (1) ! Joshua Bloch, Effective Java, Addison-Wesley Longman, 2. Auflage 2008. ! Enthält eine Liste von guten JavaProgrammiertechniken. ! keine Einführung in Java, aber sehr lohnenswert! ! Java 6.0 ! Maurice Naftalin and Philip Wadler, Java Generics and Collections, O'Reilly Media, 1. Auflage, 2006. ! Spezialliteratur zu den Neuerungen in Java 5 und 6. Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik II – Einleitung WS 16/17 9 Ergänzende Literatur (2) ! Maurice Naftalin, Mastering Lambdas: Java Programming in a Multicore World McGraw-Hill Education; 1. Auflage, 2014 ! Spezialliteratur zu den Neuerungen in Java 8. ! Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides Entwurfsmuster: Elemente wiederverwendbarer objektorientierter Software, Addison-Wesley, München, 2010. ! Der Klassiker für Entwurfsmuster und objektorientierte Software-Entwicklung. Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik II – Einleitung WS 16/17 10
© Copyright 2024 ExpyDoc