01 Einstieg

Erste Schritte im Programmieren – lerne deine IDE kennen #

Programmcode liegt normalerweise in einfachen Textdateien. Statt der Dateiendung .txt enden die Dateinamen solcher Dateien je nach Programmiersprache unterschiedlich. Zum Beispiel liegt Java-Programmcode in .java-Dateien und Python Code in .py-Dateien.

Um Programmcode zu schreiben und dabei bequem immer wieder auszuführen, verwenden die meisten Programmierer:innen eine IDE, ein Integrated Development Environment oder eine integrierte Entwicklungsumgebung1. Das ist ein Programm, das Programmcode-Textdateien anzeigen und ausführen kann.

Ziel #

Damit du erfolgreich Programmieren lernst, sollst du dich zunächst einmal mit einer IDE vertraut machen. Für Java kannst du die Online-IDE nutzen2, für Python empfehle ich Thonny.

Aufgaben #

  1. Lies den Programmcode durch, notiere dir Fragen zu Dingen, die du nicht verstehst.
  2. Lass’ dir erklären, wie die Programme funktionieren.
  3. Tipp die Programme ab. Nutze dabei die Möglichkeiten deiner IDE (Codevervollständigung).
  4. Lass die Programme laufen, finde und nutze den Debug-Modus, in dem jeder Schritt einzeln vollzogen wird.
  5. Setze einen Breakpoint, und lass das Programm mit Breakpoint laufen. Sieh’ dir die Werte der Variablen zu diesem Punkt an.
  6. Erfinde ein eigenes Programm: variiere das Sätze-Kombi-Spiel, erfinde einen »Dialog« mit dem Computer, oder etwas ganz eigenes!

Hallo Welt! #

// Datei hallo_welt
println("Hallo Welt!");

Hallo, Variable! #

// Datei hallo_variable
String gruss = "Hallo Welt!";
println(gruss);

Hallo, Mensch! #

// Datei hallo_mensch
String mensch = "Jan";
String gruss = "Hallo";
String botschaft = gruss + " " + mensch + "!";
println(botschaft);

Wer bist du? #

// Datei wer_bist_du
String userName = Input.readString("Wie heißt du? ");
String grussbotschaft = "Hallo " + userName;
println(grussbotschaft);

Sätze bauen #

// Datei saetze_bauen, Spiel: Sätzekombi

String subjekt = "Das Buch ";
String verb = "liegt ";
String zeit = "seit vorgestern ";
String ort = "auf dem Tisch.";

String userSubjekt = Input.readString("Gib ein Subjekt ein (3. Pers. Singular): ");
String userVerb = Input.readString("Gib ein Verb ein (passend): ");
String userZeit = Input.readString("Gib eine Zeitangabe ein: ");
String userOrt = Input.readString("Gib eine Ortsangabe ein: ");

String kombiSatz1 = subjekt + userVerb + " " + zeit + userOrt + ".";
String kombiSatz2 = userSubjekt + " " + verb + userZeit + " " + ort;

println("Unsere Kombisätze");
println("-----------------");
println(kombiSatz1);
println(kombiSatz2);

Hallo Welt! #

# Datei hallo_welt.py
print('Hallo Welt!')

Hallo, Variable! #

# Datei hallo_variable.py
gruss = 'Hallo Welt!'
print(gruss)

Hallo, Mensch! #

# Datei hallo_mensch.py
mensch = 'Jan'
gruss = 'Hallo'
botschaft = gruss + ' ' + mensch + '!'
print(botschaft)

Wer bist du? #

# Datei wer_bist_du.py
user_name = input('Wie heißt du? ')
grussbotschaft = 'Hallo ' + user_name
print(grussbotschaft)

Sätze bauen #

# Datei saetze_bauen.py
# Spiel: Sätzekombi

subjekt = 'Das Buch '
verb = 'liegt '
zeit = 'seit vorgestern '
ort = 'auf dem Tisch.'

userSubjekt = input('Gib ein Subjekt ein (3. Pers. Singular): ')
userVerb = input('Gib ein Verb ein (passend): ')
userZeit = input('Gib eine Zeitangabe ein: ')
userOrt = input('Gib eine Ortsangabe ein: ')

kombiSatz1 = subjekt + userVerb + ' ' + zeit + userOrt + '.'
kombiSatz2 = userSubjekt + ' ' + verb + userZeit + ' ' + ort

print('Unsere Kombisätze')
print('-----------------')
print(kombiSatz1)
print(kombiSatz2)

Über die Struktur von Java-Programmen #

public class Programm {
    
    public static void main(String[] args) {
        // Hier kommen die Code-Schnipsel hin, die ausgeführt werden sollen
    }
}

Jedes Java-Programm benötigt einen Einstiegspunkt, die sogenannte main-Methode. Außerdem sind Java-Programm so aufgeteilt, dass jede Klasse (was das ist, wirst du später lernen) in einer eigenen Datei steht, die den Namen der Klasse und die Endung .java hat. Der Programmcode hier stünde also in einer Datei Programm.java.

Wenn Du mit einem Texteditor arbeitest, brauchst Du den Befehl javac. Mit javac Programm.java kompilierst du das Programm, bevor du es mit java Programm ausführen kannst.

Wenn Du mit einer Entwicklungsumgebung (IDE) arbeitest, gibt es vermutlich irgendwo einen Knopf, der dein Programm startet. BlueJ ist etwas speziell: hier kannst du mit einem Rechtsklick auf die von dir erstellte Klasse den Eintrag void main(String[] args) auswählen – damit wird die main-Methode gestartet. Anschließend wirst du noch nach Argumenten für die Methode gefragt, hier kannst du einfach auf OK klicken. Es erscheint ein Fenster, in dem dein Programm läuft.

Hallo Welt! #

// Schreibe die folgende Zeile in die main-Methode
System.out.println("Hallo Welt!");

Hallo, Variable! #

// Schreibe die folgenden Zeilen in die main-Methode
String gruss = "Hallo Welt!";
System.out.println(gruss);

Hallo, Mensch! #

// Schreibe die folgenden Zeilen in die main-Methode
String mensch = "Jan";
String gruss = "Hallo";
String botschaft = gruss + " " + mensch + "!";
System.out.println(botschaft);

Die Struktur erweitern #

Um Nutzer:innen-Eingaben zu verarbeiten, musst du dem Programm noch einige Zeilen hinzufügen, die du erst später genauer verstehen wirst. Ganz zu Beginn (noch vor der public class…-Zeile) schreiben wir:

import java.util.Scanner;

Nach den geschweiften Klammern schreiben wir eine Helfer-Methode – die wird später für uns Eingaben entgegennehmen:

public static String input(String prompt) {
    System.out.print(prompt);
    String eingabe = new Scanner(System.in).nextLine();
    return eingabe;
}

Das Code-Gerüst sieht nun so aus:

import java.util.Scanner;

public class Programm {
    
    public static void main(String[] args) {
        // Hier kommen die Code-Schnipsel hin, die ausgeführt werden sollen
    }
    
    public static String input(String prompt) {
        System.out.print(prompt);
        String eingabe = new Scanner(System.in).nextLine();
        return eingabe;
    }
}

Wer bist du? #

// Schreibe die folgenden Zeilen in die main-Methode
String userName = input("Wie heißt du? ");
String grussbotschaft = "Hallo " + userName;
System.out.println(grussbotschaft);

Sätze bauen #

// Schreibe die folgenden Zeilen in die main-Methode

String subjekt = "Das Buch ";
String verb = "liegt ";
String zeit = "seit vorgestern ";
String ort = "auf dem Tisch.";

String userSubjekt = input("Gib ein Subjekt ein (3. Pers. Singular): ");
String userVerb = input("Gib ein Verb ein (passend): ");
String userZeit = input("Gib eine Zeitangabe ein: ");
String userOrt = input("Gib eine Ortsangabe ein: ");

String kombiSatz1 = subjekt + userVerb + " " + zeit + userOrt + ".";
String kombiSatz2 = userSubjekt + " " + verb + userZeit + " " + ort;

System.out.println("Unsere Kombisätze");
System.out.println("-----------------");
System.out.println(kombiSatz1);
System.out.println(kombiSatz2);

Flashcards #

Damit dein neu erworbenes Wissen nicht verloren geht, musst du selbst es wieder und wieder verarbeiten3. Noch besser, als die Inhalte hier auf Karteikarten zu übertragen und damit zu lernen ist es, wenn du dir eigene Karteikarten schreibst

Wofür steht die Abkürzung IDE?
Für Integrated Development Environment, oder auf Deutsch: Integrierte Entwicklungsumgebung.
Wie nutze ich die automatische Codevervollständigung?
Wenn mir beim Tippen Vorschläge angezeigt werden, kann ich diese mit der Maus auswählen. Ebenfalls möglich: angezeigte Vorschläge mit den Pfeiltasten auswählen und mit Taste Tab einfügen.

Mit Strg + Leertaste kann ich mir Vorschläge zur Vervollständigung anzeigen lassen. Wenn mir beim Tippen Vorschläge angezeigt werden, kann ich diese mit den Pfeiltasten auswählen und mit Taste Tab einfügen.

Alternativ kann ich in den Programmoptionen (Reiter Editor) auswählen, beim Tippen Auto-Vervollständigen anzubieten.

Bei BlueJ gibt es keine automatische Codevervollständigung. Warum? Darum!
Wie kann ich mein Programm Schritt für Schritt ausführen lassen?
Statt auf das grüne Dreieck zu klicken, kann ich die Schaltflächen mit den blauen Pfeilen und Punkten (Einzelschritt, auch Tasten F6 und F7) nutzen, um Schritt für Schritt durch das Programm zu gehen.
Nach Klick auf den Käfer (Starten im Debug-Modus) kann ich die Schaltflächen mit den Pfeilen und Punkten (Einzelschritt oder Eintreten, auch Tasten F6 und F7) nutzen, um Schritt für Schritt durch das Programm zu gehen.
Nach dem Setzen von Breakpoints öffnet sich ein Fenster für den Debug-Modus – hier lassen sich kleine Schritte (zum nächsten Breakpunkt) machen.
Wie trenne ich eine Anweisung von der nächsten?
Mit dem Zeichen ; (Semikolon) trenne ich Anweisungen in Java. Guter Stil ist es, nach jeder solchen Anweisung auch eine neue Zeile zu beginnen – das ist übersichtlicher.
Mit dem Zeichen ; (Semikolon) kann ich Anweisungen in Python trennen. Das ist aber nicht nötig! Guter Stil ist es, nach jeder Anweisung eine neue Zeile zu beginnen – das ist übersichtlicher.
Wie gebe ich die Zeichenkette »Hallo Waldo« auf der Konsole aus?
println("Hallo Waldo");
print('Hallo Waldo')
System.out.println("Hallo Waldo");

  1. Weil Programmcode in einfachen Textdateien liegt, ließe sich auch ein einfacher Texteditor verwenden. Neben dem reinen Bearbeiten und Ausführen können IDEs aber noch viele andere Dinge, wie z.B. den Code übersichtlich formatieren und farblich darstellen oder beim Fehlerfinden helfen. ↩︎

  2. Die Online-IDE nutzt eine Sprache, die sich an Java anlehnt, dabei aber weniger streng auf die Einhaltung von Formalitäten pocht. So musst du in der Online-IDE keine Dateiendungen schreiben und kannst Code ohne Klassendefintion einfach in eine Datei schreiben. (Was Klassendefinitionen sind, wirst du später noch lernen.) ↩︎

  3. Auch Anwenden wäre eine Form der Verarbeitung! Allerdings habe ich festgestellt, dass beides (Karteikartenlernen und Anwenden noch besser wirkt…). ↩︎