Inhalt des 1. Semesters Folge 1: Java und BlueJ Installieren und Kennenlernen von BlueJ . Klassen, Objekte und Methoden. Wir programmieren ein kleines Bild. Folge 2: if-else-Anweisungen Wir entwickeln eine kleine Anwendung, mit der wir unser Idealgewicht und den BMI ausrechnen und bewerten können. Folge 3: Schleifen In dieser Folge werden wir das Thema if-else-Anweisungen vertiefen und beschäftigen uns auch mit der switch-case-Anweisung. Hauptthema der Folge 3 sind jedoch Schleifen, vor allem while- und for-Schleifen. Aber auch auf do-while-Schleifen werden wir kurz eingehen. Folge 4: Arrays Arrays sind ein sehr wichtiges Hilfsmittel bei der Programmierung komplexer Algorithmen. Wir werden uns nicht nur mit normalen Arrays (int-Zahlen) beschäftigen, sondern auch mit Objekt-Arrays. Folge 5: Sortieralgorithmen In dieser Folge lernen Sie die drei einfachen Sortierverfahren Bubblesort, Selectionsort und Insertionsort kennen sowie ein paar etwas bessere Verfahren wie Bucketsort und Mergesort. Am Ende der Folge beschäftigen wir uns mit dem wichtigen Thema "Rekursion" und anschließend noch kurz mit dem Quicksort. Übungsaufgaben zur Klausur mit Lösungsvorschlägen Inhalt des 2. Semesters Folge 6: Suchverfahren April '26 Wir beschäftigen uns zunächst mit der sequentiellen Suche in unsortierten Daten, dann mit der binären Suche in sortierten Daten sowie mit weiteren Suchverfahren, die noch schneller sind als die binäre Suche: Sprungsuche, Indexsuche und Interpolationssuche. Außerdem werfen wir einen kurzen Blick auf Datenstrukturen, die ein effizientes Suchen bereits auf Grund ihrer Struktur ermöglichen: Binäre Suchbäume und B-Bäume. Einzelheiten dazu werden an den meisten Hochschulen in den Kursen "Datenstrukturen" und / oder "Datenbanken" vermittelt - in diesem OOP-Kurs werden die Konzepte nur kurz vorgestellt, aber nicht vertieft. Folge 7: Die Sammlungsklasse ArrayList April '26 Die Klasse ArrayList gehört zu den sogenannten Sammlungen. Wir werden die wichtigsten Methoden dieser Klasse kennenlernen und dabei auch die drei Konzepte Generics, Typinferenz und innere Klassen kennenlernen. Folge 8: Exception-Handling Mai '26 In dieser Folge werden wir eine eigene Klasse MyArrayList programmieren, die sich stark an die Klasse ArrayList anlehnt. Am Beispiel dieser Klasse lernen wir dann, wie man in Java-Anwendungen mit Ausnahmen (Exceptions) umgeht. Ich schreibe hier bewusst "wir", weil ich selbst auch noch nicht viel Erfahrung mit Exceptions habe; im Schulunterricht wird das Thema nicht behandelt. Folge 9: Vererbung und Polymorphie Mai '26 Hier werden wir eine heterogene Arrayliste erstellen, die Objekte verschiedener Klassen enthält, die Unterklassen einer gemeinsamen Oberklasse sind. Dabei werden Sie das wichtige Konzept der Polymorphie kennenlernen. Folge 10: Abstrakte Klassen und Interfaces Mai/Juni '26 Das sind zwei wichtige Konzepte, mit denen wir die Projekte aus den Folgen 8 und 9 erweitern. Folge 11: Datei-Handling Juni '26 In diesem Abschnitt geht es um das Anlegen von Dateien sowie das Lesen und Schreiben in Textdateien und binären Dateien. Projektarbeit in Gruppen Juni '26 Sie arbeiten in kleinen Gruppen aus drei oder vier Leuten und planen ein eigenes Programmier-Projekt in Java oder einer anderen Sprache, das sie selbstständig entwickeln und dann vor dem Kurs vorstellen - natürlich mit einer eigenen Präsentation, die Sie begleitend zum Programmier-Projekt entwickelt haben. Falls Sie eine andere Programmiersprache als Java gewählt haben, müssen Sie natürlich vorher noch die Grundzüge dieser Sprache erläutern, so dass Ihre Zuhörer der Projektpräsentation auch folgen können. Quelltexte zu den einzelnen Folgen