Uebersicht und Installation
Dieses Kapitel basiert auf dem Arbeitsblatt zur Einfuehrung und Installation. Es setzt den inhaltlichen Rahmen fuer den gesamten Java-Block: Welche Arten von Programmierung gibt es, warum wird in diesem Kurs Java verwendet, und welche Werkzeuge muessen vor dem Start eingerichtet werden?
Historischer Stammbaum der Programmiersprachen
Der Stammbaum zeigt, wie Programmiersprachen zeitlich aufeinander folgten und welche Sprachen die Entwicklung anderer Sprachen beeinflussten. Die Verbindungslinien sind als historische Einflüsse zu lesen, nicht als eindeutige Einteilung in Programmierparadigmen.
Programmierparadigmen im Überblick
Eine Programmiersprache ist mehr als nur Syntax. Programmierparadigmen beschreiben unterschiedliche Sichtweisen auf Probleme. Die folgende Einordnung ist bewusst vereinfacht: Die Kategorien sind nicht immer trennscharf, und moderne Sprachen unterstuetzen haeufig mehrere Paradigmen.
Imperative und prozedurale Programmierung
Im imperativen Stil beschreibt ein Programm Schritt fuer Schritt, was als naechstes passieren soll. Das passt gut zu Algorithmen mit klarer Reihenfolge:
- Daten einlesen
- Daten verarbeiten
- Ergebnis ausgeben
Der prozedurale Stil organisiert diese Schritte in Teilprogramme (Prozeduren/Funktionen). Dadurch wird Code besser wiederverwendbar und strukturierter. Historische Sprachen wie Pascal und C sind starke Beispiele fuer diesen Ansatz.
Objektorientierte Programmierung (OOP)
In der OOP wird nicht zuerst in einzelnen Befehlen gedacht, sondern in Objekten mit Zustand und Verhalten.
- Zustand: Attribute (z. B. Kontostand, Radius, Name)
- Verhalten: Methoden (z. B. einzahlen, zeichnen, berechneFlaeche)
Diese Denkweise ist fuer groessere Softwareprojekte hilfreich, weil sie Modelle aus der realen Welt oder aus einem fachlichen Problem direkt in Klassen und Objekte abbildet.
Deklarative Programmierung
Beim deklarativen Stil beschreibt man staerker welches Ergebnis gelten soll, nicht zwingend jeden Rechenschritt. Ein typisches Beispiel ist SQL: Man formuliert eine Abfragebedingung, der Datenbank-Interpreter bestimmt den konkreten Ausfuehrungsplan.
Mehrparadigmensprachen
Viele moderne Sprachen kombinieren mehrere Paradigmen. Python unterstuetzt z. B. objektorientierte, prozedurale und funktionale Programmierstile. Java ist vor allem imperativ und objektorientiert, bietet aber unter anderem mit Lambda-Ausdruecken und Streams auch funktionale Elemente. Im Unterricht wird Java hier bewusst verwendet, um objektorientiertes Denken systematisch zu lernen.
Warum in diesem Kurs Java?
Java ist fuer den Einstieg in OOP didaktisch stark, weil zentrale Konzepte klar sichtbar sind:
- Klassen und Objekte sind explizit und nicht nur "nebenbei" vorhanden.
- Statische Typisierung zwingt zu sauberen Schnittstellen.
- Konstruktoren, Vererbung und Interfaces sind klar definiert.
- Die Standardbibliothek ist gross und in der Praxis relevant.
Dazu kommt: Java-Programme sind durch die JVM plattformunabhaengig ausfuehrbar. Derselbe Bytecode kann auf verschiedenen Betriebssystemen laufen, solange eine passende Java-Laufzeit vorhanden ist.
JVM, JRE und JDK sauber unterscheiden
Ein zentraler Teil des Einfuehrungsblatts ist die technische Kette von Quelltext bis Ausfuehrung.
1. Compiler und Bytecode
Der Java-Quelltext (.java) wird mit javac in Bytecode (.class) uebersetzt.
2. Java Virtual Machine (JVM)
Die JVM fuehrt den Bytecode aus. Sie ist sozusagen die standardisierte Laufmaschine fuer Java-Programme.
3. Java Runtime Environment (JRE)
Die JRE enthaelt die JVM plus Standardbibliotheken zum Ausfuehren vorhandener Programme.
4. Java Development Kit (JDK)
Das JDK enthaelt alles fuer Entwickler:
- Compiler (
javac) - Laufzeitkomponenten
- weitere Werkzeuge
Merksatz:
- Nur ausfuehren: JRE reicht.
- Selbst entwickeln: JDK ist notwendig.
Entwicklungsumgebung: Editor, IDE, BlueJ
Das Arbeitsblatt unterscheidet zwischen einfachem Editor und integrierter Entwicklungsumgebung (IDE).
- Ein einfacher Editor verarbeitet nur Text.
- Eine IDE unterstuetzt zusaetzlich bei Projektstruktur, Build, Fehleranalyse, Refactoring und Debugging.
Fuer den Einstieg in den Unterricht werden zwei Werkzeuge kombiniert:
- Eine vollstaendige IDE (z. B. NetBeans oder IntelliJ) fuer ernsthafte Projekte.
- BlueJ als didaktisches Tool, weil Klassen/Objekte dort sehr anschaulich sichtbar und direkt testbar sind.
Diese Kombination ist sinnvoll: BlueJ macht OOP-Konzepte greifbar, die IDE bereitet auf reale Entwicklungsarbeit vor.
Konkrete Installations-Checkliste
Die urspruengliche Aufgabenstellung fordert die Installation der benoetigten Werkzeuge. Praktisch gehst du so vor:
- Installiere ein aktuelles JDK (LTS-Version bevorzugen).
- Pruefe die Installation im Terminal:
java -version
javac -version
- Installiere eine IDE und lege ein erstes Java-Projekt an.
- Installiere BlueJ und oeffne ein kleines Klassenprojekt.
- Teste einen ersten Ablauf: Klasse erstellen, Objekt erzeugen, Methode aufrufen.
Wenn java oder javac nicht gefunden werden, ist meist der Pfad nicht korrekt gesetzt oder es ist nur eine Runtime ohne Compiler installiert.
Lernziele dieser Einheit
Aus dem Arbeitsblatt ergeben sich drei Ebenen von Lernzielen:
Sprachliche Ebene
- Grundsyntax von Java
- Datentypen, Kontrollstrukturen, Methoden
- Klassenstruktur und Dateiaufbau
Modellierungs-Ebene
- Fachliche Sachverhalte in Klassen abbilden
- Zustaende und Verhalten sinnvoll trennen
- Schnittstellen ueber Methoden gestalten
Algorithmische Ebene
- Probleme in Teilprobleme zerlegen
- loesungsorientierte Strategien entwickeln
- Code schrittweise verbessern und testen
Wichtig: Gute Programmierung bedeutet nicht nur "Code zum Laufen bringen", sondern auch Lesbarkeit, Wartbarkeit und Nachvollziehbarkeit sicherstellen.
Typische Startfehler und wie man sie vermeidet
- JDK und JRE verwechselt
Nur
javafunktioniert,javacfehlt. - Projekt chaotisch angelegt Datei- und Klassennamen passen nicht zusammen.
- Zu frueh zu viel auf einmal Besser: kleine Klassen und kurze Methoden, dann schrittweise erweitern.
- OOP nur als Syntax gelernt
Nicht nur
classundnewlernen, sondern wirklich modellieren: Welche Verantwortung hat welche Klasse?
Mini-Aufgaben zum Abschluss
- Erklaere in eigenen Worten den Unterschied zwischen JVM, JRE und JDK.
- Begruende, warum Java im Unterricht fuer OOP besonders geeignet ist.
- Lege in BlueJ eine Klasse
Kontoan und erzeuge zwei Objekte. - Lege in einer IDE ein Projekt mit
Main-Klasse an und gib "Hallo Java" aus. - Notiere drei Regeln, die du bei allen folgenden Kapiteln einhalten willst (z. B. klare Methodennamen, kleine Methoden, saubere Tests).
Damit ist die Umgebung vorbereitet. In den naechsten Kapiteln wird diese Basis genutzt, um schrittweise von einfachen Klassen zu Vererbung, Polymorphie und groesseren Projekten zu kommen.
Vergleich der Paradigmen an einem Mini-Problem
Um die theoretischen Begriffe aus dem Arbeitsblatt greifbar zu machen, lohnt sich ein gemeinsames Problem in mehreren Denkweisen:
Problem: "Berechne aus einer Liste von Temperaturen den Durchschnitt und gib eine Warnung aus, wenn der Durchschnitt ueber 30 liegt."
Imperativ gedacht
- Schleife ueber alle Werte
- Summe bilden
- durch Anzahl teilen
- mit
ifvergleichen
Objektorientiert gedacht
- Klasse
Messreihemit Attributwerte - Methode
berechneDurchschnitt() - Methode
istHitzewarnungNoetig()
Deklarativ gedacht
- Bedingung formulieren statt Ablauf zu programmieren
- z. B. als Datenbankabfrage oder Regelbeschreibung
Diese Gegenueberstellung zeigt: Das Problem ist gleich, die Modellierung unterscheidet sich. Genau deshalb ist die Paradigmenfrage im Einstieg nicht optional, sondern fachlich zentral.
Installationsfehler systematisch diagnostizieren
Bei der Einrichtung entstehen immer wieder dieselben Fehler. Statt einzelne Fehler nur zu "fixen", sollte eine feste Diagnoseroutine genutzt werden.
Schritt 1: Java-Compiler pruefen
javac -version
Wenn der Befehl nicht gefunden wird, ist entweder kein JDK installiert oder die PATH-Variable zeigt nicht auf die JDK-Binaries.
Schritt 2: Laufzeit pruefen
java -version
Wenn nur java funktioniert, aber nicht javac, ist haeufig nur eine Runtime vorhanden.
Schritt 3: IDE-Konfiguration pruefen
Viele IDEs verwenden ein intern konfiguriertes JDK. Selbst wenn der Terminal-Pfad stimmt, kann die IDE auf ein anderes oder nicht existentes JDK zeigen.
Schritt 4: Neues Minimalprojekt anlegen
- neue Klasse
Main public static void main(String[] args)- Ausgabe
System.out.println("Test")
Wenn dieses Minimalprojekt laeuft, sind Compilerkette und Projektaufbau grundsaetzlich korrekt.
BlueJ und IDE sinnvoll kombinieren
Das Arbeitsblatt nennt BlueJ explizit fuer den Einstieg. In der Praxis empfiehlt sich eine klare Arbeitsteilung:
- BlueJ: OOP-Basiskonzepte, Objekterzeugung, interaktive Methodenaufrufe
- IDE: Dateistruktur, groessere Projekte, Refactoring, Debugging
Eine sinnvolle Kursreihenfolge:
- Woche 1 bis 2: Schwerpunkt BlueJ
- Woche 3 bis 4: paralleles Arbeiten
- ab Woche 5: Schwerpunkt IDE, BlueJ nur noch punktuell
Damit geht die didaktische Anschaulichkeit nicht verloren, aber die Lernenden wechseln frueh genug in eine professionellere Umgebung.
Typische Begriffsverwechslungen im Einstieg
- JDK vs. JVM "Ich habe Java installiert" ist unpraezise. Korrekt ist: Laufzeit, Compiler und Werkzeuge unterscheiden.
- Klasse vs. Objekt
Eine Klasse ist kein laufendes Programmobjekt. Erst
newerzeugt Instanzen. - Sprache vs. Werkzeug Java ist die Sprache. BlueJ/IntelliJ/NetBeans sind Werkzeuge zur Bearbeitung.
- Quelltext vs. Bytecode
.javaist nicht direkt ausfuehrbar, sondern wird zu.classuebersetzt.
Kursstart mit klaren Standards
Schon im Einfuehrungskapitel sollten gemeinsame Standards gelten. Dadurch sinkt spaeter der Korrekturaufwand drastisch.
Standard 1: Dateinamen und Klassennamen passen zusammen
Konto.java enthaelt public class Konto.
Standard 2: Eine Klasse pro Datei
Gerade am Anfang verbessert das die Orientierung.
Standard 3: Kurze Methoden, klare Namen
Lieber berechneSumme als machWas.
Standard 4: Frueh testen
Jede neue Methode sofort mit einem kleinen Beispiel pruefen.
Standard 5: Fehlertexte lesen
Nicht nur "geht nicht", sondern Fehlermeldung, Zeile und Kontext auswerten.
Didaktischer 90-Minuten-Plan fuer dieses Kapitel
- 15 min: Paradigmenvergleich mit einem Problembeispiel
- 20 min: JVM/JRE/JDK visualisieren
- 20 min: Installation und erster Terminaltest
- 20 min: Erstes Mini-Projekt in IDE
- 15 min: Erstes Objekt in BlueJ erzeugen
Lernkontrolle am Ende:
- Jeder kann den Unterschied von JVM/JRE/JDK erklaeren.
- Jeder kann
java -versionundjavac -versionausfuehren. - Jeder hat ein lauffaehiges Minimalprojekt.
Selbstkontrollfragen
- Warum ist Java trotz mehr Syntax fuer den Einstieg in OOP gut geeignet?
- Was fehlt, wenn nur
javafunktioniert, aberjavacnicht? - Warum ist ein Editor allein fuer groessere Projekte oft unpraktisch?
- Welche Rolle spielt die JVM fuer Plattformunabhaengigkeit?
- Welche Arbeitsschritte gehoeren in ein reproduzierbares Setup-Protokoll?
Transferaufgabe
Erstelle ein kurzes Setup-Dokument fuer eine andere Person im Kurs. Es soll enthalten:
- benoetigte Downloads
- Installationsreihenfolge
- Terminal-Checks
- erstes Testprojekt
- Fehlerbehebung fuer zwei typische Probleme
Wer das sauber dokumentieren kann, hat die eigene Umgebung wirklich verstanden.
Abschluss
Das Einfuehrungsarbeitsblatt ist nicht nur organisatorisch, sondern fachlich die Startbasis des gesamten Java-Teils. Die hier geklaerten Begriffe und Werkzeuge tauchen in jedem Folgekapitel wieder auf. Eine saubere Einrichtung spart nicht nur Zeit, sondern schafft die Voraussetzung fuer konzentriertes Arbeiten an OOP, Algorithmen und Projekten.
Kurzprojekt fuer die erste Woche
Arbeitsauftrag:
- Richte JDK und IDE ein.
- Dokumentiere jeden Schritt in einer eigenen Datei
setup-protokoll.md. - Erzeuge ein Mini-Projekt mit zwei Klassen (
Main,Konto). - Fuehre das Programm im Terminal und in der IDE aus.
- Notiere zwei Unterschiede zwischen beiden Ausfuehrungswegen.
Bewertung:
- technische Reproduzierbarkeit
- korrekte Begriffsverwendung (JDK/JRE/JVM)
- nachvollziehbare Fehlerbehebung
Dieses Kurzprojekt macht aus der Installationsphase eine erste fachliche Leistung statt einer reinen Pflichtaufgabe.
