Skip to content
jahnkajavaee edited this page Feb 1, 2016 · 46 revisions

Softwaretechnologie: Java

Seminarseite auf der Spinfo-Homepage | Twitter-Account zum Seminar

Softwaretechnologie II: Sommersemester

Sitzung Fachlich Technisch Notizen Code Aufgaben Literatur
1 Formalia, Rückblick, Besprechung der Hausarbeit, Ausblick Zusammenfassung: Grundlagen des Programmierens, Grundlagen der OOP Sommer-Sitzung-01
2 Elementare Datenstrukturen: Listen Tupel, Queue, Stack, Iterator, O-Notation Sommer-Sitzung-02 Lists Sommer-Aufgabe-01 Wikipedia (linked list); Cormen et al. (2001), III/10.1-10.3 (Elementary Data Structures); Gamma et al. (1995), S. 257-271 (Iterator)
3 Elementare Algorithmen: Sortieren und Suchen Insertion sort, binäre Suche, Rekursion, Comparable Sommer-Sitzung-03 SortSearch Sommer-Aufgabe-02 Wikipedia (insertion sort); Cormen et al. (2001), I/2 (Getting Started); Binäre Suche (Algorithmus der Woche); Nearly all Binary Searches are Broken (Google Research Blog); Object Ordering (The Java Tutorial)
4 Bäume, eine vielseitige Datenstruktur Implementierung von Bäumen, binäre Suchbäume, Operationen auf Bäumen, Visualisierung Sommer-Sitzung-04 Trees Sommer-Aufgabe-03 Wikipedia (tree structure, etc.); Cormen et al. (2001), III/10.4 (representing rooted trees), III/12 (binary search trees), III/13 (red-black trees); Graphviz (graph visualization)
5 Schnelles Sortieren mit Quicksort Quicksort: Idee, Implementierung, Analyse und Vergleich Sommer-Sitzung-05 Quicksort Sommer-Aufgabe-04 Wikipedia (Quicksort); Cormen et al. (2001), II/7 (Quicksort); Schnelle Sortieralgorithmen (Algorithmus der Woche);
6 Hash-Tables für effiziente Datenverwaltung Direktzugriff, Kollisionen, Hash-Funktionen, Java-Praxis, Anwendung Sommer-Sitzung-06 HashTables Sommer-Aufgabe-05 Cormen et al. (2001), III/11 (Hash Tables); Bloch (2008), Item 9 (Always override hashCode when you override equals)
7 Generische Datenstrukturen und Algorithmen in Java Java Generics und Collections; Interfaces und Implementierungen: Collection, List, Set, Map Sommer-Sitzung-07 Collections Sommer-Aufgabe-06 Naftalin & Wadler (2006), Kap. 1 (Generics), 10-12, z.T. 13-17 (Collections); Bloch (2008), Item 52 (Refer to objects by their interfaces); The Java Tutorials (Collections)
8 Lexikographischer Zeichenkettenvergleich Sortierregeln; Strategy-Pattern; Comparator & Comparable; RuleBasedCollator & Locale Sommer-Sitzung-08 Collation Sommer-Aufgabe-07 Wikipedia (Collation); Naftalin & Wadler (2006), Kap. 3 (Comparison and Bounds); Gamma et al. (1995), S. 315-323 (Strategy); The Java Tutorials (Comparing Strings)
9 Volltextsuche: Index und Vorverarbeitung Index-Erstellung und -Abfrage; Reguläre Ausdrücke und Tokenisierung; Enum Types Sommer-Sitzung-09 Index Sommer-Aufgabe-08 Manning et al. (2008), Kap. 1 (Boolean retrieval) und 2 (term vocabulary & postings lists); Friedl (2006), Kap. 1 (Introduction to Regular Expressions) und 8 (Java); The Java Tutorials: Regular Expressions und Enum Types
10 Editierdistanz für unscharfe Suche Rekursion, Memoisierung, Dynamic Programming Sommer-Sitzung-10 EditDistance Sommer-Aufgabe-09 Manning et al. (2008), Kap. 3 (Dictionaries and Tolerant Retrieval); Gusfield (1997), Kap. 11 (Core String Edits, Alignments, and Dynamic Programming)
11 Web-Crawling zur Korpuserstellung Grundlagen von HTML-Verarbeitung und Concurrency; externe Bibliotheken Sommer-Sitzung-11 Crawling Sommer-Aufgabe-10 Manning et al. (2008), Kap. 20 (Web crawling and indexes); Bloch (2008), Kap. 10 (Concurrency); Goetz (2006); The Java Tutorials (Concurrency)
12 Grundlagen von Build- und Release-Engineering Versionskontrolle; CRISP builds mit Ant; JUnit; Javadoc; continuous integration Sommer-Sitzung-12 Build Clark (2006), Kap. 1 u. 2 (Einleitung; Builds in einem Schritt); Wikipedia: Build Automation und Release Engineering
13 Aufgabenstellung Hausarbeit Keyword-Extraktion, Stoppwörter, TF-IDF, Objektserialisierung, Templating-Konzepte s. Aufgabe s. Aufgabe Sommer-Hausarbeit-Keywd Manning et al., Kap. 6.2 (Term frequency and weighting); Terminology Extraction, TF-IDF, Template Engine (Wikipedia); Object Persistence Made Easy (Java Coffee Break)

Literatur

  • Bloch, J. (2008), Effective Java, Second Edition, Addison-Wesley.
  • Cormen, T., Leiserson, C., Rivest, R. and C. Stein (2001), Introduction to Algorithms, Second Edition, MIT Press
  • Clark, M. (2006), Projekt-Automatisierung, Hanser.
  • Friedl, J. (2006), Mastering Regular Expressions, Third Edition, O’Reilly.
  • Gamma, E., Helm, R., Johnson, R. and J. Vlissides (1995), Design Patterns, Addison-Wesley.
  • Goetz, B. (2006), Java Concurrency in Practice, Addison-Wesley.
  • Gusfield, D. (1997), Algorithms on Strings, Trees and Sequences, Cambridge University Press.
  • Manning, C. D., Raghavan, P. and H. Schütze (2008), Introduction to Information Retrieval, Cambridge University Press.
  • Naftalin, M. and P. Wadler (2006), Java Generics and Collections, O’Reilly.

Java Training in Chennai | Online Java Training