Agenda Modul 1:
Grundlagen von Java und der Entwicklungsumgebung
- Was ist Java? Plattformunabhängigkeit
- IDEs (z. B. IntelliJ), JDK/JVM, Projektstruktur
Sprachsyntax & Kontrollstrukturen
- Datentypen, Operatoren, Bedingungen, Schleifen
- Methoden, Parameterübergabe, Rückgabewerte
Objektorientiertes Programmieren
- Klassen, Objekte, Attribute, Methoden
- Konstruktoren, this, static, final
- Einführung in Vererbung und Polymorphismus
Fehlerbehandlung & Ausnahmen
- try/catch, throw, finally
- Exception-Hierarchie verstehen
Sammlungen & Datenstrukturen
- Arrays, Listen (ArrayList)
- Iteration über Collections
Strings & einfache Ein-/Ausgabe
- String-Manipulation, StringBuilder
- Einlesen von Benutzereingaben
Design Patterns
- Ausgewählte Entwurfsmuster (z. B. Singleton, Factory, Strategy)
- Has-A- und Is-A-Beziehungen verstehen und anwenden
Die Klasse Object und Überschreiben zentraler Methoden
- Bedeutung der Klasse Object als Oberklasse aller Java-Klassen
- Überschreiben von toString(), equals() und hashCode()
- Unterschied: Referenzvergleich (==) vs. logischer Vergleich (equals)
- Bedeutung von hashCode() in Hash-basierten Collections (HashMap, HashSet)
- Best Practices für konsistentes Überschreiben von equals() und hashCode()
Projektarbeit & Übungen
- Kleine, praxisnahe Mini-Projekte
- Abschlussprojekt zur Anwendung des Gelernten
Agenda Modul 2:
Erweiterte Objektorientierung
- Vererbung, Interfaces, abstract/final
- this, super, Zugriffskontrolle
- Innere Klassen & Enums
Generics & Collections
- Typisierte Klassen & Methoden
- Map, Set, Queue, Comparator
- Iterieren mit Lambdas
Funktionale Programmierung & Streams
- Lambdas & Functional Interfaces
- Stream API: map, filter, collect, reduce
- Optional, Method References
Datenbankzugriffe mit JDBC
- JDBC-Grundlagen: Treiber, Verbindungen, Statements
- Daten lesen, schreiben, updaten
- Prepared Statements und ResultSets
- Verbindungspooling (einfach)
- Mini-Projekt: Java-App mit SQLite oder MySQL
Dateien & XML-Verarbeitung
- Arbeiten mit Dateien (java.nio.file)
- Serialisierung von Objekten
- XML lesen und schreiben mit DOM & SAX
- JAXB (optional) – Java ↔ XML Mapping
Client-Server-Programmierung in Java
- Grundlagen der Netzwerkkommunikation
- TCP/IP, Sockets, Ports
- Java Socket & ServerSocket API
- Einfacher Chat- oder Daten¨ubertragungsserver
- Threads zur parallelen Verarbeitung von Clients
Nebenläufigkeit & Multithreading
- Runnable, Thread, ExecutorService
- Synchronisation & Race Conditions
- Einstieg in parallele Datenverarbeitung
Modularisierung & Clean Code
- Packages und saubere Projektstruktur
- Einführung in Modulsystem (module-info.java)
- Clean Code Prinzipien, Refactoring
Abschlussprojekt & Übungen
- Projektarbeit z.B. ’Client-Server-Chat mit Datenbankanbindung’
- Code-Review, Präsentation, Gruppenarbeit (optional)
Abschluss
- Teilnahmezertifikat mit Inhaltsübersicht
- Individuelles Feedback zum Projektcode
- Übungen zur Selbstkontrolle + Musterlösungen